spv.shaderBallot.comp
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 298

                              Capability Shader
                              Capability Int64
                              Capability SubgroupBallotKHR
                              Extension  "SPV_KHR_shader_ballot"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main" 10 12 21 23 26 29 32
                              ExecutionMode 4 LocalSize 8 8 1
                              Source GLSL 450
                              SourceExtension  "GL_ARB_gpu_shader_int64"
                              SourceExtension  "GL_ARB_shader_ballot"
                              Name 4  "main"
                              Name 8  "invocation"
                              Name 10  "gl_SubGroupInvocationARB"
                              Name 12  "gl_SubGroupSizeARB"
                              Name 19  "relMask"
                              Name 21  "gl_SubGroupEqMaskARB"
                              Name 23  "gl_SubGroupGeMaskARB"
                              Name 26  "gl_SubGroupGtMaskARB"
                              Name 29  "gl_SubGroupLeMaskARB"
                              Name 32  "gl_SubGroupLtMaskARB"
                              Name 52  "Buffers"
                              MemberName 52(Buffers) 0  "f4"
                              MemberName 52(Buffers) 1  "i4"
                              MemberName 52(Buffers) 2  "u4"
                              Name 55  "data"
                              Decorate 10(gl_SubGroupInvocationARB) BuiltIn SubgroupLocalInvocationId
                              Decorate 12(gl_SubGroupSizeARB) BuiltIn SubgroupSize
                              Decorate 21(gl_SubGroupEqMaskARB) BuiltIn SubgroupEqMaskKHR
                              Decorate 23(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR
                              Decorate 26(gl_SubGroupGtMaskARB) BuiltIn SubgroupGtMaskKHR
                              Decorate 29(gl_SubGroupLeMaskARB) BuiltIn SubgroupLeMaskKHR
                              Decorate 32(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR
                              MemberDecorate 52(Buffers) 0 Offset 0
                              MemberDecorate 52(Buffers) 1 Offset 16
                              MemberDecorate 52(Buffers) 2 Offset 32
                              Decorate 52(Buffers) BufferBlock
                              Decorate 55(data) DescriptorSet 0
                              Decorate 55(data) Binding 0
                              Decorate 297 BuiltIn WorkgroupSize
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypePointer Function 6(int)
               9:             TypePointer Input 6(int)
10(gl_SubGroupInvocationARB):      9(ptr) Variable Input
12(gl_SubGroupSizeARB):      9(ptr) Variable Input
              15:      6(int) Constant 4
              17:             TypeInt 64 0
              18:             TypePointer Function 17(int64_t)
              20:             TypePointer Input 17(int64_t)
21(gl_SubGroupEqMaskARB):     20(ptr) Variable Input
23(gl_SubGroupGeMaskARB):     20(ptr) Variable Input
26(gl_SubGroupGtMaskARB):     20(ptr) Variable Input
29(gl_SubGroupLeMaskARB):     20(ptr) Variable Input
32(gl_SubGroupLtMaskARB):     20(ptr) Variable Input
              36:             TypeBool
              37:    36(bool) ConstantTrue
              38:             TypeVector 6(int) 4
              42:             TypeVector 6(int) 2
              48:             TypeFloat 32
              49:             TypeVector 48(float) 4
              50:             TypeInt 32 1
              51:             TypeVector 50(int) 4
     52(Buffers):             TypeStruct 49(fvec4) 51(ivec4) 38(ivec4)
              53:             TypeArray 52(Buffers) 15
              54:             TypePointer Uniform 53
        55(data):     54(ptr) Variable Uniform
              57:     50(int) Constant 0
              58:      6(int) Constant 0
              59:             TypePointer Uniform 48(float)
              66:     50(int) Constant 1
              67:             TypeVector 48(float) 2
              68:             TypePointer Uniform 49(fvec4)
              82:     50(int) Constant 2
              83:             TypeVector 48(float) 3
              99:     50(int) Constant 3
             114:             TypePointer Uniform 50(int)
             121:             TypeVector 50(int) 2
             122:             TypePointer Uniform 51(ivec4)
             136:             TypeVector 50(int) 3
             166:             TypePointer Uniform 6(int)
             173:             TypePointer Uniform 38(ivec4)
             187:             TypeVector 6(int) 3
             295:      6(int) Constant 8
             296:      6(int) Constant 1
             297:  187(ivec3) ConstantComposite 295 295 296
         4(main):           2 Function None 3
               5:             Label
   8(invocation):      7(ptr) Variable Function
     19(relMask):     18(ptr) Variable Function
              11:      6(int) Load 10(gl_SubGroupInvocationARB)
              13:      6(int) Load 12(gl_SubGroupSizeARB)
              14:      6(int) IAdd 11 13
              16:      6(int) UMod 14 15
                              Store 8(invocation) 16
              22: 17(int64_t) Load 21(gl_SubGroupEqMaskARB)
              24: 17(int64_t) Load 23(gl_SubGroupGeMaskARB)
              25: 17(int64_t) IAdd 22 24
              27: 17(int64_t) Load 26(gl_SubGroupGtMaskARB)
              28: 17(int64_t) IAdd 25 27
              30: 17(int64_t) Load 29(gl_SubGroupLeMaskARB)
              31: 17(int64_t) IAdd 28 30
              33: 17(int64_t) Load 32(gl_SubGroupLtMaskARB)
              34: 17(int64_t) IAdd 31 33
                              Store 19(relMask) 34
              35: 17(int64_t) Load 19(relMask)
              39:   38(ivec4) SubgroupBallotKHR 37
              40:      6(int) CompositeExtract 39 0
              41:      6(int) CompositeExtract 39 1
              43:   42(ivec2) CompositeConstruct 40 41
              44: 17(int64_t) Bitcast 43
              45:    36(bool) IEqual 35 44
                              SelectionMerge 47 None
                              BranchConditional 45 46 216
              46:               Label
              56:      6(int)   Load 8(invocation)
              60:     59(ptr)   AccessChain 55(data) 57 57 58
              61:   48(float)   Load 60
              62:      6(int)   Load 8(invocation)
              63:   48(float)   SubgroupReadInvocationKHR 61 62
              64:     59(ptr)   AccessChain 55(data) 56 57 58
                                Store 64 63
              65:      6(int)   Load 8(invocation)
              69:     68(ptr)   AccessChain 55(data) 66 57
              70:   49(fvec4)   Load 69
              71:   67(fvec2)   VectorShuffle 70 70 0 1
              72:      6(int)   Load 8(invocation)
              73:   48(float)   CompositeExtract 71 0
              74:   48(float)   SubgroupReadInvocationKHR 73 72
              75:   48(float)   CompositeExtract 71 1
              76:   48(float)   SubgroupReadInvocationKHR 75 72
              77:   67(fvec2)   CompositeConstruct 74 76
              78:     68(ptr)   AccessChain 55(data) 65 57
              79:   49(fvec4)   Load 78
              80:   49(fvec4)   VectorShuffle 79 77 4 5 2 3
                                Store 78 80
              81:      6(int)   Load 8(invocation)
              84:     68(ptr)   AccessChain 55(data) 82 57
              85:   49(fvec4)   Load 84
              86:   83(fvec3)   VectorShuffle 85 85 0 1 2
              87:      6(int)   Load 8(invocation)
              88:   48(float)   CompositeExtract 86 0
              89:   48(float)   SubgroupReadInvocationKHR 88 87
              90:   48(float)   CompositeExtract 86 1
              91:   48(float)   SubgroupReadInvocationKHR 90 87
              92:   48(float)   CompositeExtract 86 2
              93:   48(float)   SubgroupReadInvocationKHR 92 87
              94:   83(fvec3)   CompositeConstruct 89 91 93
              95:     68(ptr)   AccessChain 55(data) 81 57
              96:   49(fvec4)   Load 95
              97:   49(fvec4)   VectorShuffle 96 94 4 5 6 3
                                Store 95 97
              98:      6(int)   Load 8(invocation)
             100:     68(ptr)   AccessChain 55(data) 99 57
             101:   49(fvec4)   Load 100
             102:      6(int)   Load 8(invocation)
             103:   48(float)   CompositeExtract 101 0
             104:   48(float)   SubgroupReadInvocationKHR 103 102
             105:   48(float)   CompositeExtract 101 1
             106:   48(float)   SubgroupReadInvocationKHR 105 102
             107:   48(float)   CompositeExtract 101 2
             108:   48(float)   SubgroupReadInvocationKHR 107 102
             109:   48(float)   CompositeExtract 101 3
             110:   48(float)   SubgroupReadInvocationKHR 109 102
             111:   49(fvec4)   CompositeConstruct 104 106 108 110
             112:     68(ptr)   AccessChain 55(data) 98 57
                                Store 112 111
             113:      6(int)   Load 8(invocation)
             115:    114(ptr)   AccessChain 55(data) 57 66 58
             116:     50(int)   Load 115
             117:      6(int)   Load 8(invocation)
             118:     50(int)   SubgroupReadInvocationKHR 116 117
             119:    114(ptr)   AccessChain 55(data) 113 66 58
                                Store 119 118
             120:      6(int)   Load 8(invocation)
             123:    122(ptr)   AccessChain 55(data) 66 66
             124:   51(ivec4)   Load 123
             125:  121(ivec2)   VectorShuffle 124 124 0 1
             126:      6(int)   Load 8(invocation)
             127:     50(int)   CompositeExtract 125 0
             128:     50(int)   SubgroupReadInvocationKHR 127 126
             129:     50(int)   CompositeExtract 125 1
             130:     50(int)   SubgroupReadInvocationKHR 129 126
             131:  121(ivec2)   CompositeConstruct 128 130
             132:    122(ptr)   AccessChain 55(data) 120 66
             133:   51(ivec4)   Load 132
             134:   51(ivec4)   VectorShuffle 133 131 4 5 2 3
                                Store 132 134
             135:      6(int)   Load 8(invocation)
             137:    122(ptr)   AccessChain 55(data) 82 66
             138:   51(ivec4)   Load 137
             139:  136(ivec3)   VectorShuffle 138 138 0 1 2
             140:      6(int)   Load 8(invocation)
             141:     50(int)   CompositeExtract 139 0
             142:     50(int)   SubgroupReadInvocationKHR 141 140
             143:     50(int)   CompositeExtract 139 1
             144:     50(int)   SubgroupReadInvocationKHR 143 140
             145:     50(int)   CompositeExtract 139 2
             146:     50(int)   SubgroupReadInvocationKHR 145 140
             147:  136(ivec3)   CompositeConstruct 142 144 146
             148:    122(ptr)   AccessChain 55(data) 135 66
             149:   51(ivec4)   Load 148
             150:   51(ivec4)   VectorShuffle 149 147 4 5 6 3
                                Store 148 150
             151:      6(int)   Load 8(invocation)
             152:    122(ptr)   AccessChain 55(data) 99 66
             153:   51(ivec4)   Load 152
             154:      6(int)   Load 8(invocation)
             155:     50(int)   CompositeExtract 153 0
             156:     50(int)   SubgroupReadInvocationKHR 155 154
             157:     50(int)   CompositeExtract 153 1
             158:     50(int)   SubgroupReadInvocationKHR 157 154
             159:     50(int)   CompositeExtract 153 2
             160:     50(int)   SubgroupReadInvocationKHR 159 154
             161:     50(int)   CompositeExtract 153 3
             162:     50(int)   SubgroupReadInvocationKHR 161 154
             163:   51(ivec4)   CompositeConstruct 156 158 160 162
             164:    122(ptr)   AccessChain 55(data) 151 66
                                Store 164 163
             165:      6(int)   Load 8(invocation)
             167:    166(ptr)   AccessChain 55(data) 57 82 58
             168:      6(int)   Load 167
             169:      6(int)   Load 8(invocation)
             170:      6(int)   SubgroupReadInvocationKHR 168 169
             171:    166(ptr)   AccessChain 55(data) 165 82 58
                                Store 171 170
             172:      6(int)   Load 8(invocation)
             174:    173(ptr)   AccessChain 55(data) 66 82
             175:   38(ivec4)   Load 174
             176:   42(ivec2)   VectorShuffle 175 175 0 1
             177:      6(int)   Load 8(invocation)
             178:      6(int)   CompositeExtract 176 0
             179:      6(int)   SubgroupReadInvocationKHR 178 177
             180:      6(int)   CompositeExtract 176 1
             181:      6(int)   SubgroupReadInvocationKHR 180 177
             182:   42(ivec2)   CompositeConstruct 179 181
             183:    173(ptr)   AccessChain 55(data) 172 82
             184:   38(ivec4)   Load 183
             185:   38(ivec4)   VectorShuffle 184 182 4 5 2 3
                                Store 183 185
             186:      6(int)   Load 8(invocation)
             188:    173(ptr)   AccessChain 55(data) 82 82
             189:   38(ivec4)   Load 188
             190:  187(ivec3)   VectorShuffle 189 189 0 1 2
             191:      6(int)   Load 8(invocation)
             192:      6(int)   CompositeExtract 190 0
             193:      6(int)   SubgroupReadInvocationKHR 192 191
             194:      6(int)   CompositeExtract 190 1
             195:      6(int)   SubgroupReadInvocationKHR 194 191
             196:      6(int)   CompositeExtract 190 2
             197:      6(int)   SubgroupReadInvocationKHR 196 191
             198:  187(ivec3)   CompositeConstruct 193 195 197
             199:    173(ptr)   AccessChain 55(data) 186 82
             200:   38(ivec4)   Load 199
             201:   38(ivec4)   VectorShuffle 200 198 4 5 6 3
                                Store 199 201
             202:      6(int)   Load 8(invocation)
             203:    173(ptr)   AccessChain 55(data) 99 82
             204:   38(ivec4)   Load 203
             205:      6(int)   Load 8(invocation)
             206:      6(int)   CompositeExtract 204 0
             207:      6(int)   SubgroupReadInvocationKHR 206 205
             208:      6(int)   CompositeExtract 204 1
             209:      6(int)   SubgroupReadInvocationKHR 208 205
             210:      6(int)   CompositeExtract 204 2
             211:      6(int)   SubgroupReadInvocationKHR 210 205
             212:      6(int)   CompositeExtract 204 3
             213:      6(int)   SubgroupReadInvocationKHR 212 205
             214:   38(ivec4)   CompositeConstruct 207 209 211 213
             215:    173(ptr)   AccessChain 55(data) 202 82
                                Store 215 214
                                Branch 47
             216:               Label
             217:      6(int)   Load 8(invocation)
             218:     59(ptr)   AccessChain 55(data) 57 57 58
             219:   48(float)   Load 218
             220:   48(float)   SubgroupFirstInvocationKHR 219
             221:     59(ptr)   AccessChain 55(data) 217 57 58
                                Store 221 220
             222:      6(int)   Load 8(invocation)
             223:     68(ptr)   AccessChain 55(data) 66 57
             224:   49(fvec4)   Load 223
             225:   67(fvec2)   VectorShuffle 224 224 0 1
             226:   67(fvec2)   SubgroupFirstInvocationKHR 225
             227:     68(ptr)   AccessChain 55(data) 222 57
             228:   49(fvec4)   Load 227
             229:   49(fvec4)   VectorShuffle 228 226 4 5 2 3
                                Store 227 229
             230:      6(int)   Load 8(invocation)
             231:     68(ptr)   AccessChain 55(data) 82 57
             232:   49(fvec4)   Load 231
             233:   83(fvec3)   VectorShuffle 232 232 0 1 2
             234:   83(fvec3)   SubgroupFirstInvocationKHR 233
             235:     68(ptr)   AccessChain 55(data) 230 57
             236:   49(fvec4)   Load 235
             237:   49(fvec4)   VectorShuffle 236 234 4 5 6 3
                                Store 235 237
             238:      6(int)   Load 8(invocation)
             239:     68(ptr)   AccessChain 55(data) 99 57
             240:   49(fvec4)   Load 239
             241:   49(fvec4)   SubgroupFirstInvocationKHR 240
             242:     68(ptr)   AccessChain 55(data) 238 57
                                Store 242 241
             243:      6(int)   Load 8(invocation)
             244:    114(ptr)   AccessChain 55(data) 57 66 58
             245:     50(int)   Load 244
             246:     50(int)   SubgroupFirstInvocationKHR 245
             247:    114(ptr)   AccessChain 55(data) 243 66 58
                                Store 247 246
             248:      6(int)   Load 8(invocation)
             249:    122(ptr)   AccessChain 55(data) 66 66
             250:   51(ivec4)   Load 249
             251:  121(ivec2)   VectorShuffle 250 250 0 1
             252:  121(ivec2)   SubgroupFirstInvocationKHR 251
             253:    122(ptr)   AccessChain 55(data) 248 66
             254:   51(ivec4)   Load 253
             255:   51(ivec4)   VectorShuffle 254 252 4 5 2 3
                                Store 253 255
             256:      6(int)   Load 8(invocation)
             257:    122(ptr)   AccessChain 55(data) 82 66
             258:   51(ivec4)   Load 257
             259:  136(ivec3)   VectorShuffle 258 258 0 1 2
             260:  136(ivec3)   SubgroupFirstInvocationKHR 259
             261:    122(ptr)   AccessChain 55(data) 256 66
             262:   51(ivec4)   Load 261
             263:   51(ivec4)   VectorShuffle 262 260 4 5 6 3
                                Store 261 263
             264:      6(int)   Load 8(invocation)
             265:    122(ptr)   AccessChain 55(data) 99 66
             266:   51(ivec4)   Load 265
             267:   51(ivec4)   SubgroupFirstInvocationKHR 266
             268:    122(ptr)   AccessChain 55(data) 264 66
                                Store 268 267
             269:      6(int)   Load 8(invocation)
             270:    166(ptr)   AccessChain 55(data) 57 82 58
             271:      6(int)   Load 270
             272:      6(int)   SubgroupFirstInvocationKHR 271
             273:    166(ptr)   AccessChain 55(data) 269 82 58
                                Store 273 272
             274:      6(int)   Load 8(invocation)
             275:    173(ptr)   AccessChain 55(data) 66 82
             276:   38(ivec4)   Load 275
             277:   42(ivec2)   VectorShuffle 276 276 0 1
             278:   42(ivec2)   SubgroupFirstInvocationKHR 277
             279:    173(ptr)   AccessChain 55(data) 274 82
             280:   38(ivec4)   Load 279
             281:   38(ivec4)   VectorShuffle 280 278 4 5 2 3
                                Store 279 281
             282:      6(int)   Load 8(invocation)
             283:    173(ptr)   AccessChain 55(data) 82 82
             284:   38(ivec4)   Load 283
             285:  187(ivec3)   VectorShuffle 284 284 0 1 2
             286:  187(ivec3)   SubgroupFirstInvocationKHR 285
             287:    173(ptr)   AccessChain 55(data) 282 82
             288:   38(ivec4)   Load 287
             289:   38(ivec4)   VectorShuffle 288 286 4 5 6 3
                                Store 287 289
             290:      6(int)   Load 8(invocation)
             291:    173(ptr)   AccessChain 55(data) 99 82
             292:   38(ivec4)   Load 291
             293:   38(ivec4)   SubgroupFirstInvocationKHR 292
             294:    173(ptr)   AccessChain 55(data) 290 82
                                Store 294 293
                                Branch 47
              47:             Label
                              Return
                              FunctionEnd
