diff --git a/src/amd/compiler/aco_register_allocation.cpp b/src/amd/compiler/aco_register_allocation.cpp index 756446279e3..ab1a674dd79 100644 --- a/src/amd/compiler/aco_register_allocation.cpp +++ b/src/amd/compiler/aco_register_allocation.cpp @@ -1736,7 +1736,7 @@ bool operand_can_use_reg(chip_class chip, aco_ptr& instr, unsigned return reg != scc && reg != exec && (reg != m0 || idx == 1 || idx == 3) && /* offset can be m0 */ - (reg != vcc || (instr->definitions.empty() && idx == 2)); /* sdata can be vcc */ + (reg != vcc || (instr->definitions.empty() && idx == 2) || chip >= GFX10); /* sdata can be vcc */ default: // TODO: there are more instructions with restrictions on registers return true;