brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · a820e7a Raw
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