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

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