[llvm] [AMDGPU] Create an AMDGPUIfConverter pass (PR #106415)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 18 08:53:59 PDT 2024


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


jayfoad wrote:

> @jayfoad An extract of the motivating example is this code: https://godbolt.org/z/dPdf7r381 .
```
        s_cmp_lt_i32 s0, 1
        s_cbranch_scc1 .LBB0_2
        s_clause 0x1
        s_load_dwordx2 s[6:7], s[4:5], 0x0
        s_load_dwordx4 s[0:3], s[4:5], 0x10
        s_waitcnt lgkmcnt(0)
        s_load_dword s6, s[6:7], 0x0
        s_load_dword s4, s[4:5], 0x20
        s_waitcnt lgkmcnt(0)
        v_mov_b32_e32 v0, s6
        v_mov_b32_e32 v1, s4
        buffer_store_dword v0, v1, s[0:3], 0 offen
.LBB0_2:
```
So you want to remove the `s_cbranch_scc1` and instead rely on setting EXEC to 0, even though the branch condition is uniform? Is that really viable, given that the s_load instructions can't be predicated with EXEC? What codegen would you like to see for this example?

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


More information about the llvm-commits mailing list