spv.bitCast.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 172

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 14 26 37 48 89 98 107 116 122 130 139 148 154
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              Name 4  "main"
                              Name 9  "idata"
                              Name 14  "f1"
                              Name 26  "f2"
                              Name 37  "f3"
                              Name 48  "f4"
                              Name 55  "udata"
                              Name 85  "fdata"
                              Name 89  "i1"
                              Name 98  "i2"
                              Name 107  "i3"
                              Name 116  "i4"
                              Name 122  "u1"
                              Name 130  "u2"
                              Name 139  "u3"
                              Name 148  "u4"
                              Name 154  "fragColor"
                              Decorate 89(i1) Flat
                              Decorate 98(i2) Flat
                              Decorate 107(i3) Flat
                              Decorate 116(i4) Flat
                              Decorate 122(u1) Flat
                              Decorate 130(u2) Flat
                              Decorate 139(u3) Flat
                              Decorate 148(u4) Flat
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypeVector 6(int) 4
               8:             TypePointer Function 7(ivec4)
              10:      6(int) Constant 0
              11:    7(ivec4) ConstantComposite 10 10 10 10
              12:             TypeFloat 32
              13:             TypePointer Input 12(float)
          14(f1):     13(ptr) Variable Input
              17:             TypeInt 32 0
              18:     17(int) Constant 0
              19:             TypePointer Function 6(int)
              24:             TypeVector 12(float) 2
              25:             TypePointer Input 24(fvec2)
          26(f2):     25(ptr) Variable Input
              28:             TypeVector 6(int) 2
              35:             TypeVector 12(float) 3
              36:             TypePointer Input 35(fvec3)
          37(f3):     36(ptr) Variable Input
              39:             TypeVector 6(int) 3
              46:             TypeVector 12(float) 4
              47:             TypePointer Input 46(fvec4)
          48(f4):     47(ptr) Variable Input
              53:             TypeVector 17(int) 4
              54:             TypePointer Function 53(ivec4)
              56:   53(ivec4) ConstantComposite 18 18 18 18
              59:             TypePointer Function 17(int)
              65:             TypeVector 17(int) 2
              73:             TypeVector 17(int) 3
              84:             TypePointer Function 46(fvec4)
              86:   12(float) Constant 0
              87:   46(fvec4) ConstantComposite 86 86 86 86
              88:             TypePointer Input 6(int)
          89(i1):     88(ptr) Variable Input
              92:             TypePointer Function 12(float)
              97:             TypePointer Input 28(ivec2)
          98(i2):     97(ptr) Variable Input
             106:             TypePointer Input 39(ivec3)
         107(i3):    106(ptr) Variable Input
             115:             TypePointer Input 7(ivec4)
         116(i4):    115(ptr) Variable Input
             121:             TypePointer Input 17(int)
         122(u1):    121(ptr) Variable Input
             129:             TypePointer Input 65(ivec2)
         130(u2):    129(ptr) Variable Input
             138:             TypePointer Input 73(ivec3)
         139(u3):    138(ptr) Variable Input
             147:             TypePointer Input 53(ivec4)
         148(u4):    147(ptr) Variable Input
             153:             TypePointer Output 46(fvec4)
  154(fragColor):    153(ptr) Variable Output
             158:             TypeBool
             159:             TypeVector 158(bool) 4
             168:   12(float) Constant 1045220557
             169:   46(fvec4) ConstantComposite 168 168 168 168
         4(main):           2 Function None 3
               5:             Label
        9(idata):      8(ptr) Variable Function
       55(udata):     54(ptr) Variable Function
       85(fdata):     84(ptr) Variable Function
             162:     84(ptr) Variable Function
                              Store 9(idata) 11
              15:   12(float) Load 14(f1)
              16:      6(int) Bitcast 15
              20:     19(ptr) AccessChain 9(idata) 18
              21:      6(int) Load 20
              22:      6(int) IAdd 21 16
              23:     19(ptr) AccessChain 9(idata) 18
                              Store 23 22
              27:   24(fvec2) Load 26(f2)
              29:   28(ivec2) Bitcast 27
              30:    7(ivec4) Load 9(idata)
              31:   28(ivec2) VectorShuffle 30 30 0 1
              32:   28(ivec2) IAdd 31 29
              33:    7(ivec4) Load 9(idata)
              34:    7(ivec4) VectorShuffle 33 32 4 5 2 3
                              Store 9(idata) 34
              38:   35(fvec3) Load 37(f3)
              40:   39(ivec3) Bitcast 38
              41:    7(ivec4) Load 9(idata)
              42:   39(ivec3) VectorShuffle 41 41 0 1 2
              43:   39(ivec3) IAdd 42 40
              44:    7(ivec4) Load 9(idata)
              45:    7(ivec4) VectorShuffle 44 43 4 5 6 3
                              Store 9(idata) 45
              49:   46(fvec4) Load 48(f4)
              50:    7(ivec4) Bitcast 49
              51:    7(ivec4) Load 9(idata)
              52:    7(ivec4) IAdd 51 50
                              Store 9(idata) 52
                              Store 55(udata) 56
              57:   12(float) Load 14(f1)
              58:     17(int) Bitcast 57
              60:     59(ptr) AccessChain 55(udata) 18
              61:     17(int) Load 60
              62:     17(int) IAdd 61 58
              63:     59(ptr) AccessChain 55(udata) 18
                              Store 63 62
              64:   24(fvec2) Load 26(f2)
              66:   65(ivec2) Bitcast 64
              67:   53(ivec4) Load 55(udata)
              68:   65(ivec2) VectorShuffle 67 67 0 1
              69:   65(ivec2) IAdd 68 66
              70:   53(ivec4) Load 55(udata)
              71:   53(ivec4) VectorShuffle 70 69 4 5 2 3
                              Store 55(udata) 71
              72:   35(fvec3) Load 37(f3)
              74:   73(ivec3) Bitcast 72
              75:   53(ivec4) Load 55(udata)
              76:   73(ivec3) VectorShuffle 75 75 0 1 2
              77:   73(ivec3) IAdd 76 74
              78:   53(ivec4) Load 55(udata)
              79:   53(ivec4) VectorShuffle 78 77 4 5 6 3
                              Store 55(udata) 79
              80:   46(fvec4) Load 48(f4)
              81:   53(ivec4) Bitcast 80
              82:   53(ivec4) Load 55(udata)
              83:   53(ivec4) IAdd 82 81
                              Store 55(udata) 83
                              Store 85(fdata) 87
              90:      6(int) Load 89(i1)
              91:   12(float) Bitcast 90
              93:     92(ptr) AccessChain 85(fdata) 18
              94:   12(float) Load 93
              95:   12(float) FAdd 94 91
              96:     92(ptr) AccessChain 85(fdata) 18
                              Store 96 95
              99:   28(ivec2) Load 98(i2)
             100:   24(fvec2) Bitcast 99
             101:   46(fvec4) Load 85(fdata)
             102:   24(fvec2) VectorShuffle 101 101 0 1
             103:   24(fvec2) FAdd 102 100
             104:   46(fvec4) Load 85(fdata)
             105:   46(fvec4) VectorShuffle 104 103 4 5 2 3
                              Store 85(fdata) 105
             108:   39(ivec3) Load 107(i3)
             109:   35(fvec3) Bitcast 108
             110:   46(fvec4) Load 85(fdata)
             111:   35(fvec3) VectorShuffle 110 110 0 1 2
             112:   35(fvec3) FAdd 111 109
             113:   46(fvec4) Load 85(fdata)
             114:   46(fvec4) VectorShuffle 113 112 4 5 6 3
                              Store 85(fdata) 114
             117:    7(ivec4) Load 116(i4)
             118:   46(fvec4) Bitcast 117
             119:   46(fvec4) Load 85(fdata)
             120:   46(fvec4) FAdd 119 118
                              Store 85(fdata) 120
             123:     17(int) Load 122(u1)
             124:   12(float) Bitcast 123
             125:     92(ptr) AccessChain 85(fdata) 18
             126:   12(float) Load 125
             127:   12(float) FAdd 126 124
             128:     92(ptr) AccessChain 85(fdata) 18
                              Store 128 127
             131:   65(ivec2) Load 130(u2)
             132:   24(fvec2) Bitcast 131
             133:   46(fvec4) Load 85(fdata)
             134:   24(fvec2) VectorShuffle 133 133 0 1
             135:   24(fvec2) FAdd 134 132
             136:   46(fvec4) Load 85(fdata)
             137:   46(fvec4) VectorShuffle 136 135 4 5 2 3
                              Store 85(fdata) 137
             140:   73(ivec3) Load 139(u3)
             141:   35(fvec3) Bitcast 140
             142:   46(fvec4) Load 85(fdata)
             143:   35(fvec3) VectorShuffle 142 142 0 1 2
             144:   35(fvec3) FAdd 143 141
             145:   46(fvec4) Load 85(fdata)
             146:   46(fvec4) VectorShuffle 145 144 4 5 6 3
                              Store 85(fdata) 146
             149:   53(ivec4) Load 148(u4)
             150:   46(fvec4) Bitcast 149
             151:   46(fvec4) Load 85(fdata)
             152:   46(fvec4) FAdd 151 150
                              Store 85(fdata) 152
             155:    7(ivec4) Load 9(idata)
             156:   53(ivec4) Bitcast 155
             157:   53(ivec4) Load 55(udata)
             160:  159(bvec4) IEqual 156 157
             161:   158(bool) All 160
                              SelectionMerge 164 None
                              BranchConditional 161 163 166
             163:               Label
             165:   46(fvec4)   Load 85(fdata)
                                Store 162 165
                                Branch 164
             166:               Label
             167:   46(fvec4)   Load 85(fdata)
             170:   46(fvec4)   FAdd 167 169
                                Store 162 170
                                Branch 164
             164:             Label
             171:   46(fvec4) Load 162
                              Store 154(fragColor) 171
                              Return
                              FunctionEnd
