summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorg Lehmann <dadschoorse@gmail.com>2023-11-12 19:51:53 +0100
committerMarge Bot <emma+marge@anholt.net>2023-11-15 12:35:32 +0000
commit1d167d187efe88fb84d60972f2e053c75379344b (patch)
treecc0341fea0568a5eb9ce923a3927530ba07f1979
parent509ce19643f51555922947e9b8b5f12d6567fb5b (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.cpp7
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 */