aco: combine DPP into v_cvt_f16_f32
The label_f2f16 was interfering with the label_dpp. fossil-db (navi31): Totals from 36 (0.05% of 79395) affected shaders: Instrs: 70998 -> 70875 (-0.17%); split: -0.18%, +0.00% CodeSize: 373184 -> 372244 (-0.25%) Latency: 1266807 -> 1266752 (-0.00%); split: -0.01%, +0.01% InvThroughput: 131618 -> 131566 (-0.04%); split: -0.04%, +0.00% SClause: 1947 -> 1944 (-0.15%) Copies: 5194 -> 5208 (+0.27%) VALU: 41019 -> 40921 (-0.24%); split: -0.24%, +0.00% Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30425>
This commit is contained in:
@@ -2045,8 +2045,11 @@ label_instruction(opt_ctx& ctx, aco_ptr<Instruction>& instr)
|
||||
break;
|
||||
}
|
||||
case aco_opcode::v_cvt_f16_f32: {
|
||||
if (instr->operands[0].isTemp())
|
||||
ctx.info[instr->operands[0].tempId()].set_f2f16(instr.get());
|
||||
if (instr->operands[0].isTemp()) {
|
||||
ssa_info& info = ctx.info[instr->operands[0].tempId()];
|
||||
if (!info.is_dpp() || info.instr->pass_flags != instr->pass_flags)
|
||||
info.set_f2f16(instr.get());
|
||||
}
|
||||
break;
|
||||
}
|
||||
case aco_opcode::v_cvt_f32_f16: {
|
||||
|
Reference in New Issue
Block a user