diff --git a/src/amd/compiler/aco_optimizer.cpp b/src/amd/compiler/aco_optimizer.cpp index 7dfdb05e3ff..448c3a744f5 100644 --- a/src/amd/compiler/aco_optimizer.cpp +++ b/src/amd/compiler/aco_optimizer.cpp @@ -3509,6 +3509,8 @@ combine_instruction(opt_ctx& ctx, aco_ptr& instr) if (mul_instr->opcode == aco_opcode::v_mul_legacy_f32 && ctx.fp_mode.preserve_signed_zero_inf_nan32) return; + if (mul_instr->definitions[0].bytes() != instr->definitions[0].bytes()) + return; /* convert to mul(neg(a), b), mul(abs(a), abs(b)) or mul(neg(abs(a)), abs(b)) */ ctx.uses[mul_instr->definitions[0].tempId()]--;