spv.shaderBallot.comp
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.

// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 299

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