[clang] [llvm] [HLSL][DXIL][SPIRV] Added WaveActiveBitOr HLSL intrinsic (PR #165156)

Farzon Lotfi via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 29 13:16:43 PDT 2025


================
@@ -0,0 +1,30 @@
+// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -triple \
+// RUN:   dxil-pc-shadermodel6.3-compute %s -emit-llvm -disable-llvm-passes -o - | \
+// RUN:   FileCheck %s --check-prefixes=CHECK,CHECK-DXIL
+// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -triple \
+// RUN:   spirv-pc-vulkan-compute %s -emit-llvm -disable-llvm-passes -o - | \
+// RUN:   FileCheck %s --check-prefixes=CHECK,CHECK-SPIRV
+
+// Test basic lowering to runtime function call.
+
+// CHECK-LABEL: test_uint
+uint test_uint(uint expr) {
+  // CHECK-SPIRV:  %[[RET:.*]] = call spir_func [[TY:.*]] @llvm.spv.wave.reduce.or.i32([[TY]] %[[#]])
----------------
farzonl wrote:

see `clang/test/CodeGenHLSL/builtins/dot.hlsl` that should let you use CHECK for most of your  intrinsics so we don't have to do so many seperate SPIRV vs DX checks.

should look something like this for the first one

// DXCHECK: %na,e = call <type> @llvm.[[ICF:dx]].<intrinsic_name>.<type>(..
// SPVCHECK: %name = call <type> @llvm.[[ICF:spv]].<intrinsic_name>.<type>(...

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


More information about the llvm-commits mailing list