spv.intOps.vert
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 268

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 9 15 21 26 47 67 83 100 121 142 146 156 173 182 247
                              Source ESSL 310
                              Name 4  "main"
                              Name 9  "iout"
                              Name 15  "uout"
                              Name 21  "fout"
                              Name 26  "u2"
                              Name 30  "u2out"
                              Name 31  "ResType"
                              Name 47  "u1"
                              Name 51  "u1out"
                              Name 52  "ResType"
                              Name 67  "u4"
                              Name 71  "u4outHi"
                              Name 72  "u4outLow"
                              Name 73  "ResType"
                              Name 83  "i4"
                              Name 87  "i4outHi"
                              Name 88  "i4outLow"
                              Name 89  "ResType"
                              Name 100  "v3"
                              Name 104  "i3out"
                              Name 105  "ResType"
                              Name 121  "v1"
                              Name 124  "i1out"
                              Name 125  "ResType"
                              Name 142  "v2"
                              Name 146  "i2"
                              Name 156  "i1"
                              Name 173  "u3"
                              Name 182  "i3"
                              Name 247  "v4"
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypeVector 6(int) 4
               8:             TypePointer Output 7(ivec4)
         9(iout):      8(ptr) Variable Output
              10:      6(int) Constant 0
              11:    7(ivec4) ConstantComposite 10 10 10 10
              12:             TypeInt 32 0
              13:             TypeVector 12(int) 4
              14:             TypePointer Output 13(ivec4)
        15(uout):     14(ptr) Variable Output
              16:     12(int) Constant 0
              17:   13(ivec4) ConstantComposite 16 16 16 16
              18:             TypeFloat 32
              19:             TypeVector 18(float) 4
              20:             TypePointer Output 19(fvec4)
        21(fout):     20(ptr) Variable Output
              22:   18(float) Constant 0
              23:   19(fvec4) ConstantComposite 22 22 22 22
              24:             TypeVector 12(int) 2
              25:             TypePointer Input 24(ivec2)
          26(u2):     25(ptr) Variable Input
              29:             TypePointer Function 24(ivec2)
     31(ResType):             TypeStruct 24(ivec2) 24(ivec2)
              46:             TypePointer Input 12(int)
          47(u1):     46(ptr) Variable Input
              50:             TypePointer Function 12(int)
     52(ResType):             TypeStruct 12(int) 12(int)
              56:             TypePointer Output 12(int)
              66:             TypePointer Input 13(ivec4)
          67(u4):     66(ptr) Variable Input
              70:             TypePointer Function 13(ivec4)
     73(ResType):             TypeStruct 13(ivec4) 13(ivec4)
              82:             TypePointer Input 7(ivec4)
          83(i4):     82(ptr) Variable Input
              86:             TypePointer Function 7(ivec4)
     89(ResType):             TypeStruct 7(ivec4) 7(ivec4)
              98:             TypeVector 18(float) 3
              99:             TypePointer Input 98(fvec3)
         100(v3):     99(ptr) Variable Input
             102:             TypeVector 6(int) 3
             103:             TypePointer Function 102(ivec3)
    105(ResType):             TypeStruct 98(fvec3) 102(ivec3)
             120:             TypePointer Input 18(float)
         121(v1):    120(ptr) Variable Input
             123:             TypePointer Function 6(int)
    125(ResType):             TypeStruct 18(float) 6(int)
             129:             TypePointer Output 18(float)
             135:             TypePointer Output 6(int)
             140:             TypeVector 18(float) 2
             141:             TypePointer Input 140(fvec2)
         142(v2):    141(ptr) Variable Input
             144:             TypeVector 6(int) 2
             145:             TypePointer Input 144(ivec2)
         146(i2):    145(ptr) Variable Input
             155:             TypePointer Input 6(int)
         156(i1):    155(ptr) Variable Input
             164:      6(int) Constant 4
             165:      6(int) Constant 5
             171:             TypeVector 12(int) 3
             172:             TypePointer Input 171(ivec3)
         173(u3):    172(ptr) Variable Input
             181:             TypePointer Input 102(ivec3)
         182(i3):    181(ptr) Variable Input
             246:             TypePointer Input 19(fvec4)
         247(v4):    246(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
       30(u2out):     29(ptr) Variable Function
       51(u1out):     50(ptr) Variable Function
     71(u4outHi):     70(ptr) Variable Function
    72(u4outLow):     70(ptr) Variable Function
     87(i4outHi):     86(ptr) Variable Function
    88(i4outLow):     86(ptr) Variable Function
      104(i3out):    103(ptr) Variable Function
      124(i1out):    123(ptr) Variable Function
                              Store 9(iout) 11
                              Store 15(uout) 17
                              Store 21(fout) 23
              27:   24(ivec2) Load 26(u2)
              28:   24(ivec2) Load 26(u2)
              32: 31(ResType) IAddCarry 27 28
              33:   24(ivec2) CompositeExtract 32 1
                              Store 30(u2out) 33
              34:   24(ivec2) CompositeExtract 32 0
              35:   13(ivec4) Load 15(uout)
              36:   24(ivec2) VectorShuffle 35 35 0 1
              37:   24(ivec2) IAdd 36 34
              38:   13(ivec4) Load 15(uout)
              39:   13(ivec4) VectorShuffle 38 37 4 5 2 3
                              Store 15(uout) 39
              40:   24(ivec2) Load 30(u2out)
              41:   13(ivec4) Load 15(uout)
              42:   24(ivec2) VectorShuffle 41 41 0 1
              43:   24(ivec2) IAdd 42 40
              44:   13(ivec4) Load 15(uout)
              45:   13(ivec4) VectorShuffle 44 43 4 5 2 3
                              Store 15(uout) 45
              48:     12(int) Load 47(u1)
              49:     12(int) Load 47(u1)
              53: 52(ResType) ISubBorrow 48 49
              54:     12(int) CompositeExtract 53 1
                              Store 51(u1out) 54
              55:     12(int) CompositeExtract 53 0
              57:     56(ptr) AccessChain 15(uout) 16
              58:     12(int) Load 57
              59:     12(int) IAdd 58 55
              60:     56(ptr) AccessChain 15(uout) 16
                              Store 60 59
              61:     12(int) Load 51(u1out)
              62:     56(ptr) AccessChain 15(uout) 16
              63:     12(int) Load 62
              64:     12(int) IAdd 63 61
              65:     56(ptr) AccessChain 15(uout) 16
                              Store 65 64
              68:   13(ivec4) Load 67(u4)
              69:   13(ivec4) Load 67(u4)
              74: 73(ResType) UMulExtended 68 69
              75:   13(ivec4) CompositeExtract 74 0
                              Store 72(u4outLow) 75
              76:   13(ivec4) CompositeExtract 74 1
                              Store 71(u4outHi) 76
              77:   13(ivec4) Load 71(u4outHi)
              78:   13(ivec4) Load 72(u4outLow)
              79:   13(ivec4) IAdd 77 78
              80:   13(ivec4) Load 15(uout)
              81:   13(ivec4) IAdd 80 79
                              Store 15(uout) 81
              84:    7(ivec4) Load 83(i4)
              85:    7(ivec4) Load 83(i4)
              90: 89(ResType) SMulExtended 84 85
              91:    7(ivec4) CompositeExtract 90 0
                              Store 88(i4outLow) 91
              92:    7(ivec4) CompositeExtract 90 1
                              Store 87(i4outHi) 92
              93:    7(ivec4) Load 88(i4outLow)
              94:    7(ivec4) Load 87(i4outHi)
              95:    7(ivec4) IAdd 93 94
              96:    7(ivec4) Load 9(iout)
              97:    7(ivec4) IAdd 96 95
                              Store 9(iout) 97
             101:   98(fvec3) Load 100(v3)
             106:105(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 101
             107:  102(ivec3) CompositeExtract 106 1
                              Store 104(i3out) 107
             108:   98(fvec3) CompositeExtract 106 0
             109:   19(fvec4) Load 21(fout)
             110:   98(fvec3) VectorShuffle 109 109 0 1 2
             111:   98(fvec3) FAdd 110 108
             112:   19(fvec4) Load 21(fout)
             113:   19(fvec4) VectorShuffle 112 111 4 5 6 3
                              Store 21(fout) 113
             114:  102(ivec3) Load 104(i3out)
             115:    7(ivec4) Load 9(iout)
             116:  102(ivec3) VectorShuffle 115 115 0 1 2
             117:  102(ivec3) IAdd 116 114
             118:    7(ivec4) Load 9(iout)
             119:    7(ivec4) VectorShuffle 118 117 4 5 6 3
                              Store 9(iout) 119
             122:   18(float) Load 121(v1)
             126:125(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 122
             127:      6(int) CompositeExtract 126 1
                              Store 124(i1out) 127
             128:   18(float) CompositeExtract 126 0
             130:    129(ptr) AccessChain 21(fout) 16
             131:   18(float) Load 130
             132:   18(float) FAdd 131 128
             133:    129(ptr) AccessChain 21(fout) 16
                              Store 133 132
             134:      6(int) Load 124(i1out)
             136:    135(ptr) AccessChain 9(iout) 16
             137:      6(int) Load 136
             138:      6(int) IAdd 137 134
             139:    135(ptr) AccessChain 9(iout) 16
                              Store 139 138
             143:  140(fvec2) Load 142(v2)
             147:  144(ivec2) Load 146(i2)
             148:  140(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 143 147
             149:   19(fvec4) Load 21(fout)
             150:  140(fvec2) VectorShuffle 149 149 0 1
             151:  140(fvec2) FAdd 150 148
             152:   19(fvec4) Load 21(fout)
             153:   19(fvec4) VectorShuffle 152 151 4 5 2 3
                              Store 21(fout) 153
             154:   18(float) Load 121(v1)
             157:      6(int) Load 156(i1)
             158:   18(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 154 157
             159:    129(ptr) AccessChain 21(fout) 16
             160:   18(float) Load 159
             161:   18(float) FAdd 160 158
             162:    129(ptr) AccessChain 21(fout) 16
                              Store 162 161
             163:      6(int) Load 156(i1)
             166:      6(int) BitFieldSExtract 163 164 165
             167:    135(ptr) AccessChain 9(iout) 16
             168:      6(int) Load 167
             169:      6(int) IAdd 168 166
             170:    135(ptr) AccessChain 9(iout) 16
                              Store 170 169
             174:  171(ivec3) Load 173(u3)
             175:  171(ivec3) BitFieldUExtract 174 164 165
             176:   13(ivec4) Load 15(uout)
             177:  171(ivec3) VectorShuffle 176 176 0 1 2
             178:  171(ivec3) IAdd 177 175
             179:   13(ivec4) Load 15(uout)
             180:   13(ivec4) VectorShuffle 179 178 4 5 6 3
                              Store 15(uout) 180
             183:  102(ivec3) Load 182(i3)
             184:  102(ivec3) Load 182(i3)
             185:  102(ivec3) BitFieldInsert 183 184 164 165
             186:    7(ivec4) Load 9(iout)
             187:  102(ivec3) VectorShuffle 186 186 0 1 2
             188:  102(ivec3) IAdd 187 185
             189:    7(ivec4) Load 9(iout)
             190:    7(ivec4) VectorShuffle 189 188 4 5 6 3
                              Store 9(iout) 190
             191:     12(int) Load 47(u1)
             192:     12(int) Load 47(u1)
             193:     12(int) BitFieldInsert 191 192 164 165
             194:     56(ptr) AccessChain 15(uout) 16
             195:     12(int) Load 194
             196:     12(int) IAdd 195 193
             197:     56(ptr) AccessChain 15(uout) 16
                              Store 197 196
             198:  144(ivec2) Load 146(i2)
             199:  144(ivec2) BitReverse 198
             200:    7(ivec4) Load 9(iout)
             201:  144(ivec2) VectorShuffle 200 200 0 1
             202:  144(ivec2) IAdd 201 199
             203:    7(ivec4) Load 9(iout)
             204:    7(ivec4) VectorShuffle 203 202 4 5 2 3
                              Store 9(iout) 204
             205:   13(ivec4) Load 67(u4)
             206:   13(ivec4) BitReverse 205
             207:   13(ivec4) Load 15(uout)
             208:   13(ivec4) IAdd 207 206
                              Store 15(uout) 208
             209:      6(int) Load 156(i1)
             210:      6(int) BitCount 209
             211:    135(ptr) AccessChain 9(iout) 16
             212:      6(int) Load 211
             213:      6(int) IAdd 212 210
             214:    135(ptr) AccessChain 9(iout) 16
                              Store 214 213
             215:  171(ivec3) Load 173(u3)
             216:  102(ivec3) BitCount 215
             217:    7(ivec4) Load 9(iout)
             218:  102(ivec3) VectorShuffle 217 217 0 1 2
             219:  102(ivec3) IAdd 218 216
             220:    7(ivec4) Load 9(iout)
             221:    7(ivec4) VectorShuffle 220 219 4 5 6 3
                              Store 9(iout) 221
             222:  144(ivec2) Load 146(i2)
             223:  144(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 222
             224:    7(ivec4) Load 9(iout)
             225:  144(ivec2) VectorShuffle 224 224 0 1
             226:  144(ivec2) IAdd 225 223
             227:    7(ivec4) Load 9(iout)
             228:    7(ivec4) VectorShuffle 227 226 4 5 2 3
                              Store 9(iout) 228
             229:   13(ivec4) Load 67(u4)
             230:    7(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 229
             231:    7(ivec4) Load 9(iout)
             232:    7(ivec4) IAdd 231 230
                              Store 9(iout) 232
             233:      6(int) Load 156(i1)
             234:      6(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 233
             235:    135(ptr) AccessChain 9(iout) 16
             236:      6(int) Load 235
             237:      6(int) IAdd 236 234
             238:    135(ptr) AccessChain 9(iout) 16
                              Store 238 237
             239:   24(ivec2) Load 26(u2)
             240:  144(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 239
             241:    7(ivec4) Load 9(iout)
             242:  144(ivec2) VectorShuffle 241 241 0 1
             243:  144(ivec2) IAdd 242 240
             244:    7(ivec4) Load 9(iout)
             245:    7(ivec4) VectorShuffle 244 243 4 5 2 3
                              Store 9(iout) 245
             248:   19(fvec4) Load 247(v4)
             249:     12(int) ExtInst 1(GLSL.std.450) 55(PackUnorm4x8) 248
             250:     56(ptr) AccessChain 15(uout) 16
             251:     12(int) Load 250
             252:     12(int) IAdd 251 249
             253:     56(ptr) AccessChain 15(uout) 16
                              Store 253 252
             254:   19(fvec4) Load 247(v4)
             255:     12(int) ExtInst 1(GLSL.std.450) 54(PackSnorm4x8) 254
             256:     56(ptr) AccessChain 15(uout) 16
             257:     12(int) Load 256
             258:     12(int) IAdd 257 255
             259:     56(ptr) AccessChain 15(uout) 16
                              Store 259 258
             260:     12(int) Load 47(u1)
             261:   19(fvec4) ExtInst 1(GLSL.std.450) 64(UnpackUnorm4x8) 260
             262:   19(fvec4) Load 21(fout)
             263:   19(fvec4) FAdd 262 261
                              Store 21(fout) 263
             264:     12(int) Load 47(u1)
             265:   19(fvec4) ExtInst 1(GLSL.std.450) 63(UnpackSnorm4x8) 264
             266:   19(fvec4) Load 21(fout)
             267:   19(fvec4) FAdd 266 265
                              Store 21(fout) 267
                              Return
                              FunctionEnd
