spv.localAggregates.frag
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 136

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 15 40 90 98 108 134 135
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 400
                              Name 4  "main"
                              Name 8  "s1"
                              MemberName 8(s1) 0  "i"
                              MemberName 8(s1) 1  "f"
                              Name 10  "s2"
                              MemberName 10(s2) 0  "i"
                              MemberName 10(s2) 1  "f"
                              MemberName 10(s2) 2  "s1_1"
                              MemberName 10(s2) 3  "bleh"
                              Name 12  "locals2"
                              Name 13  "s3"
                              MemberName 13(s3) 0  "s2_1"
                              MemberName 13(s3) 1  "i"
                              MemberName 13(s3) 2  "f"
                              MemberName 13(s3) 3  "s1_1"
                              Name 15  "foo3"
                              Name 36  "localFArray"
                              Name 40  "coord"
                              Name 49  "localIArray"
                              Name 68  "x"
                              Name 70  "localArray"
                              Name 75  "i"
                              Name 84  "a"
                              Name 90  "condition"
                              Name 98  "color"
                              Name 108  "gl_FragColor"
                              Name 128  "samp2D"
                              Name 134  "foo"
                              Name 135  "foo2"
                              Decorate 15(foo3) Flat
                              Decorate 90(condition) Flat
                              Decorate 108(gl_FragColor) Location 0
                              Decorate 128(samp2D) DescriptorSet 0
                              Decorate 134(foo) Flat
                              Decorate 135(foo2) Flat
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypeFloat 32
           8(s1):             TypeStruct 6(int) 7(float)
               9:             TypeVector 7(float) 4
          10(s2):             TypeStruct 6(int) 7(float) 8(s1) 9(fvec4)
              11:             TypePointer Function 10(s2)
          13(s3):             TypeStruct 10(s2) 6(int) 7(float) 8(s1)
              14:             TypePointer Input 13(s3)
        15(foo3):     14(ptr) Variable Input
              16:      6(int) Constant 0
              17:             TypePointer Input 10(s2)
              20:             TypePointer Input 6(int)
              23:             TypeBool
              27:      6(int) Constant 2
              28:      6(int) Constant 1
              29:    7(float) Constant 1065353216
              30:             TypePointer Function 7(float)
              32:             TypeInt 32 0
              33:     32(int) Constant 16
              34:             TypeArray 7(float) 33
              35:             TypePointer Function 34
              37:      6(int) Constant 4
              38:             TypeVector 7(float) 2
              39:             TypePointer Input 38(fvec2)
       40(coord):     39(ptr) Variable Input
              41:     32(int) Constant 0
              42:             TypePointer Input 7(float)
              46:     32(int) Constant 8
              47:             TypeArray 6(int) 46
              48:             TypePointer Function 47
              52:             TypePointer Function 6(int)
              69:      6(int) Constant 5
              82:      6(int) Constant 16
              86:    7(float) Constant 0
   90(condition):     20(ptr) Variable Input
              96:      6(int) Constant 3
              97:             TypePointer Input 9(fvec4)
       98(color):     97(ptr) Variable Input
             100:             TypePointer Function 9(fvec4)
             102:     32(int) Constant 1
             105:     32(int) Constant 2
             107:             TypePointer Output 9(fvec4)
