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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 14 25 35 47
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 140
                              Name 4  "main"
                              Name 9  "texColor"
                              Name 14  "color"
                              Name 25  "inColor"
                              Name 35  "alpha"
                              Name 47  "gl_FragColor"
                              Name 52  "texSampler2D"
                              Decorate 47(gl_FragColor) Location 0
                              Decorate 52(texSampler2D) DescriptorSet 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
              32:     10(int) Constant 16
              33:             TypeArray 6(float) 32
              34:             TypePointer Input 33
       35(alpha):     34(ptr) Variable Input
              36:     15(int) Constant 12
              37:             TypePointer Input 6(float)
              40:     10(int) Constant 3
              41:             TypePointer Function 6(float)
              46:             TypePointer Output 7(fvec4)
47(gl_FragColor):     46(ptr) Variable Output
              49:             TypeImage 6(float) 2D sampled format:Unknown
              50:             TypeSampledImage 49
              51:             TypePointer UniformConstant 50
52(texSampler2D):     51(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
              30:    7(fvec4) Load 9(texColor)
              31:    7(fvec4) VectorShuffle 30 29 4 5 6 3
                              Store 9(texColor) 31
              38:     37(ptr) AccessChain 35(alpha) 36
              39:    6(float) Load 38
              42:     41(ptr) AccessChain 9(texColor) 40
              43:    6(float) Load 42
              44:    6(float) FAdd 43 39
              45:     41(ptr) AccessChain 9(texColor) 40
                              Store 45 44
              48:    7(fvec4) Load 9(texColor)
                              Store 47(gl_FragColor) 48
                              Return
                              FunctionEnd
