[clang] [llvm] [HLSL] Implement WaveActiveAnyTrue intrinsic (PR #115902)

Ashley Coleman via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 20 12:23:38 PST 2024


================
@@ -0,0 +1,17 @@
+; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv-unknown-unknown %s -o - | FileCheck %s
+; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-unknown-unknown %s -o - -filetype=obj | spirv-val %}
+
+; CHECK-DAG: %[[#bool:]] = OpTypeBool
+; CHECK-DAG: %[[#uint:]] = OpTypeInt 32 0
+; CHECK-DAG: %[[#scope:]] = OpConstant %[[#uint]] 3
+
+; CHECK-LABEL: Begin function test_wave_any
+define i1 @test_wave_any(i1 %p1) {
+entry:
+; CHECK: %[[#param:]] = OpFunctionParameter %[[#bool]]
+; CHECK: %{{.+}} = OpGroupNonUniformAny %[[#bool]] %[[#scope]] %[[#param]]
+  %ret = call i1 @llvm.spv.wave.any(i1 %p1)
----------------
V-FEXrt wrote:

This [similar commit](https://github.com/llvm/llvm-project/pull/111010/commits/484b2089ae9f0a0fae09b6d68b70171f1007bade#diff-bac84b1c33bc0aee1edd39550243c6e3c5606b6b8538b2f424a55ce3c9977244) (from which I was basing my changes) seems to have intentionally removed the convergence intrinsics generated by the frontend. Should we mirror that or should convergence be added back in to that test?

cc @inbelic 

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


More information about the cfe-commits mailing list