[llvm] [AMDGPU] Intrinsic for launching whole wave functions (PR #145859)

Nicolai Hähnle via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 4 12:14:44 PDT 2025


================
@@ -2587,6 +2587,18 @@ def int_amdgcn_cs_chain:
             ],
             [IntrConvergent, IntrNoReturn, ImmArg<ArgIndex<4>>]>;
 
+// Run a function with all the lanes enabled. Only direct calls are allowed. The
+// first argument is the callee, which must have the `amdgpu_gfx_whole_wave`
+// calling convention and must not be variadic. The remaining arguments to the
+// callee are taken from the arguments passed to the intrinsic. Lanes that are
+// inactive at the point of the call will receive poison. The return value is
+// the return value of the callee for the active lanes and poison for the
+// inactive ones.
+def int_amdgcn_call_whole_wave:
+  Intrinsic<[llvm_any_ty],    // The return type of the callee.
+            [llvm_anyptr_ty,  // The callee.
+             llvm_vararg_ty], // The arguments to the callee.
+            [IntrConvergent, IntrNoReturn, IntrNoCallback, IntrNoFree]>;
----------------
nhaehnle wrote:

```suggestion
            [IntrConvergent]>;
```

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


More information about the llvm-commits mailing list