spv.uniformInitializerStruct.frag
// Module Version 10000
// Generated by (magic number): 8000a
// 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
                              Decorate 34(parts) DescriptorSet 0
                              Decorate 34(parts) Binding 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
