spv.nonuniform.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 212

                              Capability Shader
                              Capability InputAttachment
                              Capability SampledBuffer
                              Capability ImageBuffer
                              Capability ShaderNonUniformEXT
                              Capability RuntimeDescriptorArrayEXT
                              Capability InputAttachmentArrayDynamicIndexingEXT
                              Capability UniformTexelBufferArrayDynamicIndexingEXT
                              Capability StorageTexelBufferArrayDynamicIndexingEXT
                              Capability UniformBufferArrayNonUniformIndexingEXT
                              Capability SampledImageArrayNonUniformIndexingEXT
                              Capability StorageBufferArrayNonUniformIndexingEXT
                              Capability StorageImageArrayNonUniformIndexingEXT
                              Capability InputAttachmentArrayNonUniformIndexingEXT
                              Capability UniformTexelBufferArrayNonUniformIndexingEXT
                              Capability StorageTexelBufferArrayNonUniformIndexingEXT
                              Extension  "SPV_EXT_descriptor_indexing"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 35 92
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_EXT_nonuniform_qualifier"
                              Name 4  "main"
                              Name 11  "foo(i1;i1;"
                              Name 9  "nupi"
                              Name 10  "f"
                              Name 16  "a"
                              Name 17  "nu_li"
                              Name 18  "param"
                              Name 20  "param"
                              Name 32  "b"
                              Name 35  "nu_inv4"
                              Name 41  "nu_gf"
                              Name 47  "inputAttachmentDyn"
                              Name 48  "dyn_i"
                              Name 64  "uniformTexelBufferDyn"
                              Name 78  "storageTexelBufferDyn"
                              Name 87  "uname"
                              MemberName 87(uname) 0  "a"
                              Name 90  "uniformBuffer"
                              Name 92  "nu_ii"
                              Name 99  "bname"
                              MemberName 99(bname) 0  "b"
                              Name 102  "storageBuffer"
                              Name 112  "sampledImage"
                              Name 127  "storageImage"
                              Name 139  "inputAttachment"
                              Name 149  "uniformTexelBuffer"
                              Name 160  "storageTexelBuffer"
                              Name 170  "v"
                              Name 185  "uv"
                              Name 195  "m"
                              Name 203  "S"
                              MemberName 203(S) 0  "a"
                              Name 205  "s"
                              Decorate 13 DecorationNonUniformEXT
                              Decorate 17(nu_li) DecorationNonUniformEXT
                              Decorate 19 DecorationNonUniformEXT
                              Decorate 24 DecorationNonUniformEXT
                              Decorate 28 DecorationNonUniformEXT
                              Decorate 29 DecorationNonUniformEXT
                              Decorate 35(nu_inv4) Location 0
                              Decorate 35(nu_inv4) DecorationNonUniformEXT
                              Decorate 40 DecorationNonUniformEXT
                              Decorate 41(nu_gf) DecorationNonUniformEXT
                              Decorate 42 DecorationNonUniformEXT
                              Decorate 43 DecorationNonUniformEXT
                              Decorate 47(inputAttachmentDyn) DescriptorSet 0
                              Decorate 47(inputAttachmentDyn) Binding 0
                              Decorate 47(inputAttachmentDyn) InputAttachmentIndex 0
                              Decorate 64(uniformTexelBufferDyn) DescriptorSet 0
                              Decorate 64(uniformTexelBufferDyn) Binding 1
                              Decorate 78(storageTexelBufferDyn) DescriptorSet 0
                              Decorate 78(storageTexelBufferDyn) Binding 2
                              MemberDecorate 87(uname) 0 Offset 0
                              Decorate 87(uname) Block
                              Decorate 90(uniformBuffer) DescriptorSet 0
                              Decorate 90(uniformBuffer) Binding 3
                              Decorate 92(nu_ii) Flat
                              Decorate 92(nu_ii) Location 1
                              Decorate 92(nu_ii) DecorationNonUniformEXT
                              Decorate 93 DecorationNonUniformEXT
                              Decorate 96 DecorationNonUniformEXT
                              MemberDecorate 99(bname) 0 Offset 0
                              Decorate 99(bname) BufferBlock
                              Decorate 102(storageBuffer) DescriptorSet 0
                              Decorate 102(storageBuffer) Binding 4
                              Decorate 103 DecorationNonUniformEXT
                              Decorate 105 DecorationNonUniformEXT
                              Decorate 112(sampledImage) DescriptorSet 0
                              Decorate 112(sampledImage) Binding 5
                              Decorate 113 DecorationNonUniformEXT
                              Decorate 116 DecorationNonUniformEXT
                              Decorate 127(storageImage) DescriptorSet 0
                              Decorate 127(storageImage) Binding 6
                              Decorate 128 DecorationNonUniformEXT
                              Decorate 131 DecorationNonUniformEXT
                              Decorate 139(inputAttachment) DescriptorSet 0
                              Decorate 139(inputAttachment) Binding 7
                              Decorate 139(inputAttachment) InputAttachmentIndex 1
                              Decorate 140 DecorationNonUniformEXT
                              Decorate 142 DecorationNonUniformEXT
                              Decorate 149(uniformTexelBuffer) DescriptorSet 0
                              Decorate 149(uniformTexelBuffer) Binding 8
                              Decorate 150 DecorationNonUniformEXT
                              Decorate 152 DecorationNonUniformEXT
                              Decorate 160(storageTexelBuffer) DescriptorSet 0
                              Decorate 160(storageTexelBuffer) Binding 9
                              Decorate 161 DecorationNonUniformEXT
                              Decorate 163 DecorationNonUniformEXT
                              Decorate 170(v) DecorationNonUniformEXT
                              Decorate 173 DecorationNonUniformEXT
                              Decorate 175 DecorationNonUniformEXT
                              Decorate 180 DecorationNonUniformEXT
                              Decorate 182 DecorationNonUniformEXT
                              Decorate 186 DecorationNonUniformEXT
                              Decorate 188 DecorationNonUniformEXT
                              Decorate 190 DecorationNonUniformEXT
                              Decorate 195(m) DecorationNonUniformEXT
                              Decorate 197 DecorationNonUniformEXT
                              Decorate 205(s) DecorationNonUniformEXT
                              Decorate 207 DecorationNonUniformEXT
                              Decorate 209 DecorationNonUniformEXT
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Function 6(int)
               8:             TypeFunction 6(int) 7(ptr) 7(ptr)
              26:      6(int) Constant 2
              30:             TypeFloat 32
              31:             TypePointer Function 30(float)
              33:             TypeVector 30(float) 4
              34:             TypePointer Input 33(fvec4)
     35(nu_inv4):     34(ptr) Variable Input
              36:             TypeInt 32 0
              37:     36(int) Constant 0
              38:             TypePointer Input 30(float)
              44:             TypeImage 30(float) SubpassData nonsampled format:Unknown
              45:             TypeRuntimeArray 44
              46:             TypePointer UniformConstant 45
