spv.subgroupShuffleRelative.comp // Module Version 10300 // Generated by (magic number): 80007 // Id's are bound by 379 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 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) 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: 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleUp 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 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) GroupNonUniformShuffleDown 35 371 372 374: 20(ivec4) Select 373 215 210 375: 77(ptr) AccessChain 27(data) 368 39 Store 375 374 Return FunctionEnd