diff options
author | Jay Foad <jay.foad@amd.com> | 2024-04-23 14:38:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-23 14:38:45 +0100 |
commit | e0a763c490d8ef58dca867e0ef834978ccf8e17d (patch) | |
tree | cb1884230c2694cdd002d2d7299b327f5aa74beb | |
parent | a9e3fbf429ad1869c9434a9660fb8185378d6df4 (diff) | |
download | llvm-e0a763c490d8ef58dca867e0ef834978ccf8e17d.zip llvm-e0a763c490d8ef58dca867e0ef834978ccf8e17d.tar.gz llvm-e0a763c490d8ef58dca867e0ef834978ccf8e17d.tar.bz2 |
[AMDGPU] Fix GFX12 encoding of s_wait_event export_ready (#89622)
As well as flipping the sense of the bit, GFX12 moved it from bit 0 to
bit 1 in the encoded simm16 operand.
-rw-r--r-- | llvm/lib/Target/AMDGPU/SOPInstructions.td | 2 | ||||
-rw-r--r-- | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.wait.event.ll | 10 |
2 files changed, 4 insertions, 8 deletions
diff --git a/llvm/lib/Target/AMDGPU/SOPInstructions.td b/llvm/lib/Target/AMDGPU/SOPInstructions.td index 0b7d45e..93b7e86 100644 --- a/llvm/lib/Target/AMDGPU/SOPInstructions.td +++ b/llvm/lib/Target/AMDGPU/SOPInstructions.td @@ -1803,7 +1803,7 @@ def : GCNPat< let SubtargetPredicate = isNotGFX12Plus in def : GCNPat <(int_amdgcn_s_wait_event_export_ready), (S_WAIT_EVENT (i16 0))>; let SubtargetPredicate = isGFX12Plus in - def : GCNPat <(int_amdgcn_s_wait_event_export_ready), (S_WAIT_EVENT (i16 1))>; + def : GCNPat <(int_amdgcn_s_wait_event_export_ready), (S_WAIT_EVENT (i16 2))>; // The first 10 bits of the mode register are the core FP mode on all // subtargets. diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.wait.event.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.wait.event.ll index 08c7714..433fefa 100644 --- a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.wait.event.ll +++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.wait.event.ll @@ -5,14 +5,10 @@ ; GCN-LABEL: {{^}}test_wait_event: ; GFX11: s_wait_event 0x0 -; GFX12: s_wait_event 0x1 +; GFX12: s_wait_event 0x2 -define amdgpu_ps void @test_wait_event() #0 { +define amdgpu_ps void @test_wait_event() { entry: - call void @llvm.amdgcn.s.wait.event.export.ready() #0 + call void @llvm.amdgcn.s.wait.event.export.ready() ret void } - -declare void @llvm.amdgcn.s.wait.event.export.ready() #0 - -attributes #0 = { nounwind } |