spv.swizzle.frag
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 108

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 14 30 69 107
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 140
                              Name 4  "main"
                              Name 8  "blendscale"
                              Name 12  "w"
                              Name 14  "u"
                              Name 16  "w_dep"
                              Name 18  "w_reorder"
                              Name 20  "w2"
                              Name 22  "w_flow"
                              Name 30  "t"
                              Name 49  "w_undef"
                              Name 56  "p"
                              Name 69  "gl_FragColor"
                              Name 81  "c"
                              Name 83  "rep"
                              Name 107  "blend"
                              Decorate 69(gl_FragColor) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               9:    6(float) Constant 1071971828
              10:             TypeVector 6(float) 4
              11:             TypePointer Function 10(fvec4)
              13:             TypePointer Input 10(fvec4)
           14(u):     13(ptr) Variable Input
              25:             TypeInt 32 0
              26:     25(int) Constant 2
              28:             TypeVector 6(float) 2
              29:             TypePointer Input 28(fvec2)
           30(t):     29(ptr) Variable Input
              35:     25(int) Constant 0
              40:     25(int) Constant 1
              54:             TypeBool
              55:             TypePointer Private 54(bool)
           56(p):     55(ptr) Variable Private
              60:             TypePointer Input 6(float)
              68:             TypePointer Output 10(fvec4)
69(gl_FragColor):     68(ptr) Variable Output
              80:             TypePointer Function 28(fvec2)
              84:    6(float) Constant 0
              85:    6(float) Constant 1065353216
              86:   10(fvec4) ConstantComposite 84 84 84 85
              92:    6(float) Constant 3212836864
             102:    6(float) Constant 1079613850
      107(blend):     60(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
   8(blendscale):      7(ptr) Variable Function
           12(w):     11(ptr) Variable Function
       16(w_dep):     11(ptr) Variable Function
   18(w_reorder):     11(ptr) Variable Function
          20(w2):     11(ptr) Variable Function
      22(w_flow):     11(ptr) Variable Function
     49(w_undef):     11(ptr) Variable Function
           81(c):     80(ptr) Variable Function
         83(rep):     11(ptr) Variable Function
                              Store 8(blendscale) 9
              15:   10(fvec4) Load 14(u)
                              Store 12(w) 15
              17:   10(fvec4) Load 14(u)
                              Store 16(w_dep) 17
              19:   10(fvec4) Load 14(u)
                              Store 18(w_reorder) 19
              21:   10(fvec4) Load 14(u)
                              Store 20(w2) 21
              23:   10(fvec4) Load 14(u)
                              Store 22(w_flow) 23
              24:    6(float) Load 8(blendscale)
              27:      7(ptr) AccessChain 18(w_reorder) 26
                              Store 27 24
              31:   28(fvec2) Load 30(t)
              32:   10(fvec4) Load 12(w)
              33:   10(fvec4) VectorShuffle 32 31 0 5 2 4
                              Store 12(w) 33
              34:    6(float) Load 8(blendscale)
              36:      7(ptr) AccessChain 18(w_reorder) 35
                              Store 36 34
              37:   10(fvec4) Load 14(u)
              38:   10(fvec4) VectorShuffle 37 37 2 3 0 1
                              Store 20(w2) 38
              39:    6(float) Load 8(blendscale)
              41:      7(ptr) AccessChain 18(w_reorder) 40
                              Store 41 39
              42:   10(fvec4) Load 20(w2)
              43:   28(fvec2) VectorShuffle 42 42 0 2
              44:   10(fvec4) Load 16(w_dep)
              45:   10(fvec4) VectorShuffle 44 43 4 5 2 3
                              Store 16(w_dep) 45
              46:   28(fvec2) Load 30(t)
              47:   10(fvec4) Load 16(w_dep)
              48:   10(fvec4) VectorShuffle 47 46 0 1 4 5
                              Store 16(w_dep) 48
              50:   10(fvec4) Load 14(u)
              51:   28(fvec2) VectorShuffle 50 50 2 3
              52:   10(fvec4) Load 49(w_undef)
              53:   10(fvec4) VectorShuffle 52 51 4 5 2 3
                              Store 49(w_undef) 53
              57:    54(bool) Load 56(p)
                              SelectionMerge 59 None
                              BranchConditional 57 58 64
              58:               Label
              61:     60(ptr)   AccessChain 30(t) 35
              62:    6(float)   Load 61
              63:      7(ptr)   AccessChain 22(w_flow) 35
                                Store 63 62
                                Branch 59
              64:               Label
              65:     60(ptr)   AccessChain 30(t) 40
              66:    6(float)   Load 65
              67:      7(ptr)   AccessChain 22(w_flow) 35
                                Store 67 66
                                Branch 59
              59:             Label
              70:   10(fvec4) Load 18(w_reorder)
              71:   10(fvec4) Load 49(w_undef)
              72:   10(fvec4) Load 12(w)
              73:   10(fvec4) Load 20(w2)
              74:   10(fvec4) FMul 72 73
              75:   10(fvec4) Load 16(w_dep)
              76:   10(fvec4) FMul 74 75
              77:   10(fvec4) Load 22(w_flow)
              78:   10(fvec4) FMul 76 77
              79:   10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 70 71 78
                              Store 69(gl_FragColor) 79
              82:   28(fvec2) Load 30(t)
                              Store 81(c) 82
                              Store 83(rep) 86
              87:      7(ptr) AccessChain 81(c) 35
              88:    6(float) Load 87
              89:    54(bool) FOrdLessThan 88 84
                              SelectionMerge 91 None
                              BranchConditional 89 90 91
              90:               Label
              93:      7(ptr)   AccessChain 81(c) 35
              94:    6(float)   Load 93
              95:    6(float)   FMul 94 92
              96:      7(ptr)   AccessChain 81(c) 35
                                Store 96 95
                                Branch 91
              91:             Label
              97:      7(ptr) AccessChain 81(c) 35
              98:    6(float) Load 97
              99:    54(bool) FOrdLessThanEqual 98 85
                              SelectionMerge 101 None
                              BranchConditional 99 100 101
             100:               Label
             103:      7(ptr)   AccessChain 83(rep) 35
                                Store 103 102
                                Branch 101
             101:             Label
             104:   10(fvec4) Load 83(rep)
             105:   10(fvec4) Load 69(gl_FragColor)
             106:   10(fvec4) FAdd 105 104
                              Store 69(gl_FragColor) 106
                              Return
                              FunctionEnd
