wgpu/naga/tests/out/spv/binding-buffer-arrays.spvasm

119 lines
3.0 KiB
Plaintext

; SPIR-V
; Version: 1.1
; Generator: rspirv
; Bound: 76
OpCapability Shader
OpCapability ShaderNonUniform
OpExtension "SPV_KHR_storage_buffer_storage_class"
OpExtension "SPV_EXT_descriptor_indexing"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %25 "main" %20 %23
OpExecutionMode %25 OriginUpperLeft
OpMemberDecorate %4 0 Offset 0
OpDecorate %6 ArrayStride 4
OpMemberDecorate %7 0 Offset 0
OpMemberDecorate %7 1 Offset 4
OpDecorate %7 Block
OpMemberDecorate %10 0 Offset 0
OpDecorate %11 NonWritable
OpDecorate %11 DescriptorSet 0
OpDecorate %11 Binding 0
OpDecorate %15 DescriptorSet 0
OpDecorate %15 Binding 10
OpDecorate %16 Block
OpMemberDecorate %16 0 Offset 0
OpDecorate %20 Location 0
OpDecorate %20 Flat
OpDecorate %23 Location 0
OpDecorate %55 NonUniform
%2 = OpTypeVoid
%3 = OpTypeInt 32 0
%4 = OpTypeStruct %3
%5 = OpTypeInt 32 1
%6 = OpTypeRuntimeArray %5
%7 = OpTypeStruct %3 %6
%9 = OpConstant %3 1
%8 = OpTypeArray %7 %9
%10 = OpTypeStruct %3
%14 = OpConstant %3 10
%13 = OpTypeArray %7 %14
%12 = OpTypePointer StorageBuffer %13
%11 = OpVariable %12 StorageBuffer
%16 = OpTypeStruct %4
%17 = OpTypePointer Uniform %16
%15 = OpVariable %17 Uniform
%21 = OpTypePointer Input %3
%20 = OpVariable %21 Input
%24 = OpTypePointer Output %3
%23 = OpVariable %24 Output
%26 = OpTypeFunction %2
%27 = OpTypePointer Uniform %4
%28 = OpConstant %3 0
%30 = OpTypePointer StorageBuffer %8
%32 = OpTypePointer Function %3
%34 = OpTypePointer Uniform %3
%38 = OpTypePointer StorageBuffer %7
%39 = OpTypePointer StorageBuffer %3
%45 = OpTypeBool
%47 = OpConstantNull %3
%62 = OpTypePointer StorageBuffer %6
%25 = OpFunction %2 None %26
%18 = OpLabel
%31 = OpVariable %32 Function %28
%22 = OpLoad %3 %20
%19 = OpCompositeConstruct %10 %22
%29 = OpAccessChain %27 %15 %28
OpBranch %33
%33 = OpLabel
%35 = OpAccessChain %34 %29 %28
%36 = OpLoad %3 %35
%37 = OpCompositeExtract %3 %19 0
%40 = OpAccessChain %39 %11 %28 %28
%41 = OpLoad %3 %40
%42 = OpLoad %3 %31
%43 = OpIAdd %3 %42 %41
OpStore %31 %43
%44 = OpULessThan %45 %36 %9
OpSelectionMerge %48 None
OpBranchConditional %44 %49 %48
%49 = OpLabel
%46 = OpAccessChain %39 %11 %36 %28
%50 = OpLoad %3 %46
OpBranch %48
%48 = OpLabel
%51 = OpPhi %3 %47 %33 %50 %49
%52 = OpLoad %3 %31
%53 = OpIAdd %3 %52 %51
OpStore %31 %53
%54 = OpULessThan %45 %37 %9
OpSelectionMerge %56 None
OpBranchConditional %54 %57 %56
%57 = OpLabel
%55 = OpAccessChain %39 %11 %37 %28
%58 = OpLoad %3 %55
OpBranch %56
%56 = OpLabel
%59 = OpPhi %3 %47 %48 %58 %57
%60 = OpLoad %3 %31
%61 = OpIAdd %3 %60 %59
OpStore %31 %61
%63 = OpAccessChain %38 %11 %28
%64 = OpArrayLength %3 %63 1
%65 = OpLoad %3 %31
%66 = OpIAdd %3 %65 %64
OpStore %31 %66
%67 = OpAccessChain %38 %11 %36
%68 = OpArrayLength %3 %67 1
%69 = OpLoad %3 %31
%70 = OpIAdd %3 %69 %68
OpStore %31 %70
%71 = OpAccessChain %38 %11 %37
%72 = OpArrayLength %3 %71 1
%73 = OpLoad %3 %31
%74 = OpIAdd %3 %73 %72
OpStore %31 %74
%75 = OpLoad %3 %31
OpStore %23 %75
OpReturn
OpFunctionEnd