[llvm] [AMDGCN][SIWholeQuadMode] Handle case when SI_KILL_I1_TERMINATOR -1,0 is not the only terminator (PR #122922)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 28 03:26:27 PST 2025


Juan Manuel Martinez =?utf-8?q?CaamaƱo?= <juamarti at amd.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/122922 at github.com>


================
@@ -3361,7 +3361,7 @@ define amdgpu_ps void @test_for_deactivating_lanes_in_wave32(ptr addrspace(6) in
 ; GFX9-W64-NEXT:    s_buffer_load_dword s0, s[0:3], 0x0
 ; GFX9-W64-NEXT:    s_waitcnt lgkmcnt(0)
 ; GFX9-W64-NEXT:    v_cmp_le_f32_e64 vcc, s0, 0
-; GFX9-W64-NEXT:    s_andn2_b64 s[4:5], exec, vcc
----------------
jayfoad wrote:

I don't understand - what copy is removed?

But anyway this looks like a change in behaviour. If the result of the s_andn2 is zero then we branch, so previously the exp instruction would run with exec!=0, but after your patch it runs with exec=0. Is that really intentional?

https://github.com/llvm/llvm-project/pull/122922


More information about the llvm-commits mailing list