108(gl_FragColor):    107(ptr) Variable Output
             125:             TypeImage 7(float) 2D sampled format:Unknown
             126:             TypeSampledImage 125
             127:             TypePointer UniformConstant 126
     128(samp2D):    127(ptr) Variable UniformConstant
             133:             TypePointer Input 8(s1)
        134(foo):    133(ptr) Variable Input
       135(foo2):     17(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
     12(locals2):     11(ptr) Variable Function
 36(localFArray):     35(ptr) Variable Function
 49(localIArray):     48(ptr) Variable Function
           68(x):     52(ptr) Variable Function
  70(localArray):     35(ptr) Variable Function
           75(i):     52(ptr) Variable Function
           84(a):     35(ptr) Variable Function
              18:     17(ptr) AccessChain 15(foo3) 16
              19:      10(s2) Load 18
                              Store 12(locals2) 19
              21:     20(ptr) AccessChain 15(foo3) 16 16
              22:      6(int) Load 21
              24:    23(bool) SGreaterThan 22 16
                              SelectionMerge 26 None
                              BranchConditional 24 25 54
              25:               Label
              31:     30(ptr)   AccessChain 12(locals2) 27 28
                                Store 31 29
              43:     42(ptr)   AccessChain 40(coord) 41
              44:    7(float)   Load 43
              45:     30(ptr)   AccessChain 36(localFArray) 37
                                Store 45 44
              50:     20(ptr)   AccessChain 15(foo3) 16 16
              51:      6(int)   Load 50
              53:     52(ptr)   AccessChain 49(localIArray) 27
                                Store 53 51
                                Branch 26
              54:               Label
              55:     42(ptr)   AccessChain 40(coord) 41
              56:    7(float)   Load 55
              57:     30(ptr)   AccessChain 12(locals2) 27 28
                                Store 57 56
              58:     30(ptr)   AccessChain 36(localFArray) 37
                                Store 58 29
              59:     52(ptr)   AccessChain 49(localIArray) 27
                                Store 59 16
                                Branch 26
              26:             Label
              60:     52(ptr) AccessChain 49(localIArray) 27
              61:      6(int) Load 60
              62:    23(bool) IEqual 61 16
                              SelectionMerge 64 None
                              BranchConditional 62 63 64
              63:               Label
              65:     30(ptr)   AccessChain 36(localFArray) 37
              66:    7(float)   Load 65
              67:    7(float)   FAdd 66 29
                                Store 65 67
                                Branch 64
              64:             Label
                              Store 68(x) 69
              71:      6(int) Load 68(x)
              72:     42(ptr) AccessChain 40(coord) 41
              73:    7(float) Load 72
              74:     30(ptr) AccessChain 70(localArray) 71
                              Store 74 73
                              Store 75(i) 16
                              Branch 76
              76:             Label
                              LoopMerge 78 79 None
                              Branch 80
              80:             Label
              81:      6(int) Load 75(i)
              83:    23(bool) SLessThan 81 82
                              BranchConditional 83 77 78
              77:               Label
              85:      6(int)   Load 75(i)
              87:     30(ptr)   AccessChain 84(a) 85
                                Store 87 86
                                Branch 79
              79:               Label
              88:      6(int)   Load 75(i)
              89:      6(int)   IAdd 88 28
                                Store 75(i) 89
                                Branch 76
              78:             Label
              91:      6(int) Load 90(condition)
              92:    23(bool) IEqual 91 28
                              SelectionMerge 94 None
                              BranchConditional 92 93 94
              93:               Label
              95:          34   Load 70(localArray)
                                Store 84(a) 95
                                Branch 94
              94:             Label
              99:    9(fvec4) Load 98(color)
             101:    100(ptr) AccessChain 12(locals2) 96
                              Store 101 99
             103:     42(ptr) AccessChain 40(coord) 102
             104:    7(float) Load 103
             106:     30(ptr) AccessChain 12(locals2) 96 105
                              Store 106 104
             109:    100(ptr) AccessChain 12(locals2) 96
             110:    9(fvec4) Load 109
             111:     30(ptr) AccessChain 36(localFArray) 37
             112:    7(float) Load 111
             113:     30(ptr) AccessChain 12(locals2) 27 28
             114:    7(float) Load 113
             115:    7(float) FAdd 112 114
             116:      6(int) Load 68(x)
             117:     30(ptr) AccessChain 70(localArray) 116
             118:    7(float) Load 117
             119:    7(float) FAdd 115 118
             120:      6(int) Load 68(x)
             121:     30(ptr) AccessChain 84(a) 120
             122:    7(float) Load 121
             123:    7(float) FAdd 119 122
             124:    9(fvec4) VectorTimesScalar 110 123
             129:         126 Load 128(samp2D)
             130:   38(fvec2) Load 40(coord)
             131:    9(fvec4) ImageSampleImplicitLod 129 130
             132:    9(fvec4) FMul 124 131
                              Store 108(gl_FragColor) 132
                              Return
                              FunctionEnd
