nir: Fix nir_lower_alu_to_scalar's instr filtering.

It was checking if the dest or src[0] SSA values were vectors, rather than
whether the ALU op was using the source as a vector resulting in a
nir_fdot4 making it through to vc4 and v3d:

vec1 32 ssa_6 = fdot4 ssa_4.xxxx, ssa_5

Fixes: c1cffa4249 ("nir/alu_to_scalar: Use the new NIR lowering framework")
v2: Use Jason's recommendation to look at input_sizes.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Eric Anholt 2019-07-16 12:38:10 -07:00
parent a301250ece
commit 28a808a11b

View file

@ -44,7 +44,7 @@ inst_is_vector_alu(const nir_instr *instr, const void *_state)
assert(alu->dest.dest.is_ssa);
assert(alu->src[0].src.is_ssa);
return alu->dest.dest.ssa.num_components > 1 ||
alu->src[0].src.ssa->num_components > 1;
nir_op_infos[alu->op].input_sizes[0] > 1;
}
static void