1spv.subgroupShuffleRelative.comp 2// Module Version 10300 3// Generated by (magic number): 8000b 4// Id's are bound by 420 5 6 Capability Shader 7 Capability Float64 8 Capability GroupNonUniform 9 Capability GroupNonUniformShuffleRelative 10 1: ExtInstImport "GLSL.std.450" 11 MemoryModel Logical GLSL450 12 EntryPoint GLCompute 4 "main" 10 12 13 ExecutionMode 4 LocalSize 8 8 1 14 Source GLSL 450 15 SourceExtension "GL_KHR_shader_subgroup_basic" 16 SourceExtension "GL_KHR_shader_subgroup_shuffle_relative" 17 Name 4 "main" 18 Name 8 "invocation" 19 Name 10 "gl_SubgroupInvocationID" 20 Name 12 "gl_SubgroupSize" 21 Name 24 "Buffers" 22 MemberName 24(Buffers) 0 "f4" 23 MemberName 24(Buffers) 1 "i4" 24 MemberName 24(Buffers) 2 "u4" 25 MemberName 24(Buffers) 3 "d4" 26 Name 27 "data" 27 Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision 28 Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId 29 Decorate 11 RelaxedPrecision 30 Decorate 12(gl_SubgroupSize) RelaxedPrecision 31 Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize 32 Decorate 13 RelaxedPrecision 33 Decorate 14 RelaxedPrecision 34 Decorate 16 RelaxedPrecision 35 MemberDecorate 24(Buffers) 0 Offset 0 36 MemberDecorate 24(Buffers) 1 Offset 16 37 MemberDecorate 24(Buffers) 2 Offset 32 38 MemberDecorate 24(Buffers) 3 Offset 64 39 Decorate 24(Buffers) Block 40 Decorate 27(data) DescriptorSet 0 41 Decorate 27(data) Binding 0 42 Decorate 419 BuiltIn WorkgroupSize 43 2: TypeVoid 44 3: TypeFunction 2 45 6: TypeInt 32 0 46 7: TypePointer Function 6(int) 47 9: TypePointer Input 6(int) 4810(gl_SubgroupInvocationID): 9(ptr) Variable Input 4912(gl_SubgroupSize): 9(ptr) Variable Input 50 15: 6(int) Constant 4 51 17: TypeFloat 32 52 18: TypeVector 17(float) 4 53 19: TypeInt 32 1 54 20: TypeVector 19(int) 4 55 21: TypeVector 6(int) 4 56 22: TypeFloat 64 57 23: TypeVector 22(float64_t) 4 58 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) 59 25: TypeArray 24(Buffers) 15 60 26: TypePointer StorageBuffer 25 61 27(data): 26(ptr) Variable StorageBuffer 62 29: 19(int) Constant 0 63 30: 6(int) Constant 0 64 31: TypePointer StorageBuffer 17(float) 65 35: 6(int) Constant 3 66 39: 19(int) Constant 1 67 40: TypeVector 17(float) 2 68 41: TypePointer StorageBuffer 18(fvec4) 69 49: 6(int) Constant 1 70 53: 19(int) Constant 2 71 54: TypeVector 17(float) 3 72 64: 6(int) Constant 2 73 68: 19(int) Constant 3 74 75: TypePointer StorageBuffer 19(int) 75 82: TypeVector 19(int) 2 76 83: TypePointer StorageBuffer 20(ivec4) 77 94: TypeVector 19(int) 3 78 113: TypePointer StorageBuffer 6(int) 79 120: TypeVector 6(int) 2 80 121: TypePointer StorageBuffer 21(ivec4) 81 132: TypeVector 6(int) 3 82 151: TypePointer StorageBuffer 22(float64_t) 83 158: TypeVector 22(float64_t) 2 84 159: TypePointer StorageBuffer 23(f64vec4) 85 170: TypeVector 22(float64_t) 3 86 191: TypeBool 87 201: 82(ivec2) ConstantComposite 29 29 88 202: TypeVector 191(bool) 2 89 206: 82(ivec2) ConstantComposite 39 39 90 216: 94(ivec3) ConstantComposite 29 29 29 91 217: TypeVector 191(bool) 3 92 221: 94(ivec3) ConstantComposite 39 39 39 93 232: 20(ivec4) ConstantComposite 29 29 29 29 94 233: TypeVector 191(bool) 4 95 237: 20(ivec4) ConstantComposite 39 39 39 39 96 418: 6(int) Constant 8 97 419: 132(ivec3) ConstantComposite 418 418 49 98 4(main): 2 Function None 3 99 5: Label 100 8(invocation): 7(ptr) Variable Function 101 11: 6(int) Load 10(gl_SubgroupInvocationID) 102 13: 6(int) Load 12(gl_SubgroupSize) 103 14: 6(int) IAdd 11 13 104 16: 6(int) UMod 14 15 105 Store 8(invocation) 16 106 28: 6(int) Load 8(invocation) 107 32: 31(ptr) AccessChain 27(data) 29 29 30 108 33: 17(float) Load 32 109 34: 6(int) Load 8(invocation) 110 36: 17(float) GroupNonUniformShuffleUp 35 33 34 111 37: 31(ptr) AccessChain 27(data) 28 29 30 112 Store 37 36 113 38: 6(int) Load 8(invocation) 114 42: 41(ptr) AccessChain 27(data) 39 29 115 43: 18(fvec4) Load 42 116 44: 40(fvec2) VectorShuffle 43 43 0 1 117 45: 6(int) Load 8(invocation) 118 46: 40(fvec2) GroupNonUniformShuffleUp 35 44 45 119 47: 31(ptr) AccessChain 27(data) 38 29 30 120 48: 17(float) CompositeExtract 46 0 121 Store 47 48 122 50: 31(ptr) AccessChain 27(data) 38 29 49 123 51: 17(float) CompositeExtract 46 1 124 Store 50 51 125 52: 6(int) Load 8(invocation) 126 55: 41(ptr) AccessChain 27(data) 53 29 127 56: 18(fvec4) Load 55 128 57: 54(fvec3) VectorShuffle 56 56 0 1 2 129 58: 6(int) Load 8(invocation) 130 59: 54(fvec3) GroupNonUniformShuffleUp 35 57 58 131 60: 31(ptr) AccessChain 27(data) 52 29 30 132 61: 17(float) CompositeExtract 59 0 133 Store 60 61 134 62: 31(ptr) AccessChain 27(data) 52 29 49 135 63: 17(float) CompositeExtract 59 1 136 Store 62 63 137 65: 31(ptr) AccessChain 27(data) 52 29 64 138 66: 17(float) CompositeExtract 59 2 139 Store 65 66 140 67: 6(int) Load 8(invocation) 141 69: 41(ptr) AccessChain 27(data) 68 29 142 70: 18(fvec4) Load 69 143 71: 6(int) Load 8(invocation) 144 72: 18(fvec4) GroupNonUniformShuffleUp 35 70 71 145 73: 41(ptr) AccessChain 27(data) 67 29 146 Store 73 72 147 74: 6(int) Load 8(invocation) 148 76: 75(ptr) AccessChain 27(data) 29 39 30 149 77: 19(int) Load 76 150 78: 6(int) Load 8(invocation) 151 79: 19(int) GroupNonUniformShuffleUp 35 77 78 152 80: 75(ptr) AccessChain 27(data) 74 39 30 153 Store 80 79 154 81: 6(int) Load 8(invocation) 155 84: 83(ptr) AccessChain 27(data) 39 39 156 85: 20(ivec4) Load 84 157 86: 82(ivec2) VectorShuffle 85 85 0 1 158 87: 6(int) Load 8(invocation) 159 88: 82(ivec2) GroupNonUniformShuffleUp 35 86 87 160 89: 75(ptr) AccessChain 27(data) 81 39 30 161 90: 19(int) CompositeExtract 88 0 162 Store 89 90 163 91: 75(ptr) AccessChain 27(data) 81 39 49 164 92: 19(int) CompositeExtract 88 1 165 Store 91 92 166 93: 6(int) Load 8(invocation) 167 95: 83(ptr) AccessChain 27(data) 53 39 168 96: 20(ivec4) Load 95 169 97: 94(ivec3) VectorShuffle 96 96 0 1 2 170 98: 6(int) Load 8(invocation) 171 99: 94(ivec3) GroupNonUniformShuffleUp 35 97 98 172 100: 75(ptr) AccessChain 27(data) 93 39 30 173 101: 19(int) CompositeExtract 99 0 174 Store 100 101 175 102: 75(ptr) AccessChain 27(data) 93 39 49 176 103: 19(int) CompositeExtract 99 1 177 Store 102 103 178 104: 75(ptr) AccessChain 27(data) 93 39 64 179 105: 19(int) CompositeExtract 99 2 180 Store 104 105 181 106: 6(int) Load 8(invocation) 182 107: 83(ptr) AccessChain 27(data) 68 39 183 108: 20(ivec4) Load 107 184 109: 6(int) Load 8(invocation) 185 110: 20(ivec4) GroupNonUniformShuffleUp 35 108 109 186 111: 83(ptr) AccessChain 27(data) 106 39 187 Store 111 110 188 112: 6(int) Load 8(invocation) 189 114: 113(ptr) AccessChain 27(data) 29 53 30 190 115: 6(int) Load 114 191 116: 6(int) Load 8(invocation) 192 117: 6(int) GroupNonUniformShuffleUp 35 115 116 193 118: 113(ptr) AccessChain 27(data) 112 53 30 194 Store 118 117 195 119: 6(int) Load 8(invocation) 196 122: 121(ptr) AccessChain 27(data) 39 53 197 123: 21(ivec4) Load 122 198 124: 120(ivec2) VectorShuffle 123 123 0 1 199 125: 6(int) Load 8(invocation) 200 126: 120(ivec2) GroupNonUniformShuffleUp 35 124 125 201 127: 113(ptr) AccessChain 27(data) 119 53 30 202 128: 6(int) CompositeExtract 126 0 203 Store 127 128 204 129: 113(ptr) AccessChain 27(data) 119 53 49 205 130: 6(int) CompositeExtract 126 1 206 Store 129 130 207 131: 6(int) Load 8(invocation) 208 133: 121(ptr) AccessChain 27(data) 53 53 209 134: 21(ivec4) Load 133 210 135: 132(ivec3) VectorShuffle 134 134 0 1 2 211 136: 6(int) Load 8(invocation) 212 137: 132(ivec3) GroupNonUniformShuffleUp 35 135 136 213 138: 113(ptr) AccessChain 27(data) 131 53 30 214 139: 6(int) CompositeExtract 137 0 215 Store 138 139 216 140: 113(ptr) AccessChain 27(data) 131 53 49 217 141: 6(int) CompositeExtract 137 1 218 Store 140 141 219 142: 113(ptr) AccessChain 27(data) 131 53 64 220 143: 6(int) CompositeExtract 137 2 221 Store 142 143 222 144: 6(int) Load 8(invocation) 223 145: 121(ptr) AccessChain 27(data) 68 53 224 146: 21(ivec4) Load 145 225 147: 6(int) Load 8(invocation) 226 148: 21(ivec4) GroupNonUniformShuffleUp 35 146 147 227 149: 121(ptr) AccessChain 27(data) 144 53 228 Store 149 148 229 150: 6(int) Load 8(invocation) 230 152: 151(ptr) AccessChain 27(data) 29 68 30 231 153:22(float64_t) Load 152 232 154: 6(int) Load 8(invocation) 233 155:22(float64_t) GroupNonUniformShuffleUp 35 153 154 234 156: 151(ptr) AccessChain 27(data) 150 68 30 235 Store 156 155 236 157: 6(int) Load 8(invocation) 237 160: 159(ptr) AccessChain 27(data) 39 68 238 161: 23(f64vec4) Load 160 239 162:158(f64vec2) VectorShuffle 161 161 0 1 240 163: 6(int) Load 8(invocation) 241 164:158(f64vec2) GroupNonUniformShuffleUp 35 162 163 242 165: 151(ptr) AccessChain 27(data) 157 68 30 243 166:22(float64_t) CompositeExtract 164 0 244 Store 165 166 245 167: 151(ptr) AccessChain 27(data) 157 68 49 246 168:22(float64_t) CompositeExtract 164 1 247 Store 167 168 248 169: 6(int) Load 8(invocation) 249 171: 159(ptr) AccessChain 27(data) 53 68 250 172: 23(f64vec4) Load 171 251 173:170(f64vec3) VectorShuffle 172 172 0 1 2 252 174: 6(int) Load 8(invocation) 253 175:170(f64vec3) GroupNonUniformShuffleUp 35 173 174 254 176: 151(ptr) AccessChain 27(data) 169 68 30 255 177:22(float64_t) CompositeExtract 175 0 256 Store 176 177 257 178: 151(ptr) AccessChain 27(data) 169 68 49 258 179:22(float64_t) CompositeExtract 175 1 259 Store 178 179 260 180: 151(ptr) AccessChain 27(data) 169 68 64 261 181:22(float64_t) CompositeExtract 175 2 262 Store 180 181 263 182: 6(int) Load 8(invocation) 264 183: 159(ptr) AccessChain 27(data) 68 68 265 184: 23(f64vec4) Load 183 266 185: 6(int) Load 8(invocation) 267 186: 23(f64vec4) GroupNonUniformShuffleUp 35 184 185 268 187: 159(ptr) AccessChain 27(data) 182 68 269 Store 187 186 270 188: 6(int) Load 8(invocation) 271 189: 75(ptr) AccessChain 27(data) 29 39 30 272 190: 19(int) Load 189 273 192: 191(bool) SLessThan 190 29 274 193: 6(int) Load 8(invocation) 275 194: 191(bool) GroupNonUniformShuffleUp 35 192 193 276 195: 19(int) Select 194 39 29 277 196: 75(ptr) AccessChain 27(data) 188 39 30 278 Store 196 195 279 197: 6(int) Load 8(invocation) 280 198: 83(ptr) AccessChain 27(data) 39 39 281 199: 20(ivec4) Load 198 282 200: 82(ivec2) VectorShuffle 199 199 0 1 283 203: 202(bvec2) SLessThan 200 201 284 204: 6(int) Load 8(invocation) 285 205: 202(bvec2) GroupNonUniformShuffleUp 35 203 204 286 207: 82(ivec2) Select 205 206 201 287 208: 75(ptr) AccessChain 27(data) 197 39 30 288 209: 19(int) CompositeExtract 207 0 289 Store 208 209 290 210: 75(ptr) AccessChain 27(data) 197 39 49 291 211: 19(int) CompositeExtract 207 1 292 Store 210 211 293 212: 6(int) Load 8(invocation) 294 213: 83(ptr) AccessChain 27(data) 39 39 295 214: 20(ivec4) Load 213 296 215: 94(ivec3) VectorShuffle 214 214 0 1 2 297 218: 217(bvec3) SLessThan 215 216 298 219: 6(int) Load 8(invocation) 299 220: 217(bvec3) GroupNonUniformShuffleUp 35 218 219 300 222: 94(ivec3) Select 220 221 216 301 223: 75(ptr) AccessChain 27(data) 212 39 30 302 224: 19(int) CompositeExtract 222 0 303 Store 223 224 304 225: 75(ptr) AccessChain 27(data) 212 39 49 305 226: 19(int) CompositeExtract 222 1 306 Store 225 226 307 227: 75(ptr) AccessChain 27(data) 212 39 64 308 228: 19(int) CompositeExtract 222 2 309 Store 227 228 310 229: 6(int) Load 8(invocation) 311 230: 83(ptr) AccessChain 27(data) 39 39 312 231: 20(ivec4) Load 230 313 234: 233(bvec4) SLessThan 231 232 314 235: 6(int) Load 8(invocation) 315 236: 233(bvec4) GroupNonUniformShuffleUp 35 234 235 316 238: 20(ivec4) Select 236 237 232 317 239: 83(ptr) AccessChain 27(data) 229 39 318 Store 239 238 319 240: 6(int) Load 8(invocation) 320 241: 31(ptr) AccessChain 27(data) 29 29 30 321 242: 17(float) Load 241 322 243: 6(int) Load 8(invocation) 323 244: 17(float) GroupNonUniformShuffleDown 35 242 243 324 245: 31(ptr) AccessChain 27(data) 240 29 30 325 Store 245 244 326 246: 6(int) Load 8(invocation) 327 247: 41(ptr) AccessChain 27(data) 39 29 328 248: 18(fvec4) Load 247 329 249: 40(fvec2) VectorShuffle 248 248 0 1 330 250: 6(int) Load 8(invocation) 331 251: 40(fvec2) GroupNonUniformShuffleDown 35 249 250 332 252: 31(ptr) AccessChain 27(data) 246 29 30 333 253: 17(float) CompositeExtract 251 0 334 Store 252 253 335 254: 31(ptr) AccessChain 27(data) 246 29 49 336 255: 17(float) CompositeExtract 251 1 337 Store 254 255 338 256: 6(int) Load 8(invocation) 339 257: 41(ptr) AccessChain 27(data) 53 29 340 258: 18(fvec4) Load 257 341 259: 54(fvec3) VectorShuffle 258 258 0 1 2 342 260: 6(int) Load 8(invocation) 343 261: 54(fvec3) GroupNonUniformShuffleDown 35 259 260 344 262: 31(ptr) AccessChain 27(data) 256 29 30 345 263: 17(float) CompositeExtract 261 0 346 Store 262 263 347 264: 31(ptr) AccessChain 27(data) 256 29 49 348 265: 17(float) CompositeExtract 261 1 349 Store 264 265 350 266: 31(ptr) AccessChain 27(data) 256 29 64 351 267: 17(float) CompositeExtract 261 2 352 Store 266 267 353 268: 6(int) Load 8(invocation) 354 269: 41(ptr) AccessChain 27(data) 68 29 355 270: 18(fvec4) Load 269 356 271: 6(int) Load 8(invocation) 357 272: 18(fvec4) GroupNonUniformShuffleDown 35 270 271 358 273: 41(ptr) AccessChain 27(data) 268 29 359 Store 273 272 360 274: 6(int) Load 8(invocation) 361 275: 75(ptr) AccessChain 27(data) 29 39 30 362 276: 19(int) Load 275 363 277: 6(int) Load 8(invocation) 364 278: 19(int) GroupNonUniformShuffleDown 35 276 277 365 279: 75(ptr) AccessChain 27(data) 274 39 30 366 Store 279 278 367 280: 6(int) Load 8(invocation) 368 281: 83(ptr) AccessChain 27(data) 39 39 369 282: 20(ivec4) Load 281 370 283: 82(ivec2) VectorShuffle 282 282 0 1 371 284: 6(int) Load 8(invocation) 372 285: 82(ivec2) GroupNonUniformShuffleDown 35 283 284 373 286: 75(ptr) AccessChain 27(data) 280 39 30 374 287: 19(int) CompositeExtract 285 0 375 Store 286 287 376 288: 75(ptr) AccessChain 27(data) 280 39 49 377 289: 19(int) CompositeExtract 285 1 378 Store 288 289 379 290: 6(int) Load 8(invocation) 380 291: 83(ptr) AccessChain 27(data) 53 39 381 292: 20(ivec4) Load 291 382 293: 94(ivec3) VectorShuffle 292 292 0 1 2 383 294: 6(int) Load 8(invocation) 384 295: 94(ivec3) GroupNonUniformShuffleDown 35 293 294 385 296: 75(ptr) AccessChain 27(data) 290 39 30 386 297: 19(int) CompositeExtract 295 0 387 Store 296 297 388 298: 75(ptr) AccessChain 27(data) 290 39 49 389 299: 19(int) CompositeExtract 295 1 390 Store 298 299 391 300: 75(ptr) AccessChain 27(data) 290 39 64 392 301: 19(int) CompositeExtract 295 2 393 Store 300 301 394 302: 6(int) Load 8(invocation) 395 303: 83(ptr) AccessChain 27(data) 68 39 396 304: 20(ivec4) Load 303 397 305: 6(int) Load 8(invocation) 398 306: 20(ivec4) GroupNonUniformShuffleDown 35 304 305 399 307: 83(ptr) AccessChain 27(data) 302 39 400 Store 307 306 401 308: 6(int) Load 8(invocation) 402 309: 113(ptr) AccessChain 27(data) 29 53 30 403 310: 6(int) Load 309 404 311: 6(int) Load 8(invocation) 405 312: 6(int) GroupNonUniformShuffleDown 35 310 311 406 313: 113(ptr) AccessChain 27(data) 308 53 30 407 Store 313 312 408 314: 6(int) Load 8(invocation) 409 315: 121(ptr) AccessChain 27(data) 39 53 410 316: 21(ivec4) Load 315 411 317: 120(ivec2) VectorShuffle 316 316 0 1 412 318: 6(int) Load 8(invocation) 413 319: 120(ivec2) GroupNonUniformShuffleDown 35 317 318 414 320: 113(ptr) AccessChain 27(data) 314 53 30 415 321: 6(int) CompositeExtract 319 0 416 Store 320 321 417 322: 113(ptr) AccessChain 27(data) 314 53 49 418 323: 6(int) CompositeExtract 319 1 419 Store 322 323 420 324: 6(int) Load 8(invocation) 421 325: 121(ptr) AccessChain 27(data) 53 53 422 326: 21(ivec4) Load 325 423 327: 132(ivec3) VectorShuffle 326 326 0 1 2 424 328: 6(int) Load 8(invocation) 425 329: 132(ivec3) GroupNonUniformShuffleDown 35 327 328 426 330: 113(ptr) AccessChain 27(data) 324 53 30 427 331: 6(int) CompositeExtract 329 0 428 Store 330 331 429 332: 113(ptr) AccessChain 27(data) 324 53 49 430 333: 6(int) CompositeExtract 329 1 431 Store 332 333 432 334: 113(ptr) AccessChain 27(data) 324 53 64 433 335: 6(int) CompositeExtract 329 2 434 Store 334 335 435 336: 6(int) Load 8(invocation) 436 337: 121(ptr) AccessChain 27(data) 68 53 437 338: 21(ivec4) Load 337 438 339: 6(int) Load 8(invocation) 439 340: 21(ivec4) GroupNonUniformShuffleDown 35 338 339 440 341: 121(ptr) AccessChain 27(data) 336 53 441 Store 341 340 442 342: 6(int) Load 8(invocation) 443 343: 151(ptr) AccessChain 27(data) 29 68 30 444 344:22(float64_t) Load 343 445 345: 6(int) Load 8(invocation) 446 346:22(float64_t) GroupNonUniformShuffleDown 35 344 345 447 347: 151(ptr) AccessChain 27(data) 342 68 30 448 Store 347 346 449 348: 6(int) Load 8(invocation) 450 349: 159(ptr) AccessChain 27(data) 39 68 451 350: 23(f64vec4) Load 349 452 351:158(f64vec2) VectorShuffle 350 350 0 1 453 352: 6(int) Load 8(invocation) 454 353:158(f64vec2) GroupNonUniformShuffleDown 35 351 352 455 354: 151(ptr) AccessChain 27(data) 348 68 30 456 355:22(float64_t) CompositeExtract 353 0 457 Store 354 355 458 356: 151(ptr) AccessChain 27(data) 348 68 49 459 357:22(float64_t) CompositeExtract 353 1 460 Store 356 357 461 358: 6(int) Load 8(invocation) 462 359: 159(ptr) AccessChain 27(data) 53 68 463 360: 23(f64vec4) Load 359 464 361:170(f64vec3) VectorShuffle 360 360 0 1 2 465 362: 6(int) Load 8(invocation) 466 363:170(f64vec3) GroupNonUniformShuffleDown 35 361 362 467 364: 151(ptr) AccessChain 27(data) 358 68 30 468 365:22(float64_t) CompositeExtract 363 0 469 Store 364 365 470 366: 151(ptr) AccessChain 27(data) 358 68 49 471 367:22(float64_t) CompositeExtract 363 1 472 Store 366 367 473 368: 151(ptr) AccessChain 27(data) 358 68 64 474 369:22(float64_t) CompositeExtract 363 2 475 Store 368 369 476 370: 6(int) Load 8(invocation) 477 371: 159(ptr) AccessChain 27(data) 68 68 478 372: 23(f64vec4) Load 371 479 373: 6(int) Load 8(invocation) 480 374: 23(f64vec4) GroupNonUniformShuffleDown 35 372 373 481 375: 159(ptr) AccessChain 27(data) 370 68 482 Store 375 374 483 376: 6(int) Load 8(invocation) 484 377: 75(ptr) AccessChain 27(data) 29 39 30 485 378: 19(int) Load 377 486 379: 191(bool) SLessThan 378 29 487 380: 6(int) Load 8(invocation) 488 381: 191(bool) GroupNonUniformShuffleDown 35 379 380 489 382: 19(int) Select 381 39 29 490 383: 75(ptr) AccessChain 27(data) 376 39 30 491 Store 383 382 492 384: 6(int) Load 8(invocation) 493 385: 83(ptr) AccessChain 27(data) 39 39 494 386: 20(ivec4) Load 385 495 387: 82(ivec2) VectorShuffle 386 386 0 1 496 388: 202(bvec2) SLessThan 387 201 497 389: 6(int) Load 8(invocation) 498 390: 202(bvec2) GroupNonUniformShuffleDown 35 388 389 499 391: 82(ivec2) Select 390 206 201 500 392: 75(ptr) AccessChain 27(data) 384 39 30 501 393: 19(int) CompositeExtract 391 0 502 Store 392 393 503 394: 75(ptr) AccessChain 27(data) 384 39 49 504 395: 19(int) CompositeExtract 391 1 505 Store 394 395 506 396: 6(int) Load 8(invocation) 507 397: 83(ptr) AccessChain 27(data) 39 39 508 398: 20(ivec4) Load 397 509 399: 94(ivec3) VectorShuffle 398 398 0 1 2 510 400: 217(bvec3) SLessThan 399 216 511 401: 6(int) Load 8(invocation) 512 402: 217(bvec3) GroupNonUniformShuffleDown 35 400 401 513 403: 94(ivec3) Select 402 221 216 514 404: 75(ptr) AccessChain 27(data) 396 39 30 515 405: 19(int) CompositeExtract 403 0 516 Store 404 405 517 406: 75(ptr) AccessChain 27(data) 396 39 49 518 407: 19(int) CompositeExtract 403 1 519 Store 406 407 520 408: 75(ptr) AccessChain 27(data) 396 39 64 521 409: 19(int) CompositeExtract 403 2 522 Store 408 409 523 410: 6(int) Load 8(invocation) 524 411: 83(ptr) AccessChain 27(data) 39 39 525 412: 20(ivec4) Load 411 526 413: 233(bvec4) SLessThan 412 232 527 414: 6(int) Load 8(invocation) 528 415: 233(bvec4) GroupNonUniformShuffleDown 35 413 414 529 416: 20(ivec4) Select 415 237 232 530 417: 83(ptr) AccessChain 27(data) 410 39 531 Store 417 416 532 Return 533 FunctionEnd 534