; 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
%13 = OpConstant  %3  10
%12 = OpTypeArray %7 %13
%14 = OpTypePointer StorageBuffer %12
%11 = OpVariable  %14  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