diff --git a/src/amd/compiler/aco_register_allocation.cpp b/src/amd/compiler/aco_register_allocation.cpp index 4ffc4efe876..55df26cf696 100644 --- a/src/amd/compiler/aco_register_allocation.cpp +++ b/src/amd/compiler/aco_register_allocation.cpp @@ -1095,7 +1095,7 @@ get_reg_for_create_vector_copy(ra_ctx& ctx, RegisterFile& reg_file, assignment& op = ctx.assignments[instr->operands[i].tempId()]; /* if everything matches, create parallelcopy for the killed operand */ if (!intersects(def_reg, PhysRegInterval{op.reg, op.rc.size()}) && - reg_file.get_id(op.reg) == instr->operands[i].tempId()) { + op.reg != scc && reg_file.get_id(op.reg) == instr->operands[i].tempId()) { Definition pc_def = Definition(reg, info.rc); parallelcopies.emplace_back(instr->operands[i], pc_def); return op.reg;