spv.subgroupShuffleRelative.comp // Module Version 10300 // Generated by (magic number): 8000b // Id's are bound by 420 Capability Shader Capability Float64 Capability GroupNonUniform Capability GroupNonUniformShuffleRelative 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_relative" 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 419 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) 49: 6(int) Constant 1 53: 19(int) Constant 2 54: TypeVector 17(float) 3 64: 6(int) Constant 2 68: 19(int) Constant 3 75: TypePointer StorageBuffer 19(int) 82: TypeVector 19(int) 2 83: TypePointer StorageBuffer 20(ivec4) 94: TypeVector 19(int) 3 113: TypePointer StorageBuffer 6(int) 120: TypeVector 6(int) 2 121: TypePointer StorageBuffer 21(ivec4) 132: TypeVector 6(int) 3 151: TypePointer StorageBuffer 22(float64_t) 158: TypeVector 22(float64_t) 2 159: TypePointer StorageBuffer 23(f64vec4) 170: TypeVector 22(float64_t) 3 191: TypeBool 201: 82(ivec2) ConstantComposite 29 29 202: TypeVector 191(bool) 2 206: 82(ivec2) ConstantComposite 39 39 216: 94(ivec3) ConstantComposite 29 29 29 217: TypeVector 191(bool) 3 221: 94(ivec3) ConstantComposite 39 39 39 232: 20(ivec4) ConstantComposite 29 29 29 29 233: TypeVector 191(bool) 4 237: 20(ivec4) ConstantComposite 39 39 39 39 418: 6(int) Constant 8 419: 132(ivec3) ConstantComposite 418 418 49 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 35 44 45 47: 31(ptr) AccessChain 27(data) 38 29 30 48: 17(float) CompositeExtract 46 0 Store 47 48 50: 31(ptr) AccessChain 27(data) 38 29 49 51: 17(float) CompositeExtract 46 1 Store 50 51 52: 6(int) Load 8(invocation) 55: 41(ptr) AccessChain 27(data) 53 29 56: 18(fvec4) Load 55 57: 54(fvec3) VectorShuffle 56 56 0 1 2 58: 6(int) Load 8(invocation) 59: 54(fvec3) GroupNonUniformShuffleUp 35 57 58 60: 31(ptr) AccessChain 27(data) 52 29 30 61: 17(float) CompositeExtract 59 0 Store 60 61 62: 31(ptr) AccessChain 27(data) 52 29 49 63: 17(float) CompositeExtract 59 1 Store 62 63 65: 31(ptr) AccessChain 27(data) 52 29 64 66: 17(float) CompositeExtract 59 2 Store 65 66 67: 6(int) Load 8(invocation) 69: 41(ptr) AccessChain 27(data) 68 29 70: 18(fvec4) Load 69 71: 6(int) Load 8(invocation) 72: 18(fvec4) GroupNonUniformShuffleUp 35 70 71 73: 41(ptr) AccessChain 27(data) 67 29 Store 73 72 74: 6(int) Load 8(invocation) 76: 75(ptr) AccessChain 27(data) 29 39 30 77: 19(int) Load 76 78: 6(int) Load 8(invocation) 79: 19(int) GroupNonUniformShuffleUp 35 77 78 80: 75(ptr) AccessChain 27(data) 74 39 30 Store 80 79 81: 6(int) Load 8(invocation) 84: 83(ptr) AccessChain 27(data) 39 39 85: 20(ivec4) Load 84 86: 82(ivec2) VectorShuffle 85 85 0 1 87: 6(int) Load 8(invocation) 88: 82(ivec2) GroupNonUniformShuffleUp 35 86 87 89: 75(ptr) AccessChain 27(data) 81 39 30 90: 19(int) CompositeExtract 88 0 Store 89 90 91: 75(ptr) AccessChain 27(data) 81 39 49 92: 19(int) CompositeExtract 88 1 Store 91 92 93: 6(int) Load 8(invocation) 95: 83(ptr) AccessChain 27(data) 53 39 96: 20(ivec4) Load 95 97: 94(ivec3) VectorShuffle 96 96 0 1 2 98: 6(int) Load 8(invocation) 99: 94(ivec3) GroupNonUniformShuffleUp 35 97 98 100: 75(ptr) AccessChain 27(data) 93 39 30 101: 19(int) CompositeExtract 99 0 Store 100 101 102: 75(ptr) AccessChain 27(data) 93 39 49 103: 19(int) CompositeExtract 99 1 Store 102 103 104: 75(ptr) AccessChain 27(data) 93 39 64 105: 19(int) CompositeExtract 99 2 Store 104 105 106: 6(int) Load 8(invocation) 107: 83(ptr) AccessChain 27(data) 68 39 108: 20(ivec4) Load 107 109: 6(int) Load 8(invocation) 110: 20(ivec4) GroupNonUniformShuffleUp 35 108 109 111: 83(ptr) AccessChain 27(data) 106 39 Store 111 110 112: 6(int) Load 8(invocation) 114: 113(ptr) AccessChain 27(data) 29 53 30 115: 6(int) Load 114 116: 6(int) Load 8(invocation) 117: 6(int) GroupNonUniformShuffleUp 35 115 116 118: 113(ptr) AccessChain 27(data) 112 53 30 Store 118 117 119: 6(int) Load 8(invocation) 122: 121(ptr) AccessChain 27(data) 39 53 123: 21(ivec4) Load 122 124: 120(ivec2) VectorShuffle 123 123 0 1 125: 6(int) Load 8(invocation) 126: 120(ivec2) GroupNonUniformShuffleUp 35 124 125 127: 113(ptr) AccessChain 27(data) 119 53 30 128: 6(int) CompositeExtract 126 0 Store 127 128 129: 113(ptr) AccessChain 27(data) 119 53 49 130: 6(int) CompositeExtract 126 1 Store 129 130 131: 6(int) Load 8(invocation) 133: 121(ptr) AccessChain 27(data) 53 53 134: 21(ivec4) Load 133 135: 132(ivec3) VectorShuffle 134 134 0 1 2 136: 6(int) Load 8(invocation) 137: 132(ivec3) GroupNonUniformShuffleUp 35 135 136 138: 113(ptr) AccessChain 27(data) 131 53 30 139: 6(int) CompositeExtract 137 0 Store 138 139 140: 113(ptr) AccessChain 27(data) 131 53 49 141: 6(int) CompositeExtract 137 1 Store 140 141 142: 113(ptr) AccessChain 27(data) 131 53 64 143: 6(int) CompositeExtract 137 2 Store 142 143 144: 6(int) Load 8(invocation) 145: 121(ptr) AccessChain 27(data) 68 53 146: 21(ivec4) Load 145 147: 6(int) Load 8(invocation) 148: 21(ivec4) GroupNonUniformShuffleUp 35 146 147 149: 121(ptr) AccessChain 27(data) 144 53 Store 149 148 150: 6(int) Load 8(invocation) 152: 151(ptr) AccessChain 27(data) 29 68 30 153:22(float64_t) Load 152 154: 6(int) Load 8(invocation) 155:22(float64_t) GroupNonUniformShuffleUp 35 153 154 156: 151(ptr) AccessChain 27(data) 150 68 30 Store 156 155 157: 6(int) Load 8(invocation) 160: 159(ptr) AccessChain 27(data) 39 68 161: 23(f64vec4) Load 160 162:158(f64vec2) VectorShuffle 161 161 0 1 163: 6(int) Load 8(invocation) 164:158(f64vec2) GroupNonUniformShuffleUp 35 162 163 165: 151(ptr) AccessChain 27(data) 157 68 30 166:22(float64_t) CompositeExtract 164 0 Store 165 166 167: 151(ptr) AccessChain 27(data) 157 68 49 168:22(float64_t) CompositeExtract 164 1 Store 167 168 169: 6(int) Load 8(invocation) 171: 159(ptr) AccessChain 27(data) 53 68 172: 23(f64vec4) Load 171 173:170(f64vec3) VectorShuffle 172 172 0 1 2 174: 6(int) Load 8(invocation) 175:170(f64vec3) GroupNonUniformShuffleUp 35 173 174 176: 151(ptr) AccessChain 27(data) 169 68 30 177:22(float64_t) CompositeExtract 175 0 Store 176 177 178: 151(ptr) AccessChain 27(data) 169 68 49 179:22(float64_t) CompositeExtract 175 1 Store 178 179 180: 151(ptr) AccessChain 27(data) 169 68 64 181:22(float64_t) CompositeExtract 175 2 Store 180 181 182: 6(int) Load 8(invocation) 183: 159(ptr) AccessChain 27(data) 68 68 184: 23(f64vec4) Load 183 185: 6(int) Load 8(invocation) 186: 23(f64vec4) GroupNonUniformShuffleUp 35 184 185 187: 159(ptr) AccessChain 27(data) 182 68 Store 187 186 188: 6(int) Load 8(invocation) 189: 75(ptr) AccessChain 27(data) 29 39 30 190: 19(int) Load 189 192: 191(bool) SLessThan 190 29 193: 6(int) Load 8(invocation) 194: 191(bool) GroupNonUniformShuffleUp 35 192 193 195: 19(int) Select 194 39 29 196: 75(ptr) AccessChain 27(data) 188 39 30 Store 196 195 197: 6(int) Load 8(invocation) 198: 83(ptr) AccessChain 27(data) 39 39 199: 20(ivec4) Load 198 200: 82(ivec2) VectorShuffle 199 199 0 1 203: 202(bvec2) SLessThan 200 201 204: 6(int) Load 8(invocation) 205: 202(bvec2) GroupNonUniformShuffleUp 35 203 204 207: 82(ivec2) Select 205 206 201 208: 75(ptr) AccessChain 27(data) 197 39 30 209: 19(int) CompositeExtract 207 0 Store 208 209 210: 75(ptr) AccessChain 27(data) 197 39 49 211: 19(int) CompositeExtract 207 1 Store 210 211 212: 6(int) Load 8(invocation) 213: 83(ptr) AccessChain 27(data) 39 39 214: 20(ivec4) Load 213 215: 94(ivec3) VectorShuffle 214 214 0 1 2 218: 217(bvec3) SLessThan 215 216 219: 6(int) Load 8(invocation) 220: 217(bvec3) GroupNonUniformShuffleUp 35 218 219 222: 94(ivec3) Select 220 221 216 223: 75(ptr) AccessChain 27(data) 212 39 30 224: 19(int) CompositeExtract 222 0 Store 223 224 225: 75(ptr) AccessChain 27(data) 212 39 49 226: 19(int) CompositeExtract 222 1 Store 225 226 227: 75(ptr) AccessChain 27(data) 212 39 64 228: 19(int) CompositeExtract 222 2 Store 227 228 229: 6(int) Load 8(invocation) 230: 83(ptr) AccessChain 27(data) 39 39 231: 20(ivec4) Load 230 234: 233(bvec4) SLessThan 231 232 235: 6(int) Load 8(invocation) 236: 233(bvec4) GroupNonUniformShuffleUp 35 234 235 238: 20(ivec4) Select 236 237 232 239: 83(ptr) AccessChain 27(data) 229 39 Store 239 238 240: 6(int) Load 8(invocation) 241: 31(ptr) AccessChain 27(data) 29 29 30 242: 17(float) Load 241 243: 6(int) Load 8(invocation) 244: 17(float) GroupNonUniformShuffleDown 35 242 243 245: 31(ptr) AccessChain 27(data) 240 29 30 Store 245 244 246: 6(int) Load 8(invocation) 247: 41(ptr) AccessChain 27(data) 39 29 248: 18(fvec4) Load 247 249: 40(fvec2) VectorShuffle 248 248 0 1 250: 6(int) Load 8(invocation) 251: 40(fvec2) GroupNonUniformShuffleDown 35 249 250 252: 31(ptr) AccessChain 27(data) 246 29 30 253: 17(float) CompositeExtract 251 0 Store 252 253 254: 31(ptr) AccessChain 27(data) 246 29 49 255: 17(float) CompositeExtract 251 1 Store 254 255 256: 6(int) Load 8(invocation) 257: 41(ptr) AccessChain 27(data) 53 29 258: 18(fvec4) Load 257 259: 54(fvec3) VectorShuffle 258 258 0 1 2 260: 6(int) Load 8(invocation) 261: 54(fvec3) GroupNonUniformShuffleDown 35 259 260 262: 31(ptr) AccessChain 27(data) 256 29 30 263: 17(float) CompositeExtract 261 0 Store 262 263 264: 31(ptr) AccessChain 27(data) 256 29 49 265: 17(float) CompositeExtract 261 1 Store 264 265 266: 31(ptr) AccessChain 27(data) 256 29 64 267: 17(float) CompositeExtract 261 2 Store 266 267 268: 6(int) Load 8(invocation) 269: 41(ptr) AccessChain 27(data) 68 29 270: 18(fvec4) Load 269 271: 6(int) Load 8(invocation) 272: 18(fvec4) GroupNonUniformShuffleDown 35 270 271 273: 41(ptr) AccessChain 27(data) 268 29 Store 273 272 274: 6(int) Load 8(invocation) 275: 75(ptr) AccessChain 27(data) 29 39 30 276: 19(int) Load 275 277: 6(int) Load 8(invocation) 278: 19(int) GroupNonUniformShuffleDown 35 276 277 279: 75(ptr) AccessChain 27(data) 274 39 30 Store 279 278 280: 6(int) Load 8(invocation) 281: 83(ptr) AccessChain 27(data) 39 39 282: 20(ivec4) Load 281 283: 82(ivec2) VectorShuffle 282 282 0 1 284: 6(int) Load 8(invocation) 285: 82(ivec2) GroupNonUniformShuffleDown 35 283 284 286: 75(ptr) AccessChain 27(data) 280 39 30 287: 19(int) CompositeExtract 285 0 Store 286 287 288: 75(ptr) AccessChain 27(data) 280 39 49 289: 19(int) CompositeExtract 285 1 Store 288 289 290: 6(int) Load 8(invocation) 291: 83(ptr) AccessChain 27(data) 53 39 292: 20(ivec4) Load 291 293: 94(ivec3) VectorShuffle 292 292 0 1 2 294: 6(int) Load 8(invocation) 295: 94(ivec3) GroupNonUniformShuffleDown 35 293 294 296: 75(ptr) AccessChain 27(data) 290 39 30 297: 19(int) CompositeExtract 295 0 Store 296 297 298: 75(ptr) AccessChain 27(data) 290 39 49 299: 19(int) CompositeExtract 295 1 Store 298 299 300: 75(ptr) AccessChain 27(data) 290 39 64 301: 19(int) CompositeExtract 295 2 Store 300 301 302: 6(int) Load 8(invocation) 303: 83(ptr) AccessChain 27(data) 68 39 304: 20(ivec4) Load 303 305: 6(int) Load 8(invocation) 306: 20(ivec4) GroupNonUniformShuffleDown 35 304 305 307: 83(ptr) AccessChain 27(data) 302 39 Store 307 306 308: 6(int) Load 8(invocation) 309: 113(ptr) AccessChain 27(data) 29 53 30 310: 6(int) Load 309 311: 6(int) Load 8(invocation) 312: 6(int) GroupNonUniformShuffleDown 35 310 311 313: 113(ptr) AccessChain 27(data) 308 53 30 Store 313 312 314: 6(int) Load 8(invocation) 315: 121(ptr) AccessChain 27(data) 39 53 316: 21(ivec4) Load 315 317: 120(ivec2) VectorShuffle 316 316 0 1 318: 6(int) Load 8(invocation) 319: 120(ivec2) GroupNonUniformShuffleDown 35 317 318 320: 113(ptr) AccessChain 27(data) 314 53 30 321: 6(int) CompositeExtract 319 0 Store 320 321 322: 113(ptr) AccessChain 27(data) 314 53 49 323: 6(int) CompositeExtract 319 1 Store 322 323 324: 6(int) Load 8(invocation) 325: 121(ptr) AccessChain 27(data) 53 53 326: 21(ivec4) Load 325 327: 132(ivec3) VectorShuffle 326 326 0 1 2 328: 6(int) Load 8(invocation) 329: 132(ivec3) GroupNonUniformShuffleDown 35 327 328 330: 113(ptr) AccessChain 27(data) 324 53 30 331: 6(int) CompositeExtract 329 0 Store 330 331 332: 113(ptr) AccessChain 27(data) 324 53 49 333: 6(int) CompositeExtract 329 1 Store 332 333 334: 113(ptr) AccessChain 27(data) 324 53 64 335: 6(int) CompositeExtract 329 2 Store 334 335 336: 6(int) Load 8(invocation) 337: 121(ptr) AccessChain 27(data) 68 53 338: 21(ivec4) Load 337 339: 6(int) Load 8(invocation) 340: 21(ivec4) GroupNonUniformShuffleDown 35 338 339 341: 121(ptr) AccessChain 27(data) 336 53 Store 341 340 342: 6(int) Load 8(invocation) 343: 151(ptr) AccessChain 27(data) 29 68 30 344:22(float64_t) Load 343 345: 6(int) Load 8(invocation) 346:22(float64_t) GroupNonUniformShuffleDown 35 344 345 347: 151(ptr) AccessChain 27(data) 342 68 30 Store 347 346 348: 6(int) Load 8(invocation) 349: 159(ptr) AccessChain 27(data) 39 68 350: 23(f64vec4) Load 349 351:158(f64vec2) VectorShuffle 350 350 0 1 352: 6(int) Load 8(invocation) 353:158(f64vec2) GroupNonUniformShuffleDown 35 351 352 354: 151(ptr) AccessChain 27(data) 348 68 30 355:22(float64_t) CompositeExtract 353 0 Store 354 355 356: 151(ptr) AccessChain 27(data) 348 68 49 357:22(float64_t) CompositeExtract 353 1 Store 356 357 358: 6(int) Load 8(invocation) 359: 159(ptr) AccessChain 27(data) 53 68 360: 23(f64vec4) Load 359 361:170(f64vec3) VectorShuffle 360 360 0 1 2 362: 6(int) Load 8(invocation) 363:170(f64vec3) GroupNonUniformShuffleDown 35 361 362 364: 151(ptr) AccessChain 27(data) 358 68 30 365:22(float64_t) CompositeExtract 363 0 Store 364 365 366: 151(ptr) AccessChain 27(data) 358 68 49 367:22(float64_t) CompositeExtract 363 1 Store 366 367 368: 151(ptr) AccessChain 27(data) 358 68 64 369:22(float64_t) CompositeExtract 363 2 Store 368 369 370: 6(int) Load 8(invocation) 371: 159(ptr) AccessChain 27(data) 68 68 372: 23(f64vec4) Load 371 373: 6(int) Load 8(invocation) 374: 23(f64vec4) GroupNonUniformShuffleDown 35 372 373 375: 159(ptr) AccessChain 27(data) 370 68 Store 375 374 376: 6(int) Load 8(invocation) 377: 75(ptr) AccessChain 27(data) 29 39 30 378: 19(int) Load 377 379: 191(bool) SLessThan 378 29 380: 6(int) Load 8(invocation) 381: 191(bool) GroupNonUniformShuffleDown 35 379 380 382: 19(int) Select 381 39 29 383: 75(ptr) AccessChain 27(data) 376 39 30 Store 383 382 384: 6(int) Load 8(invocation) 385: 83(ptr) AccessChain 27(data) 39 39 386: 20(ivec4) Load 385 387: 82(ivec2) VectorShuffle 386 386 0 1 388: 202(bvec2) SLessThan 387 201 389: 6(int) Load 8(invocation) 390: 202(bvec2) GroupNonUniformShuffleDown 35 388 389 391: 82(ivec2) Select 390 206 201 392: 75(ptr) AccessChain 27(data) 384 39 30 393: 19(int) CompositeExtract 391 0 Store 392 393 394: 75(ptr) AccessChain 27(data) 384 39 49 395: 19(int) CompositeExtract 391 1 Store 394 395 396: 6(int) Load 8(invocation) 397: 83(ptr) AccessChain 27(data) 39 39 398: 20(ivec4) Load 397 399: 94(ivec3) VectorShuffle 398 398 0 1 2 400: 217(bvec3) SLessThan 399 216 401: 6(int) Load 8(invocation) 402: 217(bvec3) GroupNonUniformShuffleDown 35 400 401 403: 94(ivec3) Select 402 221 216 404: 75(ptr) AccessChain 27(data) 396 39 30 405: 19(int) CompositeExtract 403 0 Store 404 405 406: 75(ptr) AccessChain 27(data) 396 39 49 407: 19(int) CompositeExtract 403 1 Store 406 407 408: 75(ptr) AccessChain 27(data) 396 39 64 409: 19(int) CompositeExtract 403 2 Store 408 409 410: 6(int) Load 8(invocation) 411: 83(ptr) AccessChain 27(data) 39 39 412: 20(ivec4) Load 411 413: 233(bvec4) SLessThan 412 232 414: 6(int) Load 8(invocation) 415: 233(bvec4) GroupNonUniformShuffleDown 35 413 414 416: 20(ivec4) Select 415 237 232 417: 83(ptr) AccessChain 27(data) 410 39 Store 417 416 Return FunctionEnd