[clang] [llvm] [HLSL] Handle WaveActiveBallot struct return type appropriately (PR #175105)

Farzon Lotfi via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 9 14:01:39 PST 2026


================
@@ -160,6 +160,26 @@ static Value *handleHlslSplitdouble(const CallExpr *E, CodeGenFunction *CGF) {
   return LastInst;
 }
 
+static Value *handleHlslWaveActiveBallot(const CallExpr *E,
+                                         CodeGenFunction *CGF) {
+  Value *Cond = CGF->EmitScalarExpr(E->getArg(0));
+  llvm::Type *I32 = CGF->Int32Ty;
+
+  if (CGF->CGM.getTarget().getTriple().isDXIL()) {
+    return CGF->EmitRuntimeCall(
----------------
farzonl wrote:

this doesn't seem quite right. the DirectX case should be returning an unamed struct? don't we need to format this into a  vector of size 4?

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


More information about the cfe-commits mailing list