From 5bfd1547d210a75e5b46a53056b8560a98e9874f Mon Sep 17 00:00:00 2001 From: Georg Lehmann Date: Mon, 10 Mar 2025 13:29:13 +0100 Subject: [PATCH] aco: don't assume that v_interp_mov_f32 flushes denorms Foz-DB Navi21: Totals from 3 (0.00% of 79789) affected shaders: Instrs: 1708 -> 1722 (+0.82%) CodeSize: 9416 -> 9460 (+0.47%) Latency: 12094 -> 12371 (+2.29%); split: -0.02%, +2.31% InvThroughput: 1967 -> 1992 (+1.27%) Copies: 105 -> 106 (+0.95%) PreVGPRs: 131 -> 132 (+0.76%) VALU: 1155 -> 1169 (+1.21%) Reviewed-by: Rhys Perry Part-of: --- src/amd/compiler/aco_optimizer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/amd/compiler/aco_optimizer.cpp b/src/amd/compiler/aco_optimizer.cpp index 43d8835a29c..0f4b0ea097a 100644 --- a/src/amd/compiler/aco_optimizer.cpp +++ b/src/amd/compiler/aco_optimizer.cpp @@ -1651,7 +1651,7 @@ label_instruction(opt_ctx& ctx, aco_ptr& instr) return; } - if (instr->isVALU() || instr->isVINTRP()) { + if (instr->isVALU() || (instr->isVINTRP() && instr->opcode != aco_opcode::v_interp_mov_f32)) { if (instr_info.can_use_output_modifiers[(int)instr->opcode] || instr->isVINTRP() || instr->opcode == aco_opcode::v_cndmask_b32) { bool canonicalized = true;