if (instr->dest.saturate)
return false;
+ /* we handle modifiers in a separate pass */
+
+ if (instr->src[0].abs || instr->src[0].negate)
+ return false;
+
if (!instr->src[0].src.is_ssa)
return false;
}
static bool
-is_simple_move(nir_alu_instr *instr)
+is_swizzleless_move(nir_alu_instr *instr)
{
if (is_move(instr)) {
- /* We handle modifiers in a separate pass */
- if (instr->src[0].negate || instr->src[0].abs)
- return false;
-
for (unsigned i = 0; i < 4; i++) {
if (!((instr->dest.write_mask >> i) & 1))
break;
if (instr->src[i].swizzle[0] != i)
return false;
- /* We handle modifiers in a separate pass */
- if (instr->src[i].negate || instr->src[i].abs)
- return false;
-
if (def == NULL) {
def = instr->src[i].src.ssa;
} else if (instr->src[i].src.ssa != def) {
return false;
nir_alu_instr *alu_instr = nir_instr_as_alu(src_instr);
- if (!is_simple_move(alu_instr))
+ if (!is_swizzleless_move(alu_instr))
return false;
/* Don't let copy propagation land us with a phi that has more