diff --git a/src/amd/compiler/aco_optimizer_postRA.cpp b/src/amd/compiler/aco_optimizer_postRA.cpp index 9c0c46c952d..60b20b3cd72 100644 --- a/src/amd/compiler/aco_optimizer_postRA.cpp +++ b/src/amd/compiler/aco_optimizer_postRA.cpp @@ -783,6 +783,12 @@ optimize_postRA(Program* program) for (aco_ptr& instr : block.instructions) process_instruction(ctx, instr); + + /* SCC might get overwritten by copies or swaps from parallelcopies + * inserted by SSA-elimination for linear phis. + */ + if (!block.scc_live_out) + ctx.instr_idx_by_regs[block.index][scc] = overwritten_unknown_instr; } /* Cleanup pass