[Mesa-dev] [PATCH] nir/search: handle explicitly sized sources in match_value
Connor Abbott
cwabbott0 at gmail.com
Fri May 8 09:46:56 PDT 2015
Makes sense.
Reviewed-by: Connor Abbott <cwabbott0 at gmail.com>
On Fri, May 8, 2015 at 11:38 AM, Jason Ekstrand <jason at 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 <cwabbott0 at 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
>
More information about the mesa-dev
mailing list