52 lines · plain
1; RUN: llc -O0 -verify-machineinstrs -mtriple=spirv-vulkan-unknown %s -o - | FileCheck %s2; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-vulkan-unknown %s -o - -filetype=obj | spirv-val %}3 4; CHECK-DAG: %[[#int:]] = OpTypeInt 32 05; CHECK-DAG: %[[#v3int:]] = OpTypeVector %[[#int]] 36; CHECK-DAG: %[[#ptr_Input_v3int:]] = OpTypePointer Input %[[#v3int]]7; CHECK-DAG: %[[#tempvar:]] = OpUndef %[[#v3int]]8; CHECK-DAG: %[[#WorkgroupId:]] = OpVariable %[[#ptr_Input_v3int]] Input9 10; CHECK-DAG: OpEntryPoint GLCompute {{.*}} %[[#WorkgroupId]]11; CHECK-DAG: OpName %[[#WorkgroupId]] "__spirv_BuiltInWorkgroupId"12; CHECK-DAG: OpDecorate %[[#WorkgroupId]] BuiltIn WorkgroupId13 14target triple = "spirv-unknown-vulkan-library"15 16declare void @group_id_user(<3 x i32>)17 18; Function Attrs: convergent noinline norecurse19define void @main() #1 {20entry:21 22; CHECK: %[[#load:]] = OpLoad %[[#v3int]] %[[#WorkgroupId]]23; CHECK: %[[#load0:]] = OpCompositeExtract %[[#int]] %[[#load]] 024 %1 = call i32 @llvm.spv.group.id.i32(i32 0)25 26; CHECK: %[[#tempvar:]] = OpCompositeInsert %[[#v3int]] %[[#load0]] %[[#tempvar]]27 %2 = insertelement <3 x i32> poison, i32 %1, i64 028 29; CHECK: %[[#load:]] = OpLoad %[[#v3int]] %[[#WorkgroupId]]30; CHECK: %[[#load1:]] = OpCompositeExtract %[[#int]] %[[#load]] 131 %3 = call i32 @llvm.spv.group.id.i32(i32 1)32 33; CHECK: %[[#tempvar:]] = OpCompositeInsert %[[#v3int]] %[[#load1]] %[[#tempvar]] 134 %4 = insertelement <3 x i32> %2, i32 %3, i64 135 36; CHECK: %[[#load:]] = OpLoad %[[#v3int]] %[[#WorkgroupId]]37; CHECK: %[[#load2:]] = OpCompositeExtract %[[#int]] %[[#load]] 238 %5 = call i32 @llvm.spv.group.id.i32(i32 2)39 40; CHECK: %[[#tempvar:]] = OpCompositeInsert %[[#v3int]] %[[#load2]] %[[#tempvar]] 241 %6 = insertelement <3 x i32> %4, i32 %5, i64 242 43 call spir_func void @group_id_user(<3 x i32> %6)44 ret void45}46 47; Function Attrs: nounwind willreturn memory(none)48declare i32 @llvm.spv.group.id.i32(i32) #349 50attributes #1 = { convergent noinline norecurse "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" "no-trapping-math"="true" "stack-protector-buffer-size"="8" }51attributes #3 = { nounwind willreturn memory(none) }52