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