diff options
author | Georg Lehmann <dadschoorse@gmail.com> | 2023-11-12 19:51:53 +0100 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2023-11-15 12:35:32 +0000 |
commit | 1d167d187efe88fb84d60972f2e053c75379344b (patch) | |
tree | cc0341fea0568a5eb9ce923a3927530ba07f1979 | |
parent | 509ce19643f51555922947e9b8b5f12d6567fb5b (diff) |
aco/gfx10+: don't use v_cmpx with VCC def
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26163>
-rw-r--r-- | src/amd/compiler/aco_lower_to_hw_instr.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/amd/compiler/aco_lower_to_hw_instr.cpp b/src/amd/compiler/aco_lower_to_hw_instr.cpp index a6d7e98a6e1..dedb84e568c 100644 --- a/src/amd/compiler/aco_lower_to_hw_instr.cpp +++ b/src/amd/compiler/aco_lower_to_hw_instr.cpp @@ -1100,8 +1100,11 @@ emit_bpermute_readlane(Program* program, aco_ptr<Instruction>& instr, Builder& b */ for (unsigned n = 0; n < program->wave_size; ++n) { /* Activate the lane which has N for its source index */ - bld.vopc(aco_opcode::v_cmpx_eq_u32, Definition(exec, bld.lm), clobber_vcc, Operand::c32(n), - index); + if (program->gfx_level >= GFX10) + bld.vopc(aco_opcode::v_cmpx_eq_u32, Definition(exec, bld.lm), Operand::c32(n), index); + else + bld.vopc(aco_opcode::v_cmpx_eq_u32, clobber_vcc, Definition(exec, bld.lm), Operand::c32(n), + index); /* Read the data from lane N */ bld.readlane(Definition(vcc, s1), input, Operand::c32(n)); /* On the active lane, move the data we read from lane N to the destination VGPR */ |