Makes sense. Reviewed-by: Connor Abbott <cwabbo...@gmail.com>
On Fri, May 8, 2015 at 11:38 AM, Jason Ekstrand <ja...@jlekstrand.net> wrote: > Previously, this case was being handled in match_expression prior to > calling match_value. However, there is really no good reason for this > given that match_value has all of the information it needs. Also, they > weren't being handled properly in the commutative case and putting it in > match_value gives us that for free. > > Cc: Connor Abbott <cwabbo...@gmail.com> > --- > src/glsl/nir/nir_search.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/src/glsl/nir/nir_search.c b/src/glsl/nir/nir_search.c > index 5ba0160..821b86d 100644 > --- a/src/glsl/nir/nir_search.c > +++ b/src/glsl/nir/nir_search.c > @@ -73,6 +73,14 @@ match_value(const nir_search_value *value, nir_alu_instr > *instr, unsigned src, > { > uint8_t new_swizzle[4]; > > + /* If the source is an explicitly sized source, then we need to reset > + * both the number of components and the swizzle. > + */ > + if (nir_op_infos[instr->op].input_sizes[src] != 0) { > + num_components = nir_op_infos[instr->op].input_sizes[src]; > + swizzle = identity_swizzle; > + } > + > for (int i = 0; i < num_components; ++i) > new_swizzle[i] = instr->src[src].swizzle[swizzle[i]]; > > @@ -200,14 +208,6 @@ match_expression(const nir_search_expression *expr, > nir_alu_instr *instr, > > bool matched = true; > for (unsigned i = 0; i < nir_op_infos[instr->op].num_inputs; i++) { > - /* If the source is an explicitly sized source, then we need to reset > - * both the number of components and the swizzle. > - */ > - if (nir_op_infos[instr->op].input_sizes[i] != 0) { > - num_components = nir_op_infos[instr->op].input_sizes[i]; > - swizzle = identity_swizzle; > - } > - > if (!match_value(expr->srcs[i], instr, i, num_components, > swizzle, state)) { > matched = false; > -- > 2.4.0 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev