spv.uniformInitializerStruct.frag
// Module Version 10000
// Generated by (magic number): 80009
// Id's are bound by 63

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 9
                              ExecutionMode 4 OriginLowerLeft
                              Source GLSL 450
                              Name 4  "main"
                              Name 9  "color"
                              Name 15  "i"
                              Name 26  ""
                              MemberName 26 0  "r"
                              MemberName 26 1  "g"
                              MemberName 26 2  "b"
                              Name 34  "parts"
                              Decorate 9(color) Location 0
                              Decorate 34(parts) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Output 7(fvec4)
        9(color):      8(ptr) Variable Output
              10:    6(float) Constant 0
              11:    6(float) Constant 1065353216
              12:    7(fvec4) ConstantComposite 10 10 10 11
              13:             TypeInt 32 1
              14:             TypePointer Function 13(int)
              16:     13(int) Constant 0
              23:     13(int) Constant 2
              24:             TypeBool
              26:             TypeStruct 6(float) 6(float) 6(float)
              27:             TypeInt 32 0
              28:     27(int) Constant 2
              29:             TypeArray 26(struct) 28
              30:  26(struct) ConstantComposite 11 11 11
              31:  26(struct) ConstantComposite 10 11 10
              32:          29 ConstantComposite 30 31
              33:             TypePointer UniformConstant 29
       34(parts):     33(ptr) Variable UniformConstant 32
              36:             TypePointer UniformConstant 6(float)
              39:     27(int) Constant 0
              40:             TypePointer Output 6(float)
              46:     13(int) Constant 1
              49:     27(int) Constant 1
         4(main):           2 Function None 3
               5:             Label
           15(i):     14(ptr) Variable Function
                              Store 9(color) 12
                              Store 15(i) 16
                              Branch 17
              17:             Label
                              LoopMerge 19 20 None
                              Branch 21
              21:             Label
              22:     13(int) Load 15(i)
              25:    24(bool) SLessThan 22 23
                              BranchConditional 25 18 19
              18:               Label
              35:     13(int)   Load 15(i)
              37:     36(ptr)   AccessChain 34(parts) 35 16
              38:    6(float)   Load 37
              41:     40(ptr)   AccessChain 9(color) 39
              42:    6(float)   Load 41
              43:    6(float)   FAdd 42 38
              44:     40(ptr)   AccessChain 9(color) 39
                                Store 44 43
              45:     13(int)   Load 15(i)
              47:     36(ptr)   AccessChain 34(parts) 45 46
              48:    6(float)   Load 47
              50:     40(ptr)   AccessChain 9(color) 49
              51:    6(float)   Load 50
              52:    6(float)   FAdd 51 48
              53:     40(ptr)   AccessChain 9(color) 49
                                Store 53 52
              54:     13(int)   Load 15(i)
              55:     36(ptr)   AccessChain 34(parts) 54 23
              56:    6(float)   Load 55
              57:     40(ptr)   AccessChain 9(color) 28
              58:    6(float)   Load 57
              59:    6(float)   FAdd 58 56
              60:     40(ptr)   AccessChain 9(color) 28
                                Store 60 59
                                Branch 20
              20:               Label
              61:     13(int)   Load 15(i)
              62:     13(int)   IAdd 61 46
                                Store 15(i) 62
                                Branch 17
              19:             Label
                              Return
                              FunctionEnd
