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