28 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 StorageBufferArrayNonUniformIndexingEXT7; CHECK-DAG: OpDecorate {{%[0-9]+}} NonUniformEXT8; CHECK-DAG: OpDecorate {{%[0-9]+}} NonUniformEXT9; CHECK-DAG: OpDecorate {{%[0-9]+}} NonUniformEXT10; CHECK-DAG: OpDecorate {{%[0-9]+}} NonUniformEXT11; CHECK-DAG: OpDecorate %[[#access1:]] NonUniformEXT12@ReadWriteStructuredBuf.str = private unnamed_addr constant [23 x i8] c"ReadWriteStructuredBuf\00", align 113 14define void @main() local_unnamed_addr #0 {15entry:16 %0 = tail call i32 @llvm.spv.thread.id.in.group.i32(i32 0)17 %add.i = add i32 %0, 118 %1 = tail call noundef i32 @llvm.spv.resource.nonuniformindex(i32 %add.i)19 %2 = tail call target("spirv.VulkanBuffer", [0 x <4 x i32>], 12, 1) @llvm.spv.resource.handlefromimplicitbinding.tspirv.VulkanBuffer_a0v4i32_12_1t(i32 0, i32 0, i32 64, i32 %1, ptr nonnull @ReadWriteStructuredBuf.str)20 %3 = tail call noundef align 16 dereferenceable(16) ptr addrspace(11) @llvm.spv.resource.getpointer.p11.tspirv.VulkanBuffer_a0v4i32_12_1t(target("spirv.VulkanBuffer", [0 x <4 x i32>], 12, 1) %2, i32 98)21 %4 = load <4 x i32>, ptr addrspace(11) %3, align 1622 %vecins.i = insertelement <4 x i32> %4, i32 99, i64 023; CHECK: %[[#access1]] = OpAccessChain {{.*}}24; CHECK: OpStore %[[#access1]] {{%[0-9]+}} Aligned 1625 store <4 x i32> %vecins.i, ptr addrspace(11) %3, align 1626 ret void27}28