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

                              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
                              ExecutionMode 4 OriginUpperLeft
                              Source ESSL 310
                              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"
                              Decorate 14(f1) RelaxedPrecision
                              Decorate 15 RelaxedPrecision
                              Decorate 26(f2) RelaxedPrecision
                              Decorate 27 RelaxedPrecision
                              Decorate 37(f3) RelaxedPrecision
                              Decorate 38 RelaxedPrecision
                              Decorate 57 RelaxedPrecision
                              Decorate 64 RelaxedPrecision
                              Decorate 72 RelaxedPrecision
                              Decorate 89(i1) RelaxedPrecision
                              Decorate 89(i1) Flat
                              Decorate 90 RelaxedPrecision
                              Decorate 98(i2) RelaxedPrecision
                              Decorate 98(i2) Flat
                              Decorate 99 RelaxedPrecision
                              Decorate 107(i3) RelaxedPrecision
                              Decorate 107(i3) Flat
                              Decorate 108 RelaxedPrecision
                              Decorate 116(i4) Flat
                              Decorate 122(u1) RelaxedPrecision
                              Decorate 122(u1) Flat
                              Decorate 123 RelaxedPrecision
                              Decorate 130(u2) RelaxedPrecision
                              Decorate 130(u2) Flat
                              Decorate 131 RelaxedPrecision
                              Decorate 139(u3) RelaxedPrecision
                              Decorate 139(u3) Flat
                              Decorate 140 RelaxedPrecision
                              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
         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
                              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
                              Return
                              FunctionEnd
