brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 5b9a7bc Raw
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