if (!instr_is_operation(oper->opcode))
continue;
+ if (OPTS_FLAG(LEGACY_VECTOR_MATHS)) {
+ if (oper->opcode == INSTR_MUL_VF && oper->_ops[2]->memberof == oper->_ops[1])
+ continue;
+ if (oper->opcode == INSTR_MUL_FV && oper->_ops[1]->memberof == oper->_ops[2])
+ continue;
+ }
+
value = oper->_ops[0];
/* only do it for SSA values */
if (value->memberof && ir_value_life_merge(value->memberof, instr->eid+1))
*changed = true;
}
- else if (instr->opcode == INSTR_MUL_FV)
+ else if (instr->opcode == INSTR_MUL_FV || instr->opcode == INSTR_LOAD_V)
{
value = instr->_ops[1];
/* the float source will get an additional lifetime */