blob: 45eb4b8d8c0da2697efeda92ce385b48609f7ade [file] [log] [blame]
spv.subgroupVote.comp
// Module Version 10300
// Generated by (magic number): 80006
// Id's are bound by 216
Capability Shader
Capability Float64
Capability GroupNonUniform
Capability GroupNonUniformVote
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 10 12
ExecutionMode 4 LocalSize 8 8 1
Source GLSL 450
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 24 "Buffers"
MemberName 24(Buffers) 0 "f4"
MemberName 24(Buffers) 1 "i4"
MemberName 24(Buffers) 2 "u4"
MemberName 24(Buffers) 3 "d4"
MemberName 24(Buffers) 4 "r"
Name 27 "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 24(Buffers) 0 Offset 0
MemberDecorate 24(Buffers) 1 Offset 16
MemberDecorate 24(Buffers) 2 Offset 32
MemberDecorate 24(Buffers) 3 Offset 64
MemberDecorate 24(Buffers) 4 Offset 96
Decorate 24(Buffers) BufferBlock
Decorate 27(data) DescriptorSet 0
Decorate 27(data) Binding 0
Decorate 215 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: TypeFloat 32
18: TypeVector 17(float) 4
19: TypeInt 32 1
20: TypeVector 19(int) 4
21: TypeVector 6(int) 4
22: TypeFloat 64
23: TypeVector 22(float) 4
24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(fvec4) 19(int)
25: TypeArray 24(Buffers) 15
26: TypePointer Uniform 25
27(data): 26(ptr) Variable Uniform
29: 19(int) Constant 4
30: TypePointer Uniform 19(int)
33: 19(int) Constant 0
34: TypeBool
36: 6(int) Constant 3
41: 6(int) Constant 0
42: TypePointer Uniform 17(float)
46: 19(int) Constant 1
50: TypeVector 17(float) 2
51: TypePointer Uniform 18(fvec4)
59: 19(int) Constant 2
60: TypeVector 17(float) 3
68: 19(int) Constant 3
81: TypeVector 19(int) 2
82: TypePointer Uniform 20(ivec4)
90: TypeVector 19(int) 3
104: TypePointer Uniform 6(int)
111: TypeVector 6(int) 2
112: TypePointer Uniform 21(ivec4)
120: TypeVector 6(int) 3
142: TypePointer Uniform 22(float)
149: TypeVector 22(float) 2
150: TypePointer Uniform 23(fvec4)
158: TypeVector 22(float) 3
182: 81(ivec2) ConstantComposite 33 33
183: TypeVector 34(bool) 2
194: 90(ivec3) ConstantComposite 33 33 33
195: TypeVector 34(bool) 3
205: 20(ivec4) ConstantComposite 33 33 33 33
206: TypeVector 34(bool) 4
213: 6(int) Constant 8
214: 6(int) Constant 1
215: 120(ivec3) ConstantComposite 213 213 214
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
28: 6(int) Load 8(invocation)
31: 30(ptr) AccessChain 27(data) 28 29
32: 19(int) Load 31
35: 34(bool) SLessThan 32 33
37: 34(bool) GroupNonUniformAll 36 35
SelectionMerge 39 None
BranchConditional 37 38 133
38: Label
40: 6(int) Load 8(invocation)
43: 42(ptr) AccessChain 27(data) 33 33 41
44: 17(float) Load 43
45: 34(bool) GroupNonUniformAllEqual 36 44
47: 19(int) Select 45 46 33
48: 30(ptr) AccessChain 27(data) 40 29
Store 48 47
49: 6(int) Load 8(invocation)
52: 51(ptr) AccessChain 27(data) 46 33
53: 18(fvec4) Load 52
54: 50(fvec2) VectorShuffle 53 53 0 1
55: 34(bool) GroupNonUniformAllEqual 36 54
56: 19(int) Select 55 46 33
57: 30(ptr) AccessChain 27(data) 49 29
Store 57 56
58: 6(int) Load 8(invocation)
61: 51(ptr) AccessChain 27(data) 59 33
62: 18(fvec4) Load 61
63: 60(fvec3) VectorShuffle 62 62 0 1 2
64: 34(bool) GroupNonUniformAllEqual 36 63
65: 19(int) Select 64 46 33
66: 30(ptr) AccessChain 27(data) 58 29
Store 66 65
67: 6(int) Load 8(invocation)
69: 51(ptr) AccessChain 27(data) 68 33
70: 18(fvec4) Load 69
71: 34(bool) GroupNonUniformAllEqual 36 70
72: 19(int) Select 71 46 33
73: 30(ptr) AccessChain 27(data) 67 29
Store 73 72
74: 6(int) Load 8(invocation)
75: 30(ptr) AccessChain 27(data) 33 46 41
76: 19(int) Load 75
77: 34(bool) GroupNonUniformAllEqual 36 76
78: 19(int) Select 77 46 33
79: 30(ptr) AccessChain 27(data) 74 29
Store 79 78
80: 6(int) Load 8(invocation)
83: 82(ptr) AccessChain 27(data) 46 46
84: 20(ivec4) Load 83
85: 81(ivec2) VectorShuffle 84 84 0 1
86: 34(bool) GroupNonUniformAllEqual 36 85
87: 19(int) Select 86 46 33
88: 30(ptr) AccessChain 27(data) 80 29
Store 88 87
89: 6(int) Load 8(invocation)
91: 82(ptr) AccessChain 27(data) 59 46
92: 20(ivec4) Load 91
93: 90(ivec3) VectorShuffle 92 92 0 1 2
94: 34(bool) GroupNonUniformAllEqual 36 93
95: 19(int) Select 94 46 33
96: 30(ptr) AccessChain 27(data) 89 29
Store 96 95
97: 6(int) Load 8(invocation)
98: 82(ptr) AccessChain 27(data) 68 46
99: 20(ivec4) Load 98
100: 34(bool) GroupNonUniformAllEqual 36 99
101: 19(int) Select 100 46 33
102: 30(ptr) AccessChain 27(data) 97 29
Store 102 101
103: 6(int) Load 8(invocation)
105: 104(ptr) AccessChain 27(data) 33 59 41
106: 6(int) Load 105
107: 34(bool) GroupNonUniformAllEqual 36 106
108: 19(int) Select 107 46 33
109: 30(ptr) AccessChain 27(data) 103 29
Store 109 108
110: 6(int) Load 8(invocation)
113: 112(ptr) AccessChain 27(data) 46 59
114: 21(ivec4) Load 113
115: 111(ivec2) VectorShuffle 114 114 0 1
116: 34(bool) GroupNonUniformAllEqual 36 115
117: 19(int) Select 116 46 33
118: 30(ptr) AccessChain 27(data) 110 29
Store 118 117
119: 6(int) Load 8(invocation)
121: 112(ptr) AccessChain 27(data) 59 59
122: 21(ivec4) Load 121
123: 120(ivec3) VectorShuffle 122 122 0 1 2
124: 34(bool) GroupNonUniformAllEqual 36 123
125: 19(int) Select 124 46 33
126: 30(ptr) AccessChain 27(data) 119 29
Store 126 125
127: 6(int) Load 8(invocation)
128: 112(ptr) AccessChain 27(data) 68 59
129: 21(ivec4) Load 128
130: 34(bool) GroupNonUniformAllEqual 36 129
131: 19(int) Select 130 46 33
132: 30(ptr) AccessChain 27(data) 127 29
Store 132 131
Branch 39
133: Label
134: 6(int) Load 8(invocation)
135: 30(ptr) AccessChain 27(data) 134 29
136: 19(int) Load 135
137: 34(bool) SLessThan 136 33
138: 34(bool) GroupNonUniformAny 36 137
SelectionMerge 140 None
BranchConditional 138 139 140
139: Label
141: 6(int) Load 8(invocation)
143: 142(ptr) AccessChain 27(data) 33 68 41
144: 22(float) Load 143
145: 34(bool) GroupNonUniformAllEqual 36 144
146: 19(int) Select 145 46 33
147: 30(ptr) AccessChain 27(data) 141 29
Store 147 146
148: 6(int) Load 8(invocation)
151: 150(ptr) AccessChain 27(data) 46 68
152: 23(fvec4) Load 151
153: 149(fvec2) VectorShuffle 152 152 0 1
154: 34(bool) GroupNonUniformAllEqual 36 153
155: 19(int) Select 154 46 33
156: 30(ptr) AccessChain 27(data) 148 29
Store 156 155
157: 6(int) Load 8(invocation)
159: 150(ptr) AccessChain 27(data) 59 68
160: 23(fvec4) Load 159
161: 158(fvec3) VectorShuffle 160 160 0 1 2
162: 34(bool) GroupNonUniformAllEqual 36 161
163: 19(int) Select 162 46 33
164: 30(ptr) AccessChain 27(data) 157 29
Store 164 163
165: 6(int) Load 8(invocation)
166: 150(ptr) AccessChain 27(data) 68 68
167: 23(fvec4) Load 166
168: 34(bool) GroupNonUniformAllEqual 36 167
169: 19(int) Select 168 46 33
170: 30(ptr) AccessChain 27(data) 165 29
Store 170 169
171: 6(int) Load 8(invocation)
172: 30(ptr) AccessChain 27(data) 33 46 41
173: 19(int) Load 172
174: 34(bool) SLessThan 173 33
175: 34(bool) GroupNonUniformAllEqual 36 174
176: 19(int) Select 175 46 33
177: 30(ptr) AccessChain 27(data) 171 29
Store 177 176
178: 6(int) Load 8(invocation)
179: 82(ptr) AccessChain 27(data) 46 46
180: 20(ivec4) Load 179
181: 81(ivec2) VectorShuffle 180 180 0 1
184: 183(bvec2) SLessThan 181 182
185: 34(bool) GroupNonUniformAllEqual 36 184
186: 19(int) Select 185 46 33
187: 81(ivec2) CompositeConstruct 186 186
188: 19(int) CompositeExtract 187 0
189: 30(ptr) AccessChain 27(data) 178 29
Store 189 188
190: 6(int) Load 8(invocation)
191: 82(ptr) AccessChain 27(data) 46 46
192: 20(ivec4) Load 191
193: 90(ivec3) VectorShuffle 192 192 0 1 2
196: 195(bvec3) SLessThan 193 194
197: 34(bool) GroupNonUniformAllEqual 36 196
198: 19(int) Select 197 46 33
199: 90(ivec3) CompositeConstruct 198 198 198
200: 19(int) CompositeExtract 199 0
201: 30(ptr) AccessChain 27(data) 190 29
Store 201 200
202: 6(int) Load 8(invocation)
203: 82(ptr) AccessChain 27(data) 46 46
204: 20(ivec4) Load 203
207: 206(bvec4) SLessThan 204 205
208: 34(bool) GroupNonUniformAllEqual 36 207
209: 19(int) Select 208 46 33
210: 20(ivec4) CompositeConstruct 209 209 209 209
211: 19(int) CompositeExtract 210 0
212: 30(ptr) AccessChain 27(data) 202 29
Store 212 211
Branch 140
140: Label
Branch 39
39: Label
Return
FunctionEnd