25 lines · plain
1; RUN: llc -O0 -mtriple=spirv1.6-unknown-vulkan1.3-compute %s -o - | FileCheck %s --match-full-lines2; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv1.6-unknown-vulkan1.3-compute %s -o - -filetype=obj | spirv-val %}3 4; CHECK-DAG: OpCapability Shader5; CHECK-DAG: OpCapability ShaderNonUniformEXT6; CHECK-DAG: OpCapability StorageTexelBufferArrayNonUniformIndexingEXT7; CHECK-DAG: OpDecorate {{%[0-9]+}} NonUniformEXT8; CHECK-DAG: OpDecorate %[[#access:]] NonUniformEXT9; CHECK-DAG: OpDecorate %[[#load:]] NonUniformEXT10@ReadWriteBuf.str = private unnamed_addr constant [13 x i8] c"ReadWriteBuf\00", align 111 12define void @main() local_unnamed_addr #0 {13entry:14 %0 = tail call i32 @llvm.spv.thread.id.in.group.i32(i32 0)15 %1 = tail call noundef i32 @llvm.spv.resource.nonuniformindex(i32 %0)16 %2 = tail call target("spirv.Image", i32, 5, 2, 0, 0, 2, 33) @llvm.spv.resource.handlefromimplicitbinding.tspirv.Image_i32_5_2_0_0_2_33t(i32 0, i32 0, i32 64, i32 %1, ptr nonnull @ReadWriteBuf.str)17 %3 = tail call noundef align 4 dereferenceable(4) ptr addrspace(11) @llvm.spv.resource.getpointer.p11.tspirv.Image_i32_5_2_0_0_2_33t(target("spirv.Image", i32, 5, 2, 0, 0, 2, 33) %2, i32 96)18; CHECK: {{%[0-9]+}} = OpCompositeExtract {{.*}}19; CHECK: %[[#access]] = OpAccessChain {{.*}}20; CHECK: %[[#load]] = OpLoad {{%[0-9]+}} %[[#access]]21; CHECK: OpImageWrite %[[#load]] {{%[0-9]+}} {{%[0-9]+}}22 store i32 95, ptr addrspace(11) %3, align 423 ret void24}25