spv.subgroupShuffle.comp
// Module Version 10300
// Generated by (magic number): 80007
// Id's are bound by 379

                              Capability Shader
                              Capability Float64
                              Capability GroupNonUniform
                              Capability GroupNonUniformShuffle
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main" 10 12
                              ExecutionMode 4 LocalSize 8 8 1
                              Source GLSL 450
                              SourceExtension  "GL_KHR_shader_subgroup_basic"
                              SourceExtension  "GL_KHR_shader_subgroup_shuffle"
                              Name 4  "main"
                              Name 8  "invocation"
                              Name 10  "gl_SubgroupInvocationID"
                              Name 12  "gl_SubgroupSize"
                              Name 24  "Buffers"
                              MemberName 24(Buffers) 0  "f4"
                              MemberName 24(Buffers) 1  "i4"
                              MemberName 24(Buffers) 2  "u4"
                              MemberName 24(Buffers) 3  "d4"
                              Name 27  "data"
                              Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
                              Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
                              Decorate 11 RelaxedPrecision
                              Decorate 12(gl_SubgroupSize) RelaxedPrecision
                              Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
                              Decorate 13 RelaxedPrecision
                              Decorate 14 RelaxedPrecision
                              Decorate 16 RelaxedPrecision
                              MemberDecorate 24(Buffers) 0 Offset 0
                              MemberDecorate 24(Buffers) 1 Offset 16
                              MemberDecorate 24(Buffers) 2 Offset 32
                              MemberDecorate 24(Buffers) 3 Offset 64
                              Decorate 24(Buffers) Block
                              Decorate 27(data) DescriptorSet 0
                              Decorate 27(data) Binding 0
                              Decorate 378 BuiltIn WorkgroupSize
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypePointer Function 6(int)
               9:             TypePointer Input 6(int)
10(gl_SubgroupInvocationID):      9(ptr) Variable Input
12(gl_SubgroupSize):      9(ptr) Variable Input
              15:      6(int) Constant 4
              17:             TypeFloat 32
              18:             TypeVector 17(float) 4
              19:             TypeInt 32 1
              20:             TypeVector 19(int) 4
              21:             TypeVector 6(int) 4
              22:             TypeFloat 64
              23:             TypeVector 22(float64_t) 4
     24(Buffers):             TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4)
              25:             TypeArray 24(Buffers) 15
              26:             TypePointer StorageBuffer 25
        27(data):     26(ptr) Variable StorageBuffer
              29:     19(int) Constant 0
              30:      6(int) Constant 0
              31:             TypePointer StorageBuffer 17(float)
              35:      6(int) Constant 3
              39:     19(int) Constant 1
              40:             TypeVector 17(float) 2
              41:             TypePointer StorageBuffer 18(fvec4)
              51:     19(int) Constant 2
              52:             TypeVector 17(float) 3
              62:     19(int) Constant 3
              69:             TypePointer StorageBuffer 19(int)
              76:             TypeVector 19(int) 2
              77:             TypePointer StorageBuffer 20(ivec4)
              87:             TypeVector 19(int) 3
             103:             TypePointer StorageBuffer 6(int)
             110:             TypeVector 6(int) 2
             111:             TypePointer StorageBuffer 21(ivec4)
             121:             TypeVector 6(int) 3
             137:             TypePointer StorageBuffer 22(float64_t)
             144:             TypeVector 22(float64_t) 2
             145:             TypePointer StorageBuffer 23(f64vec4)
             155:             TypeVector 22(float64_t) 3
             173:             TypeBool
             183:   76(ivec2) ConstantComposite 29 29
             184:             TypeVector 173(bool) 2
             188:   76(ivec2) ConstantComposite 39 39
             197:   87(ivec3) ConstantComposite 29 29 29
             198:             TypeVector 173(bool) 3
             202:   87(ivec3) ConstantComposite 39 39 39
             210:   20(ivec4) ConstantComposite 29 29 29 29
             211:             TypeVector 173(bool) 4
             215:   20(ivec4) ConstantComposite 39 39 39 39
             376:      6(int) Constant 8
             377:      6(int) Constant 1
             378:  121(ivec3) ConstantComposite 376 376 377
         4(main):           2 Function None 3
               5:             Label
   8(invocation):      7(ptr) Variable Function
              11:      6(int) Load 10(gl_SubgroupInvocationID)
              13:      6(int) Load 12(gl_SubgroupSize)
              14:      6(int) IAdd 11 13
              16:      6(int) UMod 14 15
                              Store 8(invocation) 16
              28:      6(int) Load 8(invocation)
              32:     31(ptr) AccessChain 27(data) 29 29 30
              33:   17(float) Load 32
              34:      6(int) Load 8(invocation)
              36:   17(float) GroupNonUniformShuffle 35 33 34
              37:     31(ptr) AccessChain 27(data) 28 29 30
                              Store 37 36
              38:      6(int) Load 8(invocation)
              42:     41(ptr) AccessChain 27(data) 39 29
              43:   18(fvec4) Load 42
              44:   40(fvec2) VectorShuffle 43 43 0 1
              45:      6(int) Load 8(invocation)
              46:   40(fvec2) GroupNonUniformShuffle 35 44 45
              47:     41(ptr) AccessChain 27(data) 38 29
              48:   18(fvec4) Load 47
              49:   18(fvec4) VectorShuffle 48 46 4 5 2 3
                              Store 47 49
              50:      6(int) Load 8(invocation)
              53:     41(ptr) AccessChain 27(data) 51 29
              54:   18(fvec4) Load 53
              55:   52(fvec3) VectorShuffle 54 54 0 1 2
              56:      6(int) Load 8(invocation)
              57:   52(fvec3) GroupNonUniformShuffle 35 55 56
              58:     41(ptr) AccessChain 27(data) 50 29
              59:   18(fvec4) Load 58
              60:   18(fvec4) VectorShuffle 59 57 4 5 6 3
                              Store 58 60
              61:      6(int) Load 8(invocation)
              63:     41(ptr) AccessChain 27(data) 62 29
              64:   18(fvec4) Load 63
              65:      6(int) Load 8(invocation)
              66:   18(fvec4) GroupNonUniformShuffle 35 64 65
              67:     41(ptr) AccessChain 27(data) 61 29
                              Store 67 66
              68:      6(int) Load 8(invocation)
              70:     69(ptr) AccessChain 27(data) 29 39 30
              71:     19(int) Load 70
              72:      6(int) Load 8(invocation)
              73:     19(int) GroupNonUniformShuffle 35 71 72
              74:     69(ptr) AccessChain 27(data) 68 39 30
                              Store 74 73
              75:      6(int) Load 8(invocation)
              78:     77(ptr) AccessChain 27(data) 39 39
              79:   20(ivec4) Load 78
              80:   76(ivec2) VectorShuffle 79 79 0 1
              81:      6(int) Load 8(invocation)
              82:   76(ivec2) GroupNonUniformShuffle 35 80 81
              83:     77(ptr) AccessChain 27(data) 75 39
              84:   20(ivec4) Load 83
              85:   20(ivec4) VectorShuffle 84 82 4 5 2 3
                              Store 83 85
              86:      6(int) Load 8(invocation)
              88:     77(ptr) AccessChain 27(data) 51 39
              89:   20(ivec4) Load 88
              90:   87(ivec3) VectorShuffle 89 89 0 1 2
              91:      6(int) Load 8(invocation)
              92:   87(ivec3) GroupNonUniformShuffle 35 90 91
              93:     77(ptr) AccessChain 27(data) 86 39
              94:   20(ivec4) Load 93
              95:   20(ivec4) VectorShuffle 94 92 4 5 6 3
                              Store 93 95
              96:      6(int) Load 8(invocation)
              97:     77(ptr) AccessChain 27(data) 62 39
              98:   20(ivec4) Load 97
              99:      6(int) Load 8(invocation)
             100:   20(ivec4) GroupNonUniformShuffle 35 98 99
             101:     77(ptr) AccessChain 27(data) 96 39
                              Store 101 100
             102:      6(int) Load 8(invocation)
             104:    103(ptr) AccessChain 27(data) 29 51 30
             105:      6(int) Load 104
             106:      6(int) Load 8(invocation)
             107:      6(int) GroupNonUniformShuffle 35 105 106
             108:    103(ptr) AccessChain 27(data) 102 51 30
                              Store 108 107
             109:      6(int) Load 8(invocation)
             112:    111(ptr) AccessChain 27(data) 39 51
             113:   21(ivec4) Load 112
             114:  110(ivec2) VectorShuffle 113 113 0 1
             115:      6(int) Load 8(invocation)
             116:  110(ivec2) GroupNonUniformShuffle 35 114 115
             117:    111(ptr) AccessChain 27(data) 109 51
             118:   21(ivec4) Load 117
             119:   21(ivec4) VectorShuffle 118 116 4 5 2 3
                              Store 117 119
             120:      6(int) Load 8(invocation)
             122:    111(ptr) AccessChain 27(data) 51 51
             123:   21(ivec4) Load 122
             124:  121(ivec3) VectorShuffle 123 123 0 1 2
             125:      6(int) Load 8(invocation)
             126:  121(ivec3) GroupNonUniformShuffle 35 124 125
             127:    111(ptr) AccessChain 27(data) 120 51
             128:   21(ivec4) Load 127
             129:   21(ivec4) VectorShuffle 128 126 4 5 6 3
                              Store 127 129
             130:      6(int) Load 8(invocation)
             131:    111(ptr) AccessChain 27(data) 62 51
             132:   21(ivec4) Load 131
             133:      6(int) Load 8(invocation)
             134:   21(ivec4) GroupNonUniformShuffle 35 132 133
             135:    111(ptr) AccessChain 27(data) 130 51
                              Store 135 134
             136:      6(int) Load 8(invocation)
             138:    137(ptr) AccessChain 27(data) 29 62 30
             139:22(float64_t) Load 138
             140:      6(int) Load 8(invocation)
             141:22(float64_t) GroupNonUniformShuffle 35 139 140
             142:    137(ptr) AccessChain 27(data) 136 62 30
                              Store 142 141
             143:      6(int) Load 8(invocation)
             146:    145(ptr) AccessChain 27(data) 39 62
             147: 23(f64vec4) Load 146
             148:144(f64vec2) VectorShuffle 147 147 0 1
             149:      6(int) Load 8(invocation)
             150:144(f64vec2) GroupNonUniformShuffle 35 148 149
             151:    145(ptr) AccessChain 27(data) 143 62
             152: 23(f64vec4) Load 151
             153: 23(f64vec4) VectorShuffle 152 150 4 5 2 3
                              Store 151 153
             154:      6(int) Load 8(invocation)
             156:    145(ptr) AccessChain 27(data) 51 62
             157: 23(f64vec4) Load 156
             158:155(f64vec3) VectorShuffle 157 157 0 1 2
             159:      6(int) Load 8(invocation)
             160:155(f64vec3) GroupNonUniformShuffle 35 158 159
             161:    145(ptr) AccessChain 27(data) 154 62
             162: 23(f64vec4) Load 161
             163: 23(f64vec4) VectorShuffle 162 160 4 5 6 3
                              Store 161 163
             164:      6(int) Load 8(invocation)
             165:    145(ptr) AccessChain 27(data) 62 62
             166: 23(f64vec4) Load 165
             167:      6(int) Load 8(invocation)
             168: 23(f64vec4) GroupNonUniformShuffle 35 166 167
             169:    145(ptr) AccessChain 27(data) 164 62
                              Store 169 168
             170:      6(int) Load 8(invocation)
             171:     69(ptr) AccessChain 27(data) 29 39 30
             172:     19(int) Load 171
             174:   173(bool) SLessThan 172 29
             175:      6(int) Load 8(invocation)
             176:   173(bool) GroupNonUniformShuffle 35 174 175
             177:     19(int) Select 176 39 29
             178:     69(ptr) AccessChain 27(data) 170 39 30
                              Store 178 177
             179:      6(int) Load 8(invocation)
             180:     77(ptr) AccessChain 27(data) 39 39
             181:   20(ivec4) Load 180
             182:   76(ivec2) VectorShuffle 181 181 0 1
             185:  184(bvec2) SLessThan 182 183
             186:      6(int) Load 8(invocation)
             187:  184(bvec2) GroupNonUniformShuffle 35 185 186
             189:   76(ivec2) Select 187 188 183
             190:     77(ptr) AccessChain 27(data) 179 39
             191:   20(ivec4) Load 190
             192:   20(ivec4) VectorShuffle 191 189 4 5 2 3
                              Store 190 192
             193:      6(int) Load 8(invocation)
             194:     77(ptr) AccessChain 27(data) 39 39
             195:   20(ivec4) Load 194
             196:   87(ivec3) VectorShuffle 195 195 0 1 2
             199:  198(bvec3) SLessThan 196 197
             200:      6(int) Load 8(invocation)
             201:  198(bvec3) GroupNonUniformShuffle 35 199 200
             203:   87(ivec3) Select 201 202 197
             204:     77(ptr) AccessChain 27(data) 193 39
             205:   20(ivec4) Load 204
             206:   20(ivec4) VectorShuffle 205 203 4 5 6 3
                              Store 204 206
             207:      6(int) Load 8(invocation)
             208:     77(ptr) AccessChain 27(data) 39 39
             209:   20(ivec4) Load 208
             212:  211(bvec4) SLessThan 209 210
             213:      6(int) Load 8(invocation)
             214:  211(bvec4) GroupNonUniformShuffle 35 212 213
             216:   20(ivec4) Select 214 215 210
             217:     77(ptr) AccessChain 27(data) 207 39
                              Store 217 216
             218:      6(int) Load 8(invocation)
             219:     31(ptr) AccessChain 27(data) 29 29 30
             220:   17(float) Load 219
             221:      6(int) Load 8(invocation)
             222:   17(float) GroupNonUniformShuffleXor 35 220 221
             223:     31(ptr) AccessChain 27(data) 218 29 30
                              Store 223 222
             224:      6(int) Load 8(invocation)
             225:     41(ptr) AccessChain 27(data) 39 29
             226:   18(fvec4) Load 225
             227:   40(fvec2) VectorShuffle 226 226 0 1
             228:      6(int) Load 8(invocation)
             229:   40(fvec2) GroupNonUniformShuffleXor 35 227 228
             230:     41(ptr) AccessChain 27(data) 224 29
             231:   18(fvec4) Load 230
             232:   18(fvec4) VectorShuffle 231 229 4 5 2 3
                              Store 230 232
             233:      6(int) Load 8(invocation)
             234:     41(ptr) AccessChain 27(data) 51 29
             235:   18(fvec4) Load 234
             236:   52(fvec3) VectorShuffle 235 235 0 1 2
             237:      6(int) Load 8(invocation)
             238:   52(fvec3) GroupNonUniformShuffleXor 35 236 237
             239:     41(ptr) AccessChain 27(data) 233 29
             240:   18(fvec4) Load 239
             241:   18(fvec4) VectorShuffle 240 238 4 5 6 3
                              Store 239 241
             242:      6(int) Load 8(invocation)
             243:     41(ptr) AccessChain 27(data) 62 29
             244:   18(fvec4) Load 243
             245:      6(int) Load 8(invocation)
             246:   18(fvec4) GroupNonUniformShuffleXor 35 244 245
             247:     41(ptr) AccessChain 27(data) 242 29
                              Store 247 246
             248:      6(int) Load 8(invocation)
             249:     69(ptr) AccessChain 27(data) 29 39 30
             250:     19(int) Load 249
             251:      6(int) Load 8(invocation)
             252:     19(int) GroupNonUniformShuffleXor 35 250 251
             253:     69(ptr) AccessChain 27(data) 248 39 30
                              Store 253 252
             254:      6(int) Load 8(invocation)
             255:     77(ptr) AccessChain 27(data) 39 39
             256:   20(ivec4) Load 255
             257:   76(ivec2) VectorShuffle 256 256 0 1
             258:      6(int) Load 8(invocation)
             259:   76(ivec2) GroupNonUniformShuffleXor 35 257 258
             260:     77(ptr) AccessChain 27(data) 254 39
             261:   20(ivec4) Load 260
             262:   20(ivec4) VectorShuffle 261 259 4 5 2 3
                              Store 260 262
             263:      6(int) Load 8(invocation)
             264:     77(ptr) AccessChain 27(data) 51 39
             265:   20(ivec4) Load 264
             266:   87(ivec3) VectorShuffle 265 265 0 1 2
             267:      6(int) Load 8(invocation)
             268:   87(ivec3) GroupNonUniformShuffleXor 35 266 267
             269:     77(ptr) AccessChain 27(data) 263 39
             270:   20(ivec4) Load 269
             271:   20(ivec4) VectorShuffle 270 268 4 5 6 3
                              Store 269 271
             272:      6(int) Load 8(invocation)
             273:     77(ptr) AccessChain 27(data) 62 39
             274:   20(ivec4) Load 273
             275:      6(int) Load 8(invocation)
             276:   20(ivec4) GroupNonUniformShuffleXor 35 274 275
             277:     77(ptr) AccessChain 27(data) 272 39
                              Store 277 276
             278:      6(int) Load 8(invocation)
             279:    103(ptr) AccessChain 27(data) 29 51 30
             280:      6(int) Load 279
             281:      6(int) Load 8(invocation)
             282:      6(int) GroupNonUniformShuffleXor 35 280 281
             283:    103(ptr) AccessChain 27(data) 278 51 30
                              Store 283 282
             284:      6(int) Load 8(invocation)
             285:    111(ptr) AccessChain 27(data) 39 51
             286:   21(ivec4) Load 285
             287:  110(ivec2) VectorShuffle 286 286 0 1
             288:      6(int) Load 8(invocation)
             289:  110(ivec2) GroupNonUniformShuffleXor 35 287 288
             290:    111(ptr) AccessChain 27(data) 284 51
             291:   21(ivec4) Load 290
             292:   21(ivec4) VectorShuffle 291 289 4 5 2 3
                              Store 290 292
             293:      6(int) Load 8(invocation)
             294:    111(ptr) AccessChain 27(data) 51 51
             295:   21(ivec4) Load 294
             296:  121(ivec3) VectorShuffle 295 295 0 1 2
             297:      6(int) Load 8(invocation)
             298:  121(ivec3) GroupNonUniformShuffleXor 35 296 297
             299:    111(ptr) AccessChain 27(data) 293 51
             300:   21(ivec4) Load 299
             301:   21(ivec4) VectorShuffle 300 298 4 5 6 3
                              Store 299 301
             302:      6(int) Load 8(invocation)
             303:    111(ptr) AccessChain 27(data) 62 51
             304:   21(ivec4) Load 303
             305:      6(int) Load 8(invocation)
             306:   21(ivec4) GroupNonUniformShuffleXor 35 304 305
             307:    111(ptr) AccessChain 27(data) 302 51
                              Store 307 306
             308:      6(int) Load 8(invocation)
             309:    137(ptr) AccessChain 27(data) 29 62 30
             310:22(float64_t) Load 309
             311:      6(int) Load 8(invocation)
             312:22(float64_t) GroupNonUniformShuffleXor 35 310 311
             313:    137(ptr) AccessChain 27(data) 308 62 30
                              Store 313 312
             314:      6(int) Load 8(invocation)
             315:    145(ptr) AccessChain 27(data) 39 62
             316: 23(f64vec4) Load 315
             317:144(f64vec2) VectorShuffle 316 316 0 1
             318:      6(int) Load 8(invocation)
             319:144(f64vec2) GroupNonUniformShuffleXor 35 317 318
             320:    145(ptr) AccessChain 27(data) 314 62
             321: 23(f64vec4) Load 320
             322: 23(f64vec4) VectorShuffle 321 319 4 5 2 3
                              Store 320 322
             323:      6(int) Load 8(invocation)
             324:    145(ptr) AccessChain 27(data) 51 62
             325: 23(f64vec4) Load 324
             326:155(f64vec3) VectorShuffle 325 325 0 1 2
             327:      6(int) Load 8(invocation)
             328:155(f64vec3) GroupNonUniformShuffleXor 35 326 327
             329:    145(ptr) AccessChain 27(data) 323 62
             330: 23(f64vec4) Load 329
             331: 23(f64vec4) VectorShuffle 330 328 4 5 6 3
                              Store 329 331
             332:      6(int) Load 8(invocation)
             333:    145(ptr) AccessChain 27(data) 62 62
             334: 23(f64vec4) Load 333
             335:      6(int) Load 8(invocation)
             336: 23(f64vec4) GroupNonUniformShuffleXor 35 334 335
             337:    145(ptr) AccessChain 27(data) 332 62
                              Store 337 336
             338:      6(int) Load 8(invocation)
             339:     69(ptr) AccessChain 27(data) 29 39 30
             340:     19(int) Load 339
             341:   173(bool) SLessThan 340 29
             342:      6(int) Load 8(invocation)
             343:   173(bool) GroupNonUniformShuffleXor 35 341 342
             344:     19(int) Select 343 39 29
             345:     69(ptr) AccessChain 27(data) 338 39 30
                              Store 345 344
             346:      6(int) Load 8(invocation)
             347:     77(ptr) AccessChain 27(data) 39 39
             348:   20(ivec4) Load 347
             349:   76(ivec2) VectorShuffle 348 348 0 1
             350:  184(bvec2) SLessThan 349 183
             351:      6(int) Load 8(invocation)
             352:  184(bvec2) GroupNonUniformShuffleXor 35 350 351
             353:   76(ivec2) Select 352 188 183
             354:     77(ptr) AccessChain 27(data) 346 39
             355:   20(ivec4) Load 354
             356:   20(ivec4) VectorShuffle 355 353 4 5 2 3
                              Store 354 356
             357:      6(int) Load 8(invocation)
             358:     77(ptr) AccessChain 27(data) 39 39
             359:   20(ivec4) Load 358
             360:   87(ivec3) VectorShuffle 359 359 0 1 2
             361:  198(bvec3) SLessThan 360 197
             362:      6(int) Load 8(invocation)
             363:  198(bvec3) GroupNonUniformShuffleXor 35 361 362
             364:   87(ivec3) Select 363 202 197
             365:     77(ptr) AccessChain 27(data) 357 39
             366:   20(ivec4) Load 365
             367:   20(ivec4) VectorShuffle 366 364 4 5 6 3
                              Store 365 367
             368:      6(int) Load 8(invocation)
             369:     77(ptr) AccessChain 27(data) 39 39
             370:   20(ivec4) Load 369
             371:  211(bvec4) SLessThan 370 210
             372:      6(int) Load 8(invocation)
             373:  211(bvec4) GroupNonUniformShuffleXor 35 371 372
             374:   20(ivec4) Select 373 215 210
             375:     77(ptr) AccessChain 27(data) 368 39
                              Store 375 374
                              Return
                              FunctionEnd