From 39270a8be3c041659ff767f4ec4fc2a9e35cb04b Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Tue, 30 Jul 2024 21:58:58 +0100 Subject: [PATCH] aco: preserve SSA in try_eliminate_scc_copy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise, there is no definition of this temporary. Fixes fail in future validation. Signed-off-by: Rhys Perry Reviewed-by: Daniel Schürmann Part-of: --- src/amd/compiler/aco_optimizer_postRA.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/amd/compiler/aco_optimizer_postRA.cpp b/src/amd/compiler/aco_optimizer_postRA.cpp index 54197535840..e250837dee9 100644 --- a/src/amd/compiler/aco_optimizer_postRA.cpp +++ b/src/amd/compiler/aco_optimizer_postRA.cpp @@ -523,6 +523,7 @@ try_eliminate_scc_copy(pr_opt_ctx& ctx, aco_ptr& instr) } /* Duplicate the original producer of the SCC */ + Definition scc_def = instr->definitions[0]; instr.reset(create_instruction(producer_instr->opcode, producer_instr->format, producer_instr->operands.size(), producer_instr->definitions.size())); @@ -545,6 +546,7 @@ try_eliminate_scc_copy(pr_opt_ctx& ctx, aco_ptr& instr) for (unsigned i = 0; i < producer_instr->definitions.size(); ++i) instr->definitions[i] = Definition(producer_instr->definitions[i].physReg(), producer_instr->definitions[i].regClass()); + instr->definitions.back() = scc_def; /* Keep temporary ID. */ } void