1 spv.subgroupExtendedTypesVote.comp
2 // Module Version 10300
3 // Generated by (magic number): 8000a
4 // Id's are bound by 277
11 Capability GroupNonUniform
12 Capability GroupNonUniformVote
13 Capability StorageUniformBufferBlock16
14 Capability StorageBuffer8BitAccess
15 Extension "SPV_KHR_8bit_storage"
16 1: ExtInstImport "GLSL.std.450"
17 MemoryModel Logical GLSL450
18 EntryPoint GLCompute 4 "main" 10 12
19 ExecutionMode 4 LocalSize 8 1 1
21 SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
22 SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
23 SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
24 SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
25 SourceExtension "GL_EXT_shader_subgroup_extended_types_float16"
26 SourceExtension "GL_EXT_shader_subgroup_extended_types_int16"
27 SourceExtension "GL_EXT_shader_subgroup_extended_types_int64"
28 SourceExtension "GL_EXT_shader_subgroup_extended_types_int8"
29 SourceExtension "GL_KHR_shader_subgroup_basic"
30 SourceExtension "GL_KHR_shader_subgroup_vote"
33 Name 10 "gl_SubgroupInvocationID"
34 Name 12 "gl_SubgroupSize"
36 MemberName 32(Buffers) 0 "i8"
37 MemberName 32(Buffers) 1 "u8"
38 MemberName 32(Buffers) 2 "i16"
39 MemberName 32(Buffers) 3 "u16"
40 MemberName 32(Buffers) 4 "i64"
41 MemberName 32(Buffers) 5 "u64"
42 MemberName 32(Buffers) 6 "f16"
43 MemberName 32(Buffers) 7 "r"
45 Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
46 Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
47 Decorate 11 RelaxedPrecision
48 Decorate 12(gl_SubgroupSize) RelaxedPrecision
49 Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
50 Decorate 13 RelaxedPrecision
51 Decorate 14 RelaxedPrecision
52 Decorate 16 RelaxedPrecision
53 MemberDecorate 32(Buffers) 0 Offset 0
54 MemberDecorate 32(Buffers) 1 Offset 4
55 MemberDecorate 32(Buffers) 2 Offset 8
56 MemberDecorate 32(Buffers) 3 Offset 16
57 MemberDecorate 32(Buffers) 4 Offset 32
58 MemberDecorate 32(Buffers) 5 Offset 64
59 MemberDecorate 32(Buffers) 6 Offset 96
60 MemberDecorate 32(Buffers) 7 Offset 104
61 Decorate 32(Buffers) Block
62 Decorate 35(data) DescriptorSet 0
63 Decorate 35(data) Binding 0
64 Decorate 276 BuiltIn WorkgroupSize
68 7: TypePointer Function 6(int)
69 9: TypePointer Input 6(int)
70 10(gl_SubgroupInvocationID): 9(ptr) Variable Input
71 12(gl_SubgroupSize): 9(ptr) Variable Input
74 18: TypeVector 17(int8_t) 4
76 20: TypeVector 19(int8_t) 4
78 22: TypeVector 21(int16_t) 4
80 24: TypeVector 23(int16_t) 4
82 26: TypeVector 25(int64_t) 4
84 28: TypeVector 27(int64_t) 4
86 30: TypeVector 29(float16_t) 4
88 32(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4) 31(int)
89 33: TypeArray 32(Buffers) 15
90 34: TypePointer StorageBuffer 33
91 35(data): 34(ptr) Variable StorageBuffer
92 37: 31(int) Constant 7
93 38: TypePointer StorageBuffer 31(int)
94 41: 31(int) Constant 0
98 50: TypePointer StorageBuffer 17(int8_t)
99 54: 31(int) Constant 1
100 58: TypeVector 17(int8_t) 2
101 59: TypePointer StorageBuffer 18(i8vec4)
102 67: 31(int) Constant 2
103 68: TypeVector 17(int8_t) 3
104 76: 31(int) Constant 3
105 83: TypePointer StorageBuffer 19(int8_t)
106 90: TypeVector 19(int8_t) 2
107 91: TypePointer StorageBuffer 20(i8vec4)
108 99: TypeVector 19(int8_t) 3
109 113: TypePointer StorageBuffer 21(int16_t)
110 120: TypeVector 21(int16_t) 2
111 121: TypePointer StorageBuffer 22(i16vec4)
112 129: TypeVector 21(int16_t) 3
113 143: TypePointer StorageBuffer 23(int16_t)
114 150: TypeVector 23(int16_t) 2
115 151: TypePointer StorageBuffer 24(i16vec4)
116 159: TypeVector 23(int16_t) 3
117 181: 31(int) Constant 4
118 182: TypePointer StorageBuffer 25(int64_t)
119 189: TypeVector 25(int64_t) 2
120 190: TypePointer StorageBuffer 26(i64vec4)
121 198: TypeVector 25(int64_t) 3
122 212: 31(int) Constant 5
123 213: TypePointer StorageBuffer 27(int64_t)
124 220: TypeVector 27(int64_t) 2
125 221: TypePointer StorageBuffer 28(i64vec4)
126 229: TypeVector 27(int64_t) 3
127 243: 31(int) Constant 6
128 244: TypePointer StorageBuffer 29(float16_t)
129 251: TypeVector 29(float16_t) 2
130 252: TypePointer StorageBuffer 30(f16vec4)
131 260: TypeVector 29(float16_t) 3
132 273: TypeVector 6(int) 3
133 274: 6(int) Constant 8
134 275: 6(int) Constant 1
135 276: 273(ivec3) ConstantComposite 274 275 275
136 4(main): 2 Function None 3
138 8(invocation): 7(ptr) Variable Function
139 11: 6(int) Load 10(gl_SubgroupInvocationID)
140 13: 6(int) Load 12(gl_SubgroupSize)
141 14: 6(int) IAdd 11 13
142 16: 6(int) UMod 14 15
143 Store 8(invocation) 16
144 36: 6(int) Load 8(invocation)
145 39: 38(ptr) AccessChain 35(data) 36 37
147 43: 42(bool) SLessThan 40 41
148 45: 42(bool) GroupNonUniformAll 44 43
149 SelectionMerge 47 None
150 BranchConditional 45 46 172
152 48: 6(int) Load 8(invocation)
153 51: 50(ptr) AccessChain 35(data) 41 41 49
154 52: 17(int8_t) Load 51
155 53: 42(bool) GroupNonUniformAllEqual 44 52
156 55: 31(int) Select 53 54 41
157 56: 38(ptr) AccessChain 35(data) 48 37
159 57: 6(int) Load 8(invocation)
160 60: 59(ptr) AccessChain 35(data) 54 41
161 61: 18(i8vec4) Load 60
162 62: 58(i8vec2) VectorShuffle 61 61 0 1
163 63: 42(bool) GroupNonUniformAllEqual 44 62
164 64: 31(int) Select 63 54 41
165 65: 38(ptr) AccessChain 35(data) 57 37
167 66: 6(int) Load 8(invocation)
168 69: 59(ptr) AccessChain 35(data) 67 41
169 70: 18(i8vec4) Load 69
170 71: 68(i8vec3) VectorShuffle 70 70 0 1 2
171 72: 42(bool) GroupNonUniformAllEqual 44 71
172 73: 31(int) Select 72 54 41
173 74: 38(ptr) AccessChain 35(data) 66 37
175 75: 6(int) Load 8(invocation)
176 77: 59(ptr) AccessChain 35(data) 76 41
177 78: 18(i8vec4) Load 77
178 79: 42(bool) GroupNonUniformAllEqual 44 78
179 80: 31(int) Select 79 54 41
180 81: 38(ptr) AccessChain 35(data) 75 37
182 82: 6(int) Load 8(invocation)
183 84: 83(ptr) AccessChain 35(data) 41 54 49
184 85: 19(int8_t) Load 84
185 86: 42(bool) GroupNonUniformAllEqual 44 85
186 87: 31(int) Select 86 54 41
187 88: 38(ptr) AccessChain 35(data) 82 37
189 89: 6(int) Load 8(invocation)
190 92: 91(ptr) AccessChain 35(data) 54 54
191 93: 20(i8vec4) Load 92
192 94: 90(i8vec2) VectorShuffle 93 93 0 1
193 95: 42(bool) GroupNonUniformAllEqual 44 94
194 96: 31(int) Select 95 54 41
195 97: 38(ptr) AccessChain 35(data) 89 37
197 98: 6(int) Load 8(invocation)
198 100: 91(ptr) AccessChain 35(data) 67 54
199 101: 20(i8vec4) Load 100
200 102: 99(i8vec3) VectorShuffle 101 101 0 1 2
201 103: 42(bool) GroupNonUniformAllEqual 44 102
202 104: 31(int) Select 103 54 41
203 105: 38(ptr) AccessChain 35(data) 98 37
205 106: 6(int) Load 8(invocation)
206 107: 91(ptr) AccessChain 35(data) 76 54
207 108: 20(i8vec4) Load 107
208 109: 42(bool) GroupNonUniformAllEqual 44 108
209 110: 31(int) Select 109 54 41
210 111: 38(ptr) AccessChain 35(data) 106 37
212 112: 6(int) Load 8(invocation)
213 114: 113(ptr) AccessChain 35(data) 41 67 49
214 115: 21(int16_t) Load 114
215 116: 42(bool) GroupNonUniformAllEqual 44 115
216 117: 31(int) Select 116 54 41
217 118: 38(ptr) AccessChain 35(data) 112 37
219 119: 6(int) Load 8(invocation)
220 122: 121(ptr) AccessChain 35(data) 54 67
221 123: 22(i16vec4) Load 122
222 124:120(i16vec2) VectorShuffle 123 123 0 1
223 125: 42(bool) GroupNonUniformAllEqual 44 124
224 126: 31(int) Select 125 54 41
225 127: 38(ptr) AccessChain 35(data) 119 37
227 128: 6(int) Load 8(invocation)
228 130: 121(ptr) AccessChain 35(data) 67 67
229 131: 22(i16vec4) Load 130
230 132:129(i16vec3) VectorShuffle 131 131 0 1 2
231 133: 42(bool) GroupNonUniformAllEqual 44 132
232 134: 31(int) Select 133 54 41
233 135: 38(ptr) AccessChain 35(data) 128 37
235 136: 6(int) Load 8(invocation)
236 137: 121(ptr) AccessChain 35(data) 76 67
237 138: 22(i16vec4) Load 137
238 139: 42(bool) GroupNonUniformAllEqual 44 138
239 140: 31(int) Select 139 54 41
240 141: 38(ptr) AccessChain 35(data) 136 37
242 142: 6(int) Load 8(invocation)
243 144: 143(ptr) AccessChain 35(data) 41 76 49
244 145: 23(int16_t) Load 144
245 146: 42(bool) GroupNonUniformAllEqual 44 145
246 147: 31(int) Select 146 54 41
247 148: 38(ptr) AccessChain 35(data) 142 37
249 149: 6(int) Load 8(invocation)
250 152: 151(ptr) AccessChain 35(data) 54 76
251 153: 24(i16vec4) Load 152
252 154:150(i16vec2) VectorShuffle 153 153 0 1
253 155: 42(bool) GroupNonUniformAllEqual 44 154
254 156: 31(int) Select 155 54 41
255 157: 38(ptr) AccessChain 35(data) 149 37
257 158: 6(int) Load 8(invocation)
258 160: 151(ptr) AccessChain 35(data) 67 76
259 161: 24(i16vec4) Load 160
260 162:159(i16vec3) VectorShuffle 161 161 0 1 2
261 163: 42(bool) GroupNonUniformAllEqual 44 162
262 164: 31(int) Select 163 54 41
263 165: 38(ptr) AccessChain 35(data) 158 37
265 166: 6(int) Load 8(invocation)
266 167: 151(ptr) AccessChain 35(data) 76 76
267 168: 24(i16vec4) Load 167
268 169: 42(bool) GroupNonUniformAllEqual 44 168
269 170: 31(int) Select 169 54 41
270 171: 38(ptr) AccessChain 35(data) 166 37
274 173: 6(int) Load 8(invocation)
275 174: 38(ptr) AccessChain 35(data) 173 37
276 175: 31(int) Load 174
277 176: 42(bool) SLessThan 175 41
278 177: 42(bool) GroupNonUniformAny 44 176
279 SelectionMerge 179 None
280 BranchConditional 177 178 179
282 180: 6(int) Load 8(invocation)
283 183: 182(ptr) AccessChain 35(data) 41 181 49
284 184: 25(int64_t) Load 183
285 185: 42(bool) GroupNonUniformAllEqual 44 184
286 186: 31(int) Select 185 54 41
287 187: 38(ptr) AccessChain 35(data) 180 37
289 188: 6(int) Load 8(invocation)
290 191: 190(ptr) AccessChain 35(data) 54 181
291 192: 26(i64vec4) Load 191
292 193:189(i64vec2) VectorShuffle 192 192 0 1
293 194: 42(bool) GroupNonUniformAllEqual 44 193
294 195: 31(int) Select 194 54 41
295 196: 38(ptr) AccessChain 35(data) 188 37
297 197: 6(int) Load 8(invocation)
298 199: 190(ptr) AccessChain 35(data) 67 181
299 200: 26(i64vec4) Load 199
300 201:198(i64vec3) VectorShuffle 200 200 0 1 2
301 202: 42(bool) GroupNonUniformAllEqual 44 201
302 203: 31(int) Select 202 54 41
303 204: 38(ptr) AccessChain 35(data) 197 37
305 205: 6(int) Load 8(invocation)
306 206: 190(ptr) AccessChain 35(data) 76 181
307 207: 26(i64vec4) Load 206
308 208: 42(bool) GroupNonUniformAllEqual 44 207
309 209: 31(int) Select 208 54 41
310 210: 38(ptr) AccessChain 35(data) 205 37
312 211: 6(int) Load 8(invocation)
313 214: 213(ptr) AccessChain 35(data) 41 212 49
314 215: 27(int64_t) Load 214
315 216: 42(bool) GroupNonUniformAllEqual 44 215
316 217: 31(int) Select 216 54 41
317 218: 38(ptr) AccessChain 35(data) 211 37
319 219: 6(int) Load 8(invocation)
320 222: 221(ptr) AccessChain 35(data) 54 212
321 223: 28(i64vec4) Load 222
322 224:220(i64vec2) VectorShuffle 223 223 0 1
323 225: 42(bool) GroupNonUniformAllEqual 44 224
324 226: 31(int) Select 225 54 41
325 227: 38(ptr) AccessChain 35(data) 219 37
327 228: 6(int) Load 8(invocation)
328 230: 221(ptr) AccessChain 35(data) 67 212
329 231: 28(i64vec4) Load 230
330 232:229(i64vec3) VectorShuffle 231 231 0 1 2
331 233: 42(bool) GroupNonUniformAllEqual 44 232
332 234: 31(int) Select 233 54 41
333 235: 38(ptr) AccessChain 35(data) 228 37
335 236: 6(int) Load 8(invocation)
336 237: 221(ptr) AccessChain 35(data) 76 212
337 238: 28(i64vec4) Load 237
338 239: 42(bool) GroupNonUniformAllEqual 44 238
339 240: 31(int) Select 239 54 41
340 241: 38(ptr) AccessChain 35(data) 236 37
342 242: 6(int) Load 8(invocation)
343 245: 244(ptr) AccessChain 35(data) 41 243 49
344 246:29(float16_t) Load 245
345 247: 42(bool) GroupNonUniformAllEqual 44 246
346 248: 31(int) Select 247 54 41
347 249: 38(ptr) AccessChain 35(data) 242 37
349 250: 6(int) Load 8(invocation)
350 253: 252(ptr) AccessChain 35(data) 54 243
351 254: 30(f16vec4) Load 253
352 255:251(f16vec2) VectorShuffle 254 254 0 1
353 256: 42(bool) GroupNonUniformAllEqual 44 255
354 257: 31(int) Select 256 54 41
355 258: 38(ptr) AccessChain 35(data) 250 37
357 259: 6(int) Load 8(invocation)
358 261: 252(ptr) AccessChain 35(data) 67 243
359 262: 30(f16vec4) Load 261
360 263:260(f16vec3) VectorShuffle 262 262 0 1 2
361 264: 42(bool) GroupNonUniformAllEqual 44 263
362 265: 31(int) Select 264 54 41
363 266: 38(ptr) AccessChain 35(data) 259 37
365 267: 6(int) Load 8(invocation)
366 268: 252(ptr) AccessChain 35(data) 76 243
367 269: 30(f16vec4) Load 268
368 270: 42(bool) GroupNonUniformAllEqual 44 269
369 271: 31(int) Select 270 54 41
370 272: 38(ptr) AccessChain 35(data) 267 37