[llvm] AMDGPU/GFX12: Fix s_barrier_signal_isfirst for single-wave workgroups (PR #143634)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 10 17:49:43 PDT 2025


Nicolai =?utf-8?q?Hähnle?= <nicolai.haehnle at amd.com>,
Nicolai =?utf-8?q?Hähnle?= <nhaehnle at gmail.com>,
Nicolai =?utf-8?q?Hähnle?= <nhaehnle at gmail.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/143634 at github.com>


================
@@ -5411,6 +5411,14 @@ SITargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
     MI.eraseFromParent();
     return BB;
   }
+  case AMDGPU::S_BARRIER_SIGNAL_ISFIRST_IMM: {
+    // Set SCC to true, in case the barrier instruction gets converted to a NOP.
+    BuildMI(*BB, MI.getIterator(), MI.getDebugLoc(),
+            TII->get(AMDGPU::S_CMP_EQ_U32))
+        .addImm(0)
+        .addImm(0);
----------------
arsenm wrote:

So it's sort of a hardware bug? The ordinary behavior is SCC is always set to 1? And if it nops it leaves it in the previous state? 

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


More information about the llvm-commits mailing list