blob: 6fde1f938b055cac8eb21b9d90e07e784f888b1d [file] [log] [blame]
spv.subgroupExtendedTypesVote.comp
// Module Version 10300
// Generated by (magic number): 8000a
// Id's are bound by 277
Capability Shader
Capability Float16
Capability Int64
Capability Int16
Capability Int8
Capability GroupNonUniform
Capability GroupNonUniformVote
Capability StorageUniformBufferBlock16
Capability StorageBuffer8BitAccess
Extension "SPV_KHR_8bit_storage"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 10 12
ExecutionMode 4 LocalSize 8 1 1
Source GLSL 450
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
SourceExtension "GL_EXT_shader_subgroup_extended_types_float16"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int16"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int64"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int8"
SourceExtension "GL_KHR_shader_subgroup_basic"
SourceExtension "GL_KHR_shader_subgroup_vote"
Name 4 "main"
Name 8 "invocation"
Name 10 "gl_SubgroupInvocationID"
Name 12 "gl_SubgroupSize"
Name 32 "Buffers"
MemberName 32(Buffers) 0 "i8"
MemberName 32(Buffers) 1 "u8"
MemberName 32(Buffers) 2 "i16"
MemberName 32(Buffers) 3 "u16"
MemberName 32(Buffers) 4 "i64"
MemberName 32(Buffers) 5 "u64"
MemberName 32(Buffers) 6 "f16"
MemberName 32(Buffers) 7 "r"
Name 35 "data"
Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 11 RelaxedPrecision
Decorate 12(gl_SubgroupSize) RelaxedPrecision
Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
Decorate 13 RelaxedPrecision
Decorate 14 RelaxedPrecision
Decorate 16 RelaxedPrecision
MemberDecorate 32(Buffers) 0 Offset 0
MemberDecorate 32(Buffers) 1 Offset 4
MemberDecorate 32(Buffers) 2 Offset 8
MemberDecorate 32(Buffers) 3 Offset 16
MemberDecorate 32(Buffers) 4 Offset 32
MemberDecorate 32(Buffers) 5 Offset 64
MemberDecorate 32(Buffers) 6 Offset 96
MemberDecorate 32(Buffers) 7 Offset 104
Decorate 32(Buffers) Block
Decorate 35(data) DescriptorSet 0
Decorate 35(data) Binding 0
Decorate 276 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypePointer Function 6(int)
9: TypePointer Input 6(int)
10(gl_SubgroupInvocationID): 9(ptr) Variable Input
12(gl_SubgroupSize): 9(ptr) Variable Input
15: 6(int) Constant 4
17: TypeInt 8 1
18: TypeVector 17(int8_t) 4
19: TypeInt 8 0
20: TypeVector 19(int8_t) 4
21: TypeInt 16 1
22: TypeVector 21(int16_t) 4
23: TypeInt 16 0
24: TypeVector 23(int16_t) 4
25: TypeInt 64 1
26: TypeVector 25(int64_t) 4
27: TypeInt 64 0
28: TypeVector 27(int64_t) 4
29: TypeFloat 16
30: TypeVector 29(float16_t) 4
31: TypeInt 32 1
32(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4) 31(int)
33: TypeArray 32(Buffers) 15
34: TypePointer StorageBuffer 33
35(data): 34(ptr) Variable StorageBuffer
37: 31(int) Constant 7
38: TypePointer StorageBuffer 31(int)
41: 31(int) Constant 0
42: TypeBool
44: 6(int) Constant 3
49: 6(int) Constant 0
50: TypePointer StorageBuffer 17(int8_t)
54: 31(int) Constant 1
58: TypeVector 17(int8_t) 2
59: TypePointer StorageBuffer 18(i8vec4)
67: 31(int) Constant 2
68: TypeVector 17(int8_t) 3
76: 31(int) Constant 3
83: TypePointer StorageBuffer 19(int8_t)
90: TypeVector 19(int8_t) 2
91: TypePointer StorageBuffer 20(i8vec4)
99: TypeVector 19(int8_t) 3
113: TypePointer StorageBuffer 21(int16_t)
120: TypeVector 21(int16_t) 2
121: TypePointer StorageBuffer 22(i16vec4)
129: TypeVector 21(int16_t) 3
143: TypePointer StorageBuffer 23(int16_t)
150: TypeVector 23(int16_t) 2
151: TypePointer StorageBuffer 24(i16vec4)
159: TypeVector 23(int16_t) 3
181: 31(int) Constant 4
182: TypePointer StorageBuffer 25(int64_t)
189: TypeVector 25(int64_t) 2
190: TypePointer StorageBuffer 26(i64vec4)
198: TypeVector 25(int64_t) 3
212: 31(int) Constant 5
213: TypePointer StorageBuffer 27(int64_t)
220: TypeVector 27(int64_t) 2
221: TypePointer StorageBuffer 28(i64vec4)
229: TypeVector 27(int64_t) 3
243: 31(int) Constant 6
244: TypePointer StorageBuffer 29(float16_t)
251: TypeVector 29(float16_t) 2
252: TypePointer StorageBuffer 30(f16vec4)
260: TypeVector 29(float16_t) 3
273: TypeVector 6(int) 3
274: 6(int) Constant 8
275: 6(int) Constant 1
276: 273(ivec3) ConstantComposite 274 275 275
4(main): 2 Function None 3
5: Label
8(invocation): 7(ptr) Variable Function
11: 6(int) Load 10(gl_SubgroupInvocationID)
13: 6(int) Load 12(gl_SubgroupSize)
14: 6(int) IAdd 11 13
16: 6(int) UMod 14 15
Store 8(invocation) 16
36: 6(int) Load 8(invocation)
39: 38(ptr) AccessChain 35(data) 36 37
40: 31(int) Load 39
43: 42(bool) SLessThan 40 41
45: 42(bool) GroupNonUniformAll 44 43
SelectionMerge 47 None
BranchConditional 45 46 172
46: Label
48: 6(int) Load 8(invocation)
51: 50(ptr) AccessChain 35(data) 41 41 49
52: 17(int8_t) Load 51
53: 42(bool) GroupNonUniformAllEqual 44 52
55: 31(int) Select 53 54 41
56: 38(ptr) AccessChain 35(data) 48 37
Store 56 55
57: 6(int) Load 8(invocation)
60: 59(ptr) AccessChain 35(data) 54 41
61: 18(i8vec4) Load 60
62: 58(i8vec2) VectorShuffle 61 61 0 1
63: 42(bool) GroupNonUniformAllEqual 44 62
64: 31(int) Select 63 54 41
65: 38(ptr) AccessChain 35(data) 57 37
Store 65 64
66: 6(int) Load 8(invocation)
69: 59(ptr) AccessChain 35(data) 67 41
70: 18(i8vec4) Load 69
71: 68(i8vec3) VectorShuffle 70 70 0 1 2
72: 42(bool) GroupNonUniformAllEqual 44 71
73: 31(int) Select 72 54 41
74: 38(ptr) AccessChain 35(data) 66 37
Store 74 73
75: 6(int) Load 8(invocation)
77: 59(ptr) AccessChain 35(data) 76 41
78: 18(i8vec4) Load 77
79: 42(bool) GroupNonUniformAllEqual 44 78
80: 31(int) Select 79 54 41
81: 38(ptr) AccessChain 35(data) 75 37
Store 81 80
82: 6(int) Load 8(invocation)
84: 83(ptr) AccessChain 35(data) 41 54 49
85: 19(int8_t) Load 84
86: 42(bool) GroupNonUniformAllEqual 44 85
87: 31(int) Select 86 54 41
88: 38(ptr) AccessChain 35(data) 82 37
Store 88 87
89: 6(int) Load 8(invocation)
92: 91(ptr) AccessChain 35(data) 54 54
93: 20(i8vec4) Load 92
94: 90(i8vec2) VectorShuffle 93 93 0 1
95: 42(bool) GroupNonUniformAllEqual 44 94
96: 31(int) Select 95 54 41
97: 38(ptr) AccessChain 35(data) 89 37
Store 97 96
98: 6(int) Load 8(invocation)
100: 91(ptr) AccessChain 35(data) 67 54
101: 20(i8vec4) Load 100
102: 99(i8vec3) VectorShuffle 101 101 0 1 2
103: 42(bool) GroupNonUniformAllEqual 44 102
104: 31(int) Select 103 54 41
105: 38(ptr) AccessChain 35(data) 98 37
Store 105 104
106: 6(int) Load 8(invocation)
107: 91(ptr) AccessChain 35(data) 76 54
108: 20(i8vec4) Load 107
109: 42(bool) GroupNonUniformAllEqual 44 108
110: 31(int) Select 109 54 41
111: 38(ptr) AccessChain 35(data) 106 37
Store 111 110
112: 6(int) Load 8(invocation)
114: 113(ptr) AccessChain 35(data) 41 67 49
115: 21(int16_t) Load 114
116: 42(bool) GroupNonUniformAllEqual 44 115
117: 31(int) Select 116 54 41
118: 38(ptr) AccessChain 35(data) 112 37
Store 118 117
119: 6(int) Load 8(invocation)
122: 121(ptr) AccessChain 35(data) 54 67
123: 22(i16vec4) Load 122
124:120(i16vec2) VectorShuffle 123 123 0 1
125: 42(bool) GroupNonUniformAllEqual 44 124
126: 31(int) Select 125 54 41
127: 38(ptr) AccessChain 35(data) 119 37
Store 127 126
128: 6(int) Load 8(invocation)
130: 121(ptr) AccessChain 35(data) 67 67
131: 22(i16vec4) Load 130
132:129(i16vec3) VectorShuffle 131 131 0 1 2
133: 42(bool) GroupNonUniformAllEqual 44 132
134: 31(int) Select 133 54 41
135: 38(ptr) AccessChain 35(data) 128 37
Store 135 134
136: 6(int) Load 8(invocation)
137: 121(ptr) AccessChain 35(data) 76 67
138: 22(i16vec4) Load 137
139: 42(bool) GroupNonUniformAllEqual 44 138
140: 31(int) Select 139 54 41
141: 38(ptr) AccessChain 35(data) 136 37
Store 141 140
142: 6(int) Load 8(invocation)
144: 143(ptr) AccessChain 35(data) 41 76 49
145: 23(int16_t) Load 144
146: 42(bool) GroupNonUniformAllEqual 44 145
147: 31(int) Select 146 54 41
148: 38(ptr) AccessChain 35(data) 142 37
Store 148 147
149: 6(int) Load 8(invocation)
152: 151(ptr) AccessChain 35(data) 54 76
153: 24(i16vec4) Load 152
154:150(i16vec2) VectorShuffle 153 153 0 1
155: 42(bool) GroupNonUniformAllEqual 44 154
156: 31(int) Select 155 54 41
157: 38(ptr) AccessChain 35(data) 149 37
Store 157 156
158: 6(int) Load 8(invocation)
160: 151(ptr) AccessChain 35(data) 67 76
161: 24(i16vec4) Load 160
162:159(i16vec3) VectorShuffle 161 161 0 1 2
163: 42(bool) GroupNonUniformAllEqual 44 162
164: 31(int) Select 163 54 41
165: 38(ptr) AccessChain 35(data) 158 37
Store 165 164
166: 6(int) Load 8(invocation)
167: 151(ptr) AccessChain 35(data) 76 76
168: 24(i16vec4) Load 167
169: 42(bool) GroupNonUniformAllEqual 44 168
170: 31(int) Select 169 54 41
171: 38(ptr) AccessChain 35(data) 166 37
Store 171 170
Branch 47
172: Label
173: 6(int) Load 8(invocation)
174: 38(ptr) AccessChain 35(data) 173 37
175: 31(int) Load 174
176: 42(bool) SLessThan 175 41
177: 42(bool) GroupNonUniformAny 44 176
SelectionMerge 179 None
BranchConditional 177 178 179
178: Label
180: 6(int) Load 8(invocation)
183: 182(ptr) AccessChain 35(data) 41 181 49
184: 25(int64_t) Load 183
185: 42(bool) GroupNonUniformAllEqual 44 184
186: 31(int) Select 185 54 41
187: 38(ptr) AccessChain 35(data) 180 37
Store 187 186
188: 6(int) Load 8(invocation)
191: 190(ptr) AccessChain 35(data) 54 181
192: 26(i64vec4) Load 191
193:189(i64vec2) VectorShuffle 192 192 0 1
194: 42(bool) GroupNonUniformAllEqual 44 193
195: 31(int) Select 194 54 41
196: 38(ptr) AccessChain 35(data) 188 37
Store 196 195
197: 6(int) Load 8(invocation)
199: 190(ptr) AccessChain 35(data) 67 181
200: 26(i64vec4) Load 199
201:198(i64vec3) VectorShuffle 200 200 0 1 2
202: 42(bool) GroupNonUniformAllEqual 44 201
203: 31(int) Select 202 54 41
204: 38(ptr) AccessChain 35(data) 197 37
Store 204 203
205: 6(int) Load 8(invocation)
206: 190(ptr) AccessChain 35(data) 76 181
207: 26(i64vec4) Load 206
208: 42(bool) GroupNonUniformAllEqual 44 207
209: 31(int) Select 208 54 41
210: 38(ptr) AccessChain 35(data) 205 37
Store 210 209
211: 6(int) Load 8(invocation)
214: 213(ptr) AccessChain 35(data) 41 212 49
215: 27(int64_t) Load 214
216: 42(bool) GroupNonUniformAllEqual 44 215
217: 31(int) Select 216 54 41
218: 38(ptr) AccessChain 35(data) 211 37
Store 218 217
219: 6(int) Load 8(invocation)
222: 221(ptr) AccessChain 35(data) 54 212
223: 28(i64vec4) Load 222
224:220(i64vec2) VectorShuffle 223 223 0 1
225: 42(bool) GroupNonUniformAllEqual 44 224
226: 31(int) Select 225 54 41
227: 38(ptr) AccessChain 35(data) 219 37
Store 227 226
228: 6(int) Load 8(invocation)
230: 221(ptr) AccessChain 35(data) 67 212
231: 28(i64vec4) Load 230
232:229(i64vec3) VectorShuffle 231 231 0 1 2
233: 42(bool) GroupNonUniformAllEqual 44 232
234: 31(int) Select 233 54 41
235: 38(ptr) AccessChain 35(data) 228 37
Store 235 234
236: 6(int) Load 8(invocation)
237: 221(ptr) AccessChain 35(data) 76 212
238: 28(i64vec4) Load 237
239: 42(bool) GroupNonUniformAllEqual 44 238
240: 31(int) Select 239 54 41
241: 38(ptr) AccessChain 35(data) 236 37
Store 241 240
242: 6(int) Load 8(invocation)
245: 244(ptr) AccessChain 35(data) 41 243 49
246:29(float16_t) Load 245
247: 42(bool) GroupNonUniformAllEqual 44 246
248: 31(int) Select 247 54 41
249: 38(ptr) AccessChain 35(data) 242 37
Store 249 248
250: 6(int) Load 8(invocation)
253: 252(ptr) AccessChain 35(data) 54 243
254: 30(f16vec4) Load 253
255:251(f16vec2) VectorShuffle 254 254 0 1
256: 42(bool) GroupNonUniformAllEqual 44 255
257: 31(int) Select 256 54 41
258: 38(ptr) AccessChain 35(data) 250 37
Store 258 257
259: 6(int) Load 8(invocation)
261: 252(ptr) AccessChain 35(data) 67 243
262: 30(f16vec4) Load 261
263:260(f16vec3) VectorShuffle 262 262 0 1 2
264: 42(bool) GroupNonUniformAllEqual 44 263
265: 31(int) Select 264 54 41
266: 38(ptr) AccessChain 35(data) 259 37
Store 266 265
267: 6(int) Load 8(invocation)
268: 252(ptr) AccessChain 35(data) 76 243
269: 30(f16vec4) Load 268
270: 42(bool) GroupNonUniformAllEqual 44 269
271: 31(int) Select 270 54 41
272: 38(ptr) AccessChain 35(data) 267 37
Store 272 271
Branch 179
179: Label
Branch 47
47: Label
Return
FunctionEnd