After construction, the Loop is effectively const. This perturbs the IDs in SPIR-V tests because the body block is created before generating any of the loop code, rather than only when the body is first referenced.
399 lines
19 KiB
Plaintext
399 lines
19 KiB
Plaintext
spv.switch.frag
|
|
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
|
WARNING: 0:121: 'switch' : last case/default label not followed by statements
|
|
WARNING: 0:134: 'switch' : last case/default label not followed by statements
|
|
WARNING: 0:139: 'switch' : last case/default label not followed by statements
|
|
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
// Module Version 99
|
|
// Generated by (magic number): 51a00bb
|
|
// Id's are bound by 261
|
|
|
|
Source ESSL 310
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4
|
|
Name 4 "main"
|
|
Name 16 "foo1(vf4;vf4;i1;"
|
|
Name 13 "v1"
|
|
Name 14 "v2"
|
|
Name 15 "i1"
|
|
Name 21 "foo2(vf4;vf4;i1;"
|
|
Name 18 "v1"
|
|
Name 19 "v2"
|
|
Name 20 "i1"
|
|
Name 59 "local"
|
|
Name 61 "c"
|
|
Name 72 "f"
|
|
Name 74 "x"
|
|
Name 128 "d"
|
|
Name 154 "i"
|
|
Name 172 "j"
|
|
Name 222 "color"
|
|
Name 228 "v"
|
|
Name 229 "param"
|
|
Name 231 "param"
|
|
Name 233 "param"
|
|
Name 239 "param"
|
|
Name 241 "param"
|
|
Name 243 "param"
|
|
Decorate 59(local) PrecisionMedium
|
|
Decorate 61(c) PrecisionMedium
|
|
Decorate 72(f) PrecisionMedium
|
|
Decorate 74(x) PrecisionMedium
|
|
Decorate 74(x) Smooth
|
|
Decorate 128(d) PrecisionMedium
|
|
Decorate 154(i) PrecisionMedium
|
|
Decorate 172(j) PrecisionMedium
|
|
Decorate 222(color) PrecisionMedium
|
|
Decorate 228(v) PrecisionMedium
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
7: TypeFloat 32
|
|
8: TypeVector 7(float) 4
|
|
9: TypePointer Function 8(fvec4)
|
|
10: TypeInt 32 1
|
|
11: TypePointer Function 10(int)
|
|
12: TypeFunction 8(fvec4) 9(ptr) 9(ptr) 11(ptr)
|
|
37: 7(float) Constant 0
|
|
38: 8(fvec4) ConstantComposite 37 37 37 37
|
|
48: 7(float) Constant 1065353216
|
|
49: 8(fvec4) ConstantComposite 48 48 48 48
|
|
60: TypePointer UniformConstant 10(int)
|
|
61(c): 60(ptr) Variable UniformConstant
|
|
64: 10(int) Constant 1
|
|
71: TypePointer Function 7(float)
|
|
73: TypePointer Input 7(float)
|
|
74(x): 73(ptr) Variable Input
|
|
128(d): 60(ptr) Variable UniformConstant
|
|
155: 10(int) Constant 0
|
|
160: 10(int) Constant 10
|
|
161: TypeBool
|
|
173: 10(int) Constant 20
|
|
178: 10(int) Constant 30
|
|
183: 7(float) Constant 1120429670
|
|
203: 7(float) Constant 1079739679
|
|
221: TypePointer Output 7(float)
|
|
222(color): 221(ptr) Variable Output
|
|
227: TypePointer UniformConstant 8(fvec4)
|
|
228(v): 227(ptr) Variable UniformConstant
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
59(local): 11(ptr) Variable Function
|
|
72(f): 71(ptr) Variable Function
|
|
154(i): 11(ptr) Variable Function
|
|
172(j): 11(ptr) Variable Function
|
|
229(param): 9(ptr) Variable Function
|
|
231(param): 9(ptr) Variable Function
|
|
233(param): 11(ptr) Variable Function
|
|
239(param): 9(ptr) Variable Function
|
|
241(param): 9(ptr) Variable Function
|
|
243(param): 11(ptr) Variable Function
|
|
62: 10(int) Load 61(c)
|
|
Store 59(local) 62
|
|
63: 10(int) Load 59(local)
|
|
65: 10(int) IAdd 63 64
|
|
Store 59(local) 65
|
|
66: 10(int) Load 61(c)
|
|
SelectionMerge 70 None
|
|
Switch 66 69
|
|
case 1: 67
|
|
case 2: 68
|
|
67: Label
|
|
75: 7(float) Load 74(x)
|
|
76: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 75
|
|
Store 72(f) 76
|
|
Branch 70
|
|
68: Label
|
|
78: 7(float) Load 74(x)
|
|
79: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 78
|
|
Store 72(f) 79
|
|
Branch 70
|
|
69: Label
|
|
81: 7(float) Load 74(x)
|
|
82: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 81
|
|
Store 72(f) 82
|
|
Branch 70
|
|
70: Label
|
|
84: 10(int) Load 61(c)
|
|
SelectionMerge 88 None
|
|
Switch 84 87
|
|
case 1: 85
|
|
case 2: 86
|
|
85: Label
|
|
89: 7(float) Load 74(x)
|
|
90: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 89
|
|
91: 7(float) Load 72(f)
|
|
92: 7(float) FAdd 91 90
|
|
Store 72(f) 92
|
|
Branch 86
|
|
86: Label
|
|
93: 7(float) Load 74(x)
|
|
94: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 93
|
|
95: 7(float) Load 72(f)
|
|
96: 7(float) FAdd 95 94
|
|
Store 72(f) 96
|
|
Branch 88
|
|
87: Label
|
|
98: 7(float) Load 74(x)
|
|
99: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 98
|
|
100: 7(float) Load 72(f)
|
|
101: 7(float) FAdd 100 99
|
|
Store 72(f) 101
|
|
Branch 88
|
|
88: Label
|
|
103: 10(int) Load 61(c)
|
|
SelectionMerge 106 None
|
|
Switch 103 106
|
|
case 1: 104
|
|
case 2: 105
|
|
104: Label
|
|
107: 7(float) Load 74(x)
|
|
108: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 107
|
|
109: 7(float) Load 72(f)
|
|
110: 7(float) FAdd 109 108
|
|
Store 72(f) 110
|
|
Branch 106
|
|
105: Label
|
|
112: 7(float) Load 74(x)
|
|
113: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 112
|
|
114: 7(float) Load 72(f)
|
|
115: 7(float) FAdd 114 113
|
|
Store 72(f) 115
|
|
Branch 106
|
|
106: Label
|
|
118: 10(int) Load 61(c)
|
|
SelectionMerge 122 None
|
|
Switch 118 121
|
|
case 1: 119
|
|
case 2: 120
|
|
119: Label
|
|
123: 7(float) Load 74(x)
|
|
124: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 123
|
|
125: 7(float) Load 72(f)
|
|
126: 7(float) FAdd 125 124
|
|
Store 72(f) 126
|
|
Branch 122
|
|
120: Label
|
|
129: 10(int) Load 128(d)
|
|
SelectionMerge 132 None
|
|
Switch 129 132
|
|
case 1: 130
|
|
case 2: 131
|
|
130: Label
|
|
133: 7(float) Load 74(x)
|
|
134: 7(float) Load 74(x)
|
|
135: 7(float) FMul 133 134
|
|
136: 7(float) Load 74(x)
|
|
137: 7(float) FMul 135 136
|
|
138: 7(float) Load 72(f)
|
|
139: 7(float) FAdd 138 137
|
|
Store 72(f) 139
|
|
Branch 132
|
|
131: Label
|
|
141: 7(float) Load 74(x)
|
|
142: 7(float) Load 74(x)
|
|
143: 7(float) FMul 141 142
|
|
144: 7(float) Load 72(f)
|
|
145: 7(float) FAdd 144 143
|
|
Store 72(f) 145
|
|
Branch 132
|
|
132: Label
|
|
Branch 122
|
|
121: Label
|
|
149: 7(float) Load 74(x)
|
|
150: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 149
|
|
151: 7(float) Load 72(f)
|
|
152: 7(float) FAdd 151 150
|
|
Store 72(f) 152
|
|
Branch 122
|
|
122: Label
|
|
Store 154(i) 155
|
|
Branch 156
|
|
156: Label
|
|
159: 10(int) Load 154(i)
|
|
162: 161(bool) SLessThan 159 160
|
|
LoopMerge 157 None
|
|
BranchConditional 162 158 157
|
|
158: Label
|
|
163: 10(int) Load 61(c)
|
|
SelectionMerge 167 None
|
|
Switch 163 166
|
|
case 1: 164
|
|
case 2: 165
|
|
164: Label
|
|
168: 7(float) Load 74(x)
|
|
169: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 168
|
|
170: 7(float) Load 72(f)
|
|
171: 7(float) FAdd 170 169
|
|
Store 72(f) 171
|
|
Store 172(j) 173
|
|
Branch 174
|
|
174: Label
|
|
177: 10(int) Load 172(j)
|
|
179: 161(bool) SLessThan 177 178
|
|
LoopMerge 175 None
|
|
BranchConditional 179 176 175
|
|
176: Label
|
|
180: 7(float) Load 72(f)
|
|
181: 7(float) FAdd 180 48
|
|
Store 72(f) 181
|
|
182: 7(float) Load 72(f)
|
|
184: 161(bool) FOrdLessThan 182 183
|
|
SelectionMerge 186 None
|
|
BranchConditional 184 185 186
|
|
185: Label
|
|
Branch 175
|
|
186: Label
|
|
188: 10(int) Load 172(j)
|
|
189: 10(int) IAdd 188 64
|
|
Store 172(j) 189
|
|
Branch 174
|
|
175: Label
|
|
Branch 167
|
|
165: Label
|
|
191: 7(float) Load 74(x)
|
|
192: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 191
|
|
193: 7(float) Load 72(f)
|
|
194: 7(float) FAdd 193 192
|
|
Store 72(f) 194
|
|
Branch 167
|
|
166: Label
|
|
197: 7(float) Load 74(x)
|
|
198: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 197
|
|
199: 7(float) Load 72(f)
|
|
200: 7(float) FAdd 199 198
|
|
Store 72(f) 200
|
|
Branch 167
|
|
167: Label
|
|
202: 7(float) Load 72(f)
|
|
204: 161(bool) FOrdLessThan 202 203
|
|
SelectionMerge 206 None
|
|
BranchConditional 204 205 206
|
|
205: Label
|
|
Branch 157
|
|
206: Label
|
|
208: 10(int) Load 154(i)
|
|
209: 10(int) IAdd 208 64
|
|
Store 154(i) 209
|
|
Branch 156
|
|
157: Label
|
|
210: 10(int) Load 61(c)
|
|
SelectionMerge 213 None
|
|
Switch 210 213
|
|
case 1: 211
|
|
case 2: 212
|
|
211: Label
|
|
214: 7(float) Load 74(x)
|
|
215: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 214
|
|
216: 7(float) Load 72(f)
|
|
217: 7(float) FAdd 216 215
|
|
Store 72(f) 217
|
|
Branch 213
|
|
212: Label
|
|
Branch 213
|
|
213: Label
|
|
223: 7(float) Load 72(f)
|
|
224: 10(int) Load 59(local)
|
|
225: 7(float) ConvertSToF 224
|
|
226: 7(float) FAdd 223 225
|
|
Store 222(color) 226
|
|
230: 8(fvec4) Load 228(v)
|
|
Store 229(param) 230
|
|
232: 8(fvec4) Load 228(v)
|
|
Store 231(param) 232
|
|
234: 10(int) Load 61(c)
|
|
Store 233(param) 234
|
|
235: 8(fvec4) FunctionCall 16(foo1(vf4;vf4;i1;) 229(param) 231(param) 233(param)
|
|
236: 7(float) CompositeExtract 235 1
|
|
237: 7(float) Load 222(color)
|
|
238: 7(float) FAdd 237 236
|
|
Store 222(color) 238
|
|
240: 8(fvec4) Load 228(v)
|
|
Store 239(param) 240
|
|
242: 8(fvec4) Load 228(v)
|
|
Store 241(param) 242
|
|
244: 10(int) Load 61(c)
|
|
Store 243(param) 244
|
|
245: 8(fvec4) FunctionCall 21(foo2(vf4;vf4;i1;) 239(param) 241(param) 243(param)
|
|
246: 7(float) CompositeExtract 245 2
|
|
247: 7(float) Load 222(color)
|
|
248: 7(float) FAdd 247 246
|
|
Store 222(color) 248
|
|
249: 10(int) Load 61(c)
|
|
SelectionMerge 252 None
|
|
Switch 249 251
|
|
case 0: 250
|
|
250: Label
|
|
Branch 252
|
|
251: Label
|
|
Branch 252
|
|
252: Label
|
|
256: 10(int) Load 61(c)
|
|
SelectionMerge 258 None
|
|
Switch 256 257
|
|
257: Label
|
|
Branch 258
|
|
258: Label
|
|
Branch 6
|
|
6: Label
|
|
Return
|
|
FunctionEnd
|
|
16(foo1(vf4;vf4;i1;): 8(fvec4) Function None 12
|
|
13(v1): 9(ptr) FunctionParameter
|
|
14(v2): 9(ptr) FunctionParameter
|
|
15(i1): 11(ptr) FunctionParameter
|
|
17: Label
|
|
23: 10(int) Load 15(i1)
|
|
SelectionMerge 27 None
|
|
Switch 23 27
|
|
case 0: 24
|
|
case 2: 25
|
|
case 1: 25
|
|
case 3: 26
|
|
24: Label
|
|
28: 8(fvec4) Load 13(v1)
|
|
ReturnValue 28
|
|
25: Label
|
|
30: 8(fvec4) Load 14(v2)
|
|
ReturnValue 30
|
|
26: Label
|
|
32: 8(fvec4) Load 13(v1)
|
|
33: 8(fvec4) Load 14(v2)
|
|
34: 8(fvec4) FMul 32 33
|
|
ReturnValue 34
|
|
27: Label
|
|
ReturnValue 38
|
|
FunctionEnd
|
|
21(foo2(vf4;vf4;i1;): 8(fvec4) Function None 12
|
|
18(v1): 9(ptr) FunctionParameter
|
|
19(v2): 9(ptr) FunctionParameter
|
|
20(i1): 11(ptr) FunctionParameter
|
|
22: Label
|
|
40: 10(int) Load 20(i1)
|
|
SelectionMerge 45 None
|
|
Switch 40 45
|
|
case 0: 41
|
|
case 2: 42
|
|
case 1: 43
|
|
case 3: 44
|
|
41: Label
|
|
46: 8(fvec4) Load 18(v1)
|
|
ReturnValue 46
|
|
42: Label
|
|
ReturnValue 49
|
|
43: Label
|
|
51: 8(fvec4) Load 19(v2)
|
|
ReturnValue 51
|
|
44: Label
|
|
53: 8(fvec4) Load 18(v1)
|
|
54: 8(fvec4) Load 19(v2)
|
|
55: 8(fvec4) FMul 53 54
|
|
ReturnValue 55
|
|
45: Label
|
|
ReturnValue 38
|
|
FunctionEnd
|