glslang -> SPV: fix degenerate switch topologies (bug 14118).
[platform/upstream/glslang.git] / Test / baseResults / spv.switch.frag.out
1 spv.switch.frag\r
2 WARNING: 0:121: 'switch' : last case/default label not followed by statements \r
3 WARNING: 0:134: 'switch' : last case/default label not followed by statements \r
4 WARNING: 0:139: 'switch' : last case/default label not followed by statements \r
5 \r
6 \r
7 \r
8 Linked fragment stage:\r
9 \r
10 \r
11 \r
12 // Module Version 99\r
13 // Generated by (magic number): 51a00bb\r
14 // Id's are bound by 261\r
15 \r
16                               Source ESSL 300\r
17                1:             ExtInstImport  "GLSL.std.450"\r
18                               MemoryModel Logical GLSL450\r
19                               EntryPoint Fragment 4\r
20                               Name 4  "main"\r
21                               Name 16  "foo1(vf4;vf4;i1;"\r
22                               Name 13  "v1"\r
23                               Name 14  "v2"\r
24                               Name 15  "i1"\r
25                               Name 21  "foo2(vf4;vf4;i1;"\r
26                               Name 18  "v1"\r
27                               Name 19  "v2"\r
28                               Name 20  "i1"\r
29                               Name 59  "local"\r
30                               Name 61  "c"\r
31                               Name 72  "f"\r
32                               Name 74  "x"\r
33                               Name 128  "d"\r
34                               Name 154  "i"\r
35                               Name 172  "j"\r
36                               Name 222  "color"\r
37                               Name 228  "v"\r
38                               Name 229  "param"\r
39                               Name 231  "param"\r
40                               Name 233  "param"\r
41                               Name 239  "param"\r
42                               Name 241  "param"\r
43                               Name 243  "param"\r
44                               Decorate 59(local) PrecisionMedium \r
45                               Decorate 61(c) PrecisionMedium \r
46                               Decorate 72(f) PrecisionMedium \r
47                               Decorate 74(x) PrecisionMedium \r
48                               Decorate 74(x) Smooth \r
49                               Decorate 128(d) PrecisionMedium \r
50                               Decorate 154(i) PrecisionMedium \r
51                               Decorate 172(j) PrecisionMedium \r
52                               Decorate 222(color) PrecisionMedium \r
53                               Decorate 228(v) PrecisionMedium \r
54                2:             TypeVoid\r
55                3:             TypeFunction 2 \r
56                7:             TypeFloat 32\r
57                8:             TypeVector 7(float) 4\r
58                9:             TypePointer Function 8(fvec4)\r
59               10:             TypeInt 32 1\r
60               11:             TypePointer Function 10(int)\r
61               12:             TypeFunction 8(fvec4) 9(ptr) 9(ptr) 11(ptr)\r
62               37:    7(float) Constant 0\r
63               38:    8(fvec4) ConstantComposite 37 37 37 37\r
64               48:    7(float) Constant 1065353216\r
65               49:    8(fvec4) ConstantComposite 48 48 48 48\r
66               60:             TypePointer UniformConstant 10(int)\r
67            61(c):     60(ptr) Variable UniformConstant \r
68               64:     10(int) Constant 1\r
69               71:             TypePointer Function 7(float)\r
70               73:             TypePointer Input 7(float)\r
71            74(x):     73(ptr) Variable Input \r
72           128(d):     60(ptr) Variable UniformConstant \r
73              155:     10(int) Constant 0\r
74              159:     10(int) Constant 10\r
75              160:             TypeBool\r
76              173:     10(int) Constant 20\r
77              177:     10(int) Constant 30\r
78              183:    7(float) Constant 1120429670\r
79              203:    7(float) Constant 1079739679\r
80              221:             TypePointer Output 7(float)\r
81       222(color):    221(ptr) Variable Output \r
82              227:             TypePointer UniformConstant 8(fvec4)\r
83           228(v):    227(ptr) Variable UniformConstant \r
84          4(main):           2 Function None 3\r
85                5:             Label\r
86        59(local):     11(ptr) Variable Function \r
87            72(f):     71(ptr) Variable Function \r
88           154(i):     11(ptr) Variable Function \r
89           172(j):     11(ptr) Variable Function \r
90       229(param):      9(ptr) Variable Function \r
91       231(param):      9(ptr) Variable Function \r
92       233(param):     11(ptr) Variable Function \r
93       239(param):      9(ptr) Variable Function \r
94       241(param):      9(ptr) Variable Function \r
95       243(param):     11(ptr) Variable Function \r
96               62:     10(int) Load 61(c) \r
97                               Store 59(local) 62 \r
98               63:     10(int) Load 59(local) \r
99               65:     10(int) IAdd 63 64\r
100                               Store 59(local) 65 \r
101               66:     10(int) Load 61(c) \r
102                               SelectionMerge 70 None\r
103                               Switch 66 69 \r
104                                      case 1: 67\r
105                                      case 2: 68\r
106               67:               Label\r
107               75:    7(float)   Load 74(x) \r
108               76:    7(float)   ExtInst 1(GLSL.std.450) 10(sin) 75\r
109                                 Store 72(f) 76 \r
110                                 Branch 70\r
111               68:               Label\r
112               78:    7(float)   Load 74(x) \r
113               79:    7(float)   ExtInst 1(GLSL.std.450) 11(cos) 78\r
114                                 Store 72(f) 79 \r
115                                 Branch 70\r
116               69:               Label\r
117               81:    7(float)   Load 74(x) \r
118               82:    7(float)   ExtInst 1(GLSL.std.450) 12(tan) 81\r
119                                 Store 72(f) 82 \r
120                                 Branch 70\r
121               70:             Label\r
122               84:     10(int) Load 61(c) \r
123                               SelectionMerge 88 None\r
124                               Switch 84 87 \r
125                                      case 1: 85\r
126                                      case 2: 86\r
127               85:               Label\r
128               89:    7(float)   Load 74(x) \r
129               90:    7(float)   ExtInst 1(GLSL.std.450) 10(sin) 89\r
130               91:    7(float)   Load 72(f) \r
131               92:    7(float)   FAdd 91 90\r
132                                 Store 72(f) 92 \r
133                                 Branch 86\r
134               86:               Label\r
135               93:    7(float)   Load 74(x) \r
136               94:    7(float)   ExtInst 1(GLSL.std.450) 11(cos) 93\r
137               95:    7(float)   Load 72(f) \r
138               96:    7(float)   FAdd 95 94\r
139                                 Store 72(f) 96 \r
140                                 Branch 88\r
141               87:               Label\r
142               98:    7(float)   Load 74(x) \r
143               99:    7(float)   ExtInst 1(GLSL.std.450) 12(tan) 98\r
144              100:    7(float)   Load 72(f) \r
145              101:    7(float)   FAdd 100 99\r
146                                 Store 72(f) 101 \r
147                                 Branch 88\r
148               88:             Label\r
149              103:     10(int) Load 61(c) \r
150                               SelectionMerge 106 None\r
151                               Switch 103 106 \r
152                                      case 1: 104\r
153                                      case 2: 105\r
154              104:               Label\r
155              107:    7(float)   Load 74(x) \r
156              108:    7(float)   ExtInst 1(GLSL.std.450) 10(sin) 107\r
157              109:    7(float)   Load 72(f) \r
158              110:    7(float)   FAdd 109 108\r
159                                 Store 72(f) 110 \r
160                                 Branch 106\r
161              105:               Label\r
162              112:    7(float)   Load 74(x) \r
163              113:    7(float)   ExtInst 1(GLSL.std.450) 11(cos) 112\r
164              114:    7(float)   Load 72(f) \r
165              115:    7(float)   FAdd 114 113\r
166                                 Store 72(f) 115 \r
167                                 Branch 106\r
168              106:             Label\r
169              118:     10(int) Load 61(c) \r
170                               SelectionMerge 122 None\r
171                               Switch 118 121 \r
172                                      case 1: 119\r
173                                      case 2: 120\r
174              119:               Label\r
175              123:    7(float)   Load 74(x) \r
176              124:    7(float)   ExtInst 1(GLSL.std.450) 10(sin) 123\r
177              125:    7(float)   Load 72(f) \r
178              126:    7(float)   FAdd 125 124\r
179                                 Store 72(f) 126 \r
180                                 Branch 122\r
181              120:               Label\r
182              129:     10(int)   Load 128(d) \r
183                                 SelectionMerge 132 None\r
184                                 Switch 129 132 \r
185                                        case 1: 130\r
186                                        case 2: 131\r
187              130:                 Label\r
188              133:    7(float)     Load 74(x) \r
189              134:    7(float)     Load 74(x) \r
190              135:    7(float)     FMul 133 134\r
191              136:    7(float)     Load 74(x) \r
192              137:    7(float)     FMul 135 136\r
193              138:    7(float)     Load 72(f) \r
194              139:    7(float)     FAdd 138 137\r
195                                   Store 72(f) 139 \r
196                                   Branch 132\r
197              131:                 Label\r
198              141:    7(float)     Load 74(x) \r
199              142:    7(float)     Load 74(x) \r
200              143:    7(float)     FMul 141 142\r
201              144:    7(float)     Load 72(f) \r
202              145:    7(float)     FAdd 144 143\r
203                                   Store 72(f) 145 \r
204                                   Branch 132\r
205              132:               Label\r
206                                 Branch 122\r
207              121:               Label\r
208              149:    7(float)   Load 74(x) \r
209              150:    7(float)   ExtInst 1(GLSL.std.450) 12(tan) 149\r
210              151:    7(float)   Load 72(f) \r
211              152:    7(float)   FAdd 151 150\r
212                                 Store 72(f) 152 \r
213                                 Branch 122\r
214              122:             Label\r
215                               Store 154(i) 155 \r
216                               Branch 156\r
217              156:             Label\r
218              158:     10(int) Load 154(i) \r
219              161:   160(bool) SLessThan 158 159\r
220                               LoopMerge 157 None\r
221                               BranchConditional 161 162 157 \r
222              162:               Label\r
223              163:     10(int)   Load 61(c) \r
224                                 SelectionMerge 167 None\r
225                                 Switch 163 166 \r
226                                        case 1: 164\r
227                                        case 2: 165\r
228              164:                 Label\r
229              168:    7(float)     Load 74(x) \r
230              169:    7(float)     ExtInst 1(GLSL.std.450) 10(sin) 168\r
231              170:    7(float)     Load 72(f) \r
232              171:    7(float)     FAdd 170 169\r
233                                   Store 72(f) 171 \r
234                                   Store 172(j) 173 \r
235                                   Branch 174\r
236              174:                 Label\r
237              176:     10(int)     Load 172(j) \r
238              178:   160(bool)     SLessThan 176 177\r
239                                   LoopMerge 175 None\r
240                                   BranchConditional 178 179 175 \r
241              179:                   Label\r
242              180:    7(float)       Load 72(f) \r
243              181:    7(float)       FAdd 180 48\r
244                                     Store 72(f) 181 \r
245              182:    7(float)       Load 72(f) \r
246              184:   160(bool)       FOrdLessThan 182 183\r
247                                     SelectionMerge 186 None\r
248                                     BranchConditional 184 185 186 \r
249              185:                     Label\r
250                                       Branch 175\r
251              186:                   Label\r
252              188:     10(int)       Load 172(j) \r
253              189:     10(int)       IAdd 188 64\r
254                                     Store 172(j) 189 \r
255                                     Branch 174\r
256              175:                 Label\r
257                                   Branch 167\r
258              165:                 Label\r
259              191:    7(float)     Load 74(x) \r
260              192:    7(float)     ExtInst 1(GLSL.std.450) 11(cos) 191\r
261              193:    7(float)     Load 72(f) \r
262              194:    7(float)     FAdd 193 192\r
263                                   Store 72(f) 194 \r
264                                   Branch 167\r
265              166:                 Label\r
266              197:    7(float)     Load 74(x) \r
267              198:    7(float)     ExtInst 1(GLSL.std.450) 12(tan) 197\r
268              199:    7(float)     Load 72(f) \r
269              200:    7(float)     FAdd 199 198\r
270                                   Store 72(f) 200 \r
271                                   Branch 167\r
272              167:               Label\r
273              202:    7(float)   Load 72(f) \r
274              204:   160(bool)   FOrdLessThan 202 203\r
275                                 SelectionMerge 206 None\r
276                                 BranchConditional 204 205 206 \r
277              205:                 Label\r
278                                   Branch 157\r
279              206:               Label\r
280              208:     10(int)   Load 154(i) \r
281              209:     10(int)   IAdd 208 64\r
282                                 Store 154(i) 209 \r
283                                 Branch 156\r
284              157:             Label\r
285              210:     10(int) Load 61(c) \r
286                               SelectionMerge 213 None\r
287                               Switch 210 213 \r
288                                      case 1: 211\r
289                                      case 2: 212\r
290              211:               Label\r
291              214:    7(float)   Load 74(x) \r
292              215:    7(float)   ExtInst 1(GLSL.std.450) 10(sin) 214\r
293              216:    7(float)   Load 72(f) \r
294              217:    7(float)   FAdd 216 215\r
295                                 Store 72(f) 217 \r
296                                 Branch 213\r
297              212:               Label\r
298                                 Branch 213\r
299              213:             Label\r
300              223:    7(float) Load 72(f) \r
301              224:     10(int) Load 59(local) \r
302              225:    7(float) ConvertSToF 224\r
303              226:    7(float) FAdd 223 225\r
304                               Store 222(color) 226 \r
305              230:    8(fvec4) Load 228(v) \r
306                               Store 229(param) 230 \r
307              232:    8(fvec4) Load 228(v) \r
308                               Store 231(param) 232 \r
309              234:     10(int) Load 61(c) \r
310                               Store 233(param) 234 \r
311              235:    8(fvec4) FunctionCall 16(foo1(vf4;vf4;i1;) 229(param) 231(param) 233(param)\r
312              236:    7(float) CompositeExtract 235 1\r
313              237:    7(float) Load 222(color) \r
314              238:    7(float) FAdd 237 236\r
315                               Store 222(color) 238 \r
316              240:    8(fvec4) Load 228(v) \r
317                               Store 239(param) 240 \r
318              242:    8(fvec4) Load 228(v) \r
319                               Store 241(param) 242 \r
320              244:     10(int) Load 61(c) \r
321                               Store 243(param) 244 \r
322              245:    8(fvec4) FunctionCall 21(foo2(vf4;vf4;i1;) 239(param) 241(param) 243(param)\r
323              246:    7(float) CompositeExtract 245 2\r
324              247:    7(float) Load 222(color) \r
325              248:    7(float) FAdd 247 246\r
326                               Store 222(color) 248 \r
327              249:     10(int) Load 61(c) \r
328                               SelectionMerge 252 None\r
329                               Switch 249 251 \r
330                                      case 0: 250\r
331              250:               Label\r
332                                 Branch 252\r
333              251:               Label\r
334                                 Branch 252\r
335              252:             Label\r
336              256:     10(int) Load 61(c) \r
337                               SelectionMerge 258 None\r
338                               Switch 256 257 \r
339              257:               Label\r
340                                 Branch 258\r
341              258:             Label\r
342                               Branch 6\r
343                6:             Label\r
344                               Return\r
345                               FunctionEnd\r
346 16(foo1(vf4;vf4;i1;):    8(fvec4) Function None 12\r
347           13(v1):      9(ptr) FunctionParameter\r
348           14(v2):      9(ptr) FunctionParameter\r
349           15(i1):     11(ptr) FunctionParameter\r
350               17:             Label\r
351               23:     10(int) Load 15(i1) \r
352                               SelectionMerge 27 None\r
353                               Switch 23 27 \r
354                                      case 0: 24\r
355                                      case 2: 25\r
356                                      case 1: 25\r
357                                      case 3: 26\r
358               24:               Label\r
359               28:    8(fvec4)   Load 13(v1) \r
360                                 ReturnValue 28\r
361               25:               Label\r
362               30:    8(fvec4)   Load 14(v2) \r
363                                 ReturnValue 30\r
364               26:               Label\r
365               32:    8(fvec4)   Load 13(v1) \r
366               33:    8(fvec4)   Load 14(v2) \r
367               34:    8(fvec4)   FMul 32 33\r
368                                 ReturnValue 34\r
369               27:             Label\r
370                               ReturnValue 38\r
371                               FunctionEnd\r
372 21(foo2(vf4;vf4;i1;):    8(fvec4) Function None 12\r
373           18(v1):      9(ptr) FunctionParameter\r
374           19(v2):      9(ptr) FunctionParameter\r
375           20(i1):     11(ptr) FunctionParameter\r
376               22:             Label\r
377               40:     10(int) Load 20(i1) \r
378                               SelectionMerge 45 None\r
379                               Switch 40 45 \r
380                                      case 0: 41\r
381                                      case 2: 42\r
382                                      case 1: 43\r
383                                      case 3: 44\r
384               41:               Label\r
385               46:    8(fvec4)   Load 18(v1) \r
386                                 ReturnValue 46\r
387               42:               Label\r
388                                 ReturnValue 49\r
389               43:               Label\r
390               51:    8(fvec4)   Load 19(v2) \r
391                                 ReturnValue 51\r
392               44:               Label\r
393               53:    8(fvec4)   Load 18(v1) \r
394               54:    8(fvec4)   Load 19(v2) \r
395               55:    8(fvec4)   FMul 53 54\r
396                                 ReturnValue 55\r
397               45:             Label\r
398                               ReturnValue 38\r
399                               FunctionEnd\r