[clang] [llvm] [SPIR-V] Map SPIR-V friendly work-item function to built-in variables (PR #148567)

Victor Lomuller via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 16 06:55:43 PDT 2025


================
@@ -1,17 +1,109 @@
 ; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV
 ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}
 
-; CHECK-SPIRV-DAG: OpDecorate %[[#Id:]] BuiltIn GlobalInvocationId
-; CHECK-SPIRV-DAG: OpDecorate %[[#Id:]] BuiltIn GlobalLinearId
-; CHECK-SPIRV:     %[[#Id:]] = OpVariable %[[#]]
-; CHECK-SPIRV:     %[[#Id:]] = OpVariable %[[#]]
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id0:]] BuiltIn GlobalLinearId
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id1:]] BuiltIn GlobalInvocationId
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id2:]] BuiltIn LocalInvocationIndex
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id3:]] BuiltIn WorkDim
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id4:]] BuiltIn SubgroupSize
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id5:]] BuiltIn SubgroupMaxSize
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id6:]] BuiltIn NumSubgroups
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id7:]] BuiltIn NumEnqueuedSubgroups
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id8:]] BuiltIn SubgroupId
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id9:]] BuiltIn SubgroupLocalInvocationId
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id10:]] BuiltIn SubgroupEqMask
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id11:]] BuiltIn SubgroupGeMask
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id12:]] BuiltIn SubgroupGtMask
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id13:]] BuiltIn SubgroupLeMask
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id14:]] BuiltIn SubgroupLtMask
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id15:]] BuiltIn LocalInvocationId
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id16:]] BuiltIn WorkgroupSize
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id17:]] BuiltIn GlobalSize
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id18:]] BuiltIn WorkgroupId
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id19:]] BuiltIn EnqueuedWorkgroupSize
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id20:]] BuiltIn NumWorkgroups
+; CHECK-SPIRV-DAG: OpDecorate %[[#Id21:]] BuiltIn GlobalOffset
+
+; CHECK-SPIRV:     %[[#Id0:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id1:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id2:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id3:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id4:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id5:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id6:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id7:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id8:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id9:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id10:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id11:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id12:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id13:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id14:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id15:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id16:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id17:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id18:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id19:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id20:]] = OpVariable %[[#]]
+; CHECK-SPIRV:     %[[#Id21:]] = OpVariable %[[#]]
----------------
Naghasan wrote:

Can you check the SC please

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


More information about the llvm-commits mailing list