spv.varyingArrayIndirect.frag
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 70

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 19 22 30 31 45 50 56
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 140
                              Name 4  "main"
                              Name 9  "texColor"
                              Name 13  "texSampler2D"
                              Name 19  "userIn"
                              Name 22  "b"
                              Name 30  "TexCoord"
                              Name 31  "a"
                              Name 45  "color"
                              Name 50  "alpha"
                              Name 56  "gl_FragColor"
                              Decorate 13(texSampler2D) DescriptorSet 0
                              Decorate 13(texSampler2D) Binding 0
                              Decorate 19(userIn) Location 8
                              Decorate 22(b) Flat
                              Decorate 22(b) Location 11
                              Decorate 30(TexCoord) Location 2
                              Decorate 31(a) Flat
                              Decorate 31(a) Location 10
                              Decorate 45(color) Location 0
                              Decorate 50(alpha) Location 1
                              Decorate 56(gl_FragColor) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:             TypeImage 6(float) 2D sampled format:Unknown
              11:             TypeSampledImage 10
              12:             TypePointer UniformConstant 11
13(texSampler2D):     12(ptr) Variable UniformConstant
              15:             TypeInt 32 0
              16:     15(int) Constant 2
              17:             TypeArray 7(fvec4) 16
              18:             TypePointer Input 17
      19(userIn):     18(ptr) Variable Input
              20:             TypeInt 32 1
              21:             TypePointer Input 20(int)
           22(b):     21(ptr) Variable Input
              24:             TypePointer Input 7(fvec4)
              27:     15(int) Constant 6
              28:             TypeArray 7(fvec4) 27
              29:             TypePointer Input 28
    30(TexCoord):     29(ptr) Variable Input
           31(a):     21(ptr) Variable Input
              36:     20(int) Constant 5
              40:             TypeVector 6(float) 2
       45(color):     24(ptr) Variable Input
              49:             TypePointer Input 6(float)
       50(alpha):     49(ptr) Variable Input
              52:     15(int) Constant 3
              53:             TypePointer Function 6(float)
              55:             TypePointer Output 7(fvec4)
56(gl_FragColor):     55(ptr) Variable Output
              57:     20(int) Constant 0
         4(main):           2 Function None 3
               5:             Label
     9(texColor):      8(ptr) Variable Function
              14:          11 Load 13(texSampler2D)
              23:     20(int) Load 22(b)
              25:     24(ptr) AccessChain 19(userIn) 23
              26:    7(fvec4) Load 25
              32:     20(int) Load 31(a)
              33:     24(ptr) AccessChain 30(TexCoord) 32
              34:    7(fvec4) Load 33
              35:    7(fvec4) FAdd 26 34
              37:     24(ptr) AccessChain 30(TexCoord) 36
              38:    7(fvec4) Load 37
              39:    7(fvec4) FAdd 35 38
              41:    6(float) CompositeExtract 39 0
              42:    6(float) CompositeExtract 39 1
              43:   40(fvec2) CompositeConstruct 41 42
              44:    7(fvec4) ImageSampleImplicitLod 14 43
                              Store 9(texColor) 44
              46:    7(fvec4) Load 45(color)
              47:    7(fvec4) Load 9(texColor)
              48:    7(fvec4) FAdd 47 46
                              Store 9(texColor) 48
              51:    6(float) Load 50(alpha)
              54:     53(ptr) AccessChain 9(texColor) 52
                              Store 54 51
              58:     24(ptr) AccessChain 30(TexCoord) 57
              59:    7(fvec4) Load 58
              60:     20(int) Load 22(b)
              61:     24(ptr) AccessChain 30(TexCoord) 60
              62:    7(fvec4) Load 61
              63:    7(fvec4) FAdd 59 62
              64:    7(fvec4) Load 9(texColor)
              65:    7(fvec4) FAdd 63 64
              66:     20(int) Load 31(a)
              67:     24(ptr) AccessChain 19(userIn) 66
              68:    7(fvec4) Load 67
              69:    7(fvec4) FAdd 65 68
                              Store 56(gl_FragColor) 69
                              Return
                              FunctionEnd