47(inputAttachmentDyn):     46(ptr) Variable UniformConstant
              50:             TypePointer UniformConstant 44
              53:      6(int) Constant 0
              54:             TypeVector 6(int) 2
              55:   54(ivec2) ConstantComposite 53 53
              60:             TypeImage 30(float) Buffer sampled format:Unknown
              61:             TypeSampledImage 60
              62:             TypeRuntimeArray 61
              63:             TypePointer UniformConstant 62
64(uniformTexelBufferDyn):     63(ptr) Variable UniformConstant
              66:             TypePointer UniformConstant 61
              69:      6(int) Constant 1
              75:             TypeImage 30(float) Buffer nonsampled format:R32f
              76:             TypeRuntimeArray 75
              77:             TypePointer UniformConstant 76
78(storageTexelBufferDyn):     77(ptr) Variable UniformConstant
              80:             TypePointer UniformConstant 75
       87(uname):             TypeStruct 30(float)
              88:             TypeRuntimeArray 87(uname)
              89:             TypePointer Uniform 88
90(uniformBuffer):     89(ptr) Variable Uniform
              91:             TypePointer Input 6(int)
       92(nu_ii):     91(ptr) Variable Input
              94:             TypePointer Uniform 30(float)
       99(bname):             TypeStruct 30(float)
             100:             TypeRuntimeArray 99(bname)
             101:             TypePointer Uniform 100
102(storageBuffer):    101(ptr) Variable Uniform
             108:             TypeImage 30(float) 2D sampled format:Unknown
             109:             TypeSampledImage 108
             110:             TypeRuntimeArray 109
             111:             TypePointer UniformConstant 110
112(sampledImage):    111(ptr) Variable UniformConstant
             114:             TypePointer UniformConstant 109
             117:             TypeVector 30(float) 2
             118:   30(float) Constant 1056964608
             119:  117(fvec2) ConstantComposite 118 118
             124:             TypeImage 30(float) 2D nonsampled format:R32f
             125:             TypeRuntimeArray 124
             126:             TypePointer UniformConstant 125
127(storageImage):    126(ptr) Variable UniformConstant
             129:             TypePointer UniformConstant 124
             132:   54(ivec2) ConstantComposite 69 69
             137:             TypeRuntimeArray 44
             138:             TypePointer UniformConstant 137
139(inputAttachment):    138(ptr) Variable UniformConstant
             147:             TypeRuntimeArray 61
             148:             TypePointer UniformConstant 147
149(uniformTexelBuffer):    148(ptr) Variable UniformConstant
             158:             TypeRuntimeArray 75
             159:             TypePointer UniformConstant 158
160(storageTexelBuffer):    159(ptr) Variable UniformConstant
             168:             TypeVector 6(int) 4
             169:             TypePointer Function 168(ivec4)
             171:     36(int) Constant 1
             178:     36(int) Constant 2
             193:             TypeMatrix 33(fvec4) 4
             194:             TypePointer Function 193
          203(S):             TypeStruct 6(int)
             204:             TypePointer Function 203(S)
         4(main):           2 Function None 3
               5:             Label
           16(a):      7(ptr) Variable Function
       17(nu_li):      7(ptr) Variable Function
       18(param):      7(ptr) Variable Function
       20(param):      7(ptr) Variable Function
           32(b):     31(ptr) Variable Function
       41(nu_gf):     31(ptr) Variable Function
       48(dyn_i):      7(ptr) Variable Function
          170(v):    169(ptr) Variable Function
         185(uv):    169(ptr) Variable Function
          195(m):    194(ptr) Variable Function
          205(s):    204(ptr) Variable Function
              19:      6(int) Load 17(nu_li)
                              Store 18(param) 19
              21:      6(int) FunctionCall 11(foo(i1;i1;) 18(param) 20(param)
              22:      6(int) Load 20(param)
                              Store 17(nu_li) 22
                              Store 16(a) 21
              23:      6(int) Load 16(a)
              24:      6(int) CopyObject 23
              25:      6(int) Load 16(a)
              27:      6(int) IMul 25 26
              28:      6(int) CopyObject 27
              29:      6(int) IAdd 24 28
                              Store 17(nu_li) 29
              39:     38(ptr) AccessChain 35(nu_inv4) 37
              40:   30(float) Load 39
              42:   30(float) Load 41(nu_gf)
              43:   30(float) FMul 40 42
                              Store 32(b) 43
              49:      6(int) Load 48(dyn_i)
              51:     50(ptr) AccessChain 47(inputAttachmentDyn) 49
              52:          44 Load 51
              56:   33(fvec4) ImageRead 52 55
              57:   30(float) CompositeExtract 56 0
              58:   30(float) Load 32(b)
              59:   30(float) FAdd 58 57
                              Store 32(b) 59
              65:      6(int) Load 48(dyn_i)
              67:     66(ptr) AccessChain 64(uniformTexelBufferDyn) 65
              68:          61 Load 67
              70:          60 Image 68
              71:   33(fvec4) ImageFetch 70 69
              72:   30(float) CompositeExtract 71 0
              73:   30(float) Load 32(b)
              74:   30(float) FAdd 73 72
                              Store 32(b) 74
              79:      6(int) Load 48(dyn_i)
              81:     80(ptr) AccessChain 78(storageTexelBufferDyn) 79
              82:          75 Load 81
              83:   33(fvec4) ImageRead 82 69
              84:   30(float) CompositeExtract 83 0
              85:   30(float) Load 32(b)
              86:   30(float) FAdd 85 84
                              Store 32(b) 86
              93:      6(int) Load 92(nu_ii)
              95:     94(ptr) AccessChain 90(uniformBuffer) 93 53
              96:   30(float) Load 95
              97:   30(float) Load 32(b)
              98:   30(float) FAdd 97 96
                              Store 32(b) 98
             103:      6(int) Load 92(nu_ii)
             104:     94(ptr) AccessChain 102(storageBuffer) 103 53
             105:   30(float) Load 104
             106:   30(float) Load 32(b)
             107:   30(float) FAdd 106 105
                              Store 32(b) 107
             113:      6(int) Load 92(nu_ii)
             115:    114(ptr) AccessChain 112(sampledImage) 113
             116:         109 Load 115
             120:   33(fvec4) ImageSampleImplicitLod 116 119
             121:   30(float) CompositeExtract 120 0
             122:   30(float) Load 32(b)
             123:   30(float) FAdd 122 121
                              Store 32(b) 123
             128:      6(int) Load 92(nu_ii)
             130:    129(ptr) AccessChain 127(storageImage) 128
             131:         124 Load 130
             133:   33(fvec4) ImageRead 131 132
             134:   30(float) CompositeExtract 133 0
             135:   30(float) Load 32(b)
             136:   30(float) FAdd 135 134
                              Store 32(b) 136
             140:      6(int) Load 92(nu_ii)
             141:     50(ptr) AccessChain 139(inputAttachment) 140
             142:          44 Load 141
             143:   33(fvec4) ImageRead 142 55
             144:   30(float) CompositeExtract 143 0
             145:   30(float) Load 32(b)
             146:   30(float) FAdd 145 144
                              Store 32(b) 146
             150:      6(int) Load 92(nu_ii)
             151:     66(ptr) AccessChain 149(uniformTexelBuffer) 150
             152:          61 Load 151
             153:          60 Image 152
             154:   33(fvec4) ImageFetch 153 69
             155:   30(float) CompositeExtract 154 0
             156:   30(float) Load 32(b)
             157:   30(float) FAdd 156 155
                              Store 32(b) 157
             161:      6(int) Load 92(nu_ii)
             162:     80(ptr) AccessChain 160(storageTexelBuffer) 161
             163:          75 Load 162
             164:   33(fvec4) ImageRead 163 69
             165:   30(float) CompositeExtract 164 0
             166:   30(float) Load 32(b)
             167:   30(float) FAdd 166 165
                              Store 32(b) 167
             172:      7(ptr) AccessChain 170(v) 171
             173:      6(int) Load 172
             174:     94(ptr) AccessChain 90(uniformBuffer) 173 53
             175:   30(float) Load 174
             176:   30(float) Load 32(b)
             177:   30(float) FAdd 176 175
                              Store 32(b) 177
             179:      7(ptr) AccessChain 170(v) 178
             180:      6(int) Load 179
             181:     94(ptr) AccessChain 90(uniformBuffer) 180 53
             182:   30(float) Load 181
             183:   30(float) Load 32(b)
             184:   30(float) FAdd 183 182
                              Store 32(b) 184
             186:      6(int) Load 92(nu_ii)
             187:      7(ptr) AccessChain 185(uv) 186
             188:      6(int) Load 187
             189:     94(ptr) AccessChain 90(uniformBuffer) 188 53
             190:   30(float) Load 189
             191:   30(float) Load 32(b)
             192:   30(float) FAdd 191 190
                              Store 32(b) 192
             196:     31(ptr) AccessChain 195(m) 26 178
             197:   30(float) Load 196
             198:      6(int) ConvertFToS 197
             199:     94(ptr) AccessChain 90(uniformBuffer) 198 53
             200:   30(float) Load 199
             201:   30(float) Load 32(b)
             202:   30(float) FAdd 201 200
                              Store 32(b) 202
             206:      7(ptr) AccessChain 205(s) 53
             207:      6(int) Load 206
             208:     94(ptr) AccessChain 90(uniformBuffer) 207 53
             209:   30(float) Load 208
             210:   30(float) Load 32(b)
             211:   30(float) FAdd 210 209
                              Store 32(b) 211
                              Return
                              FunctionEnd
  11(foo(i1;i1;):      6(int) Function None 8
         9(nupi):      7(ptr) FunctionParameter
           10(f):      7(ptr) FunctionParameter
              12:             Label
              13:      6(int) Load 9(nupi)
                              ReturnValue 13
                              FunctionEnd
