remap.uniformarray.none.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 60

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