Reviewed-by: Alejandro Piñeiro <apinhe...@igalia.com> On 17/08/16 16:15, Kenneth Graunke wrote: > The first simply picks the bany_inequal[234] opcodes based on the SSA > def's number of components. The latter implicitly compares with zero > to achieve the same semantics of GLSL's any(). > > Cc: mesa-sta...@lists.freedesktop.org > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/compiler/nir/nir_builder.h | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h > index 435582a..affa29c 100644 > --- a/src/compiler/nir/nir_builder.h > +++ b/src/compiler/nir/nir_builder.h > @@ -318,6 +318,25 @@ nir_fdot(nir_builder *build, nir_ssa_def *src0, > nir_ssa_def *src1) > } > > static inline nir_ssa_def * > +nir_bany_inequal(nir_builder *b, nir_ssa_def *src0, nir_ssa_def *src1) > +{ > + switch (src0->num_components) { > + case 1: return nir_ine(b, src0, src1); > + case 2: return nir_bany_inequal2(b, src0, src1); > + case 3: return nir_bany_inequal3(b, src0, src1); > + case 4: return nir_bany_inequal4(b, src0, src1); > + default: > + unreachable("bad component size"); > + } > +} > + > +static inline nir_ssa_def * > +nir_bany(nir_builder *b, nir_ssa_def *src) > +{ > + return nir_bany_inequal(b, src, nir_imm_int(b, 0)); > +} > + > +static inline nir_ssa_def * > nir_channel(nir_builder *b, nir_ssa_def *def, unsigned c) > { > unsigned swizzle[4] = {c, c, c, c}; >
-- Alejandro Piñeiro <apinhe...@igalia.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev