Implement atomic ops, bit conversions, fix fwidth stage mask, fix saturate dest modifier.
[platform/upstream/glslang.git] / Test / baseResults / hlsl.intrinsics.comp.out
1 hlsl.intrinsics.comp
2 Shader version: 450
3 local_size = (1, 1, 1)
4 0:? Sequence
5 0:44  Function Definition: ComputeShaderFunction(f1;f1;f1;u1;u1; (temp float)
6 0:17    Function Parameters: 
7 0:17      'inF0' (temp float)
8 0:17      'inF1' (temp float)
9 0:17      'inF2' (temp float)
10 0:17      'inU0' (temp uint)
11 0:17      'inU1' (temp uint)
12 0:?     Sequence
13 0:21      all (global bool)
14 0:21        'inF0' (temp float)
15 0:24      AtomicAdd (global void)
16 0:24        'gs_ua' (temp uint)
17 0:24        'gs_ub' (temp uint)
18 0:25      move second child to first child (temp uint)
19 0:25        'out_u1' (temp uint)
20 0:25        AtomicAdd (temp uint)
21 0:25          'gs_ua' (temp uint)
22 0:25          'gs_ub' (temp uint)
23 0:26      AtomicAnd (global void)
24 0:26        'gs_ua' (temp uint)
25 0:26        'gs_ub' (temp uint)
26 0:27      move second child to first child (temp uint)
27 0:27        'out_u1' (temp uint)
28 0:27        AtomicAnd (temp uint)
29 0:27          'gs_ua' (temp uint)
30 0:27          'gs_ub' (temp uint)
31 0:28      move second child to first child (temp uint)
32 0:28        'out_u1' (temp uint)
33 0:28        AtomicCompSwap (temp uint)
34 0:28          'gs_ua' (temp uint)
35 0:28          'gs_ub' (temp uint)
36 0:28          'gs_uc' (temp uint)
37 0:29      move second child to first child (temp uint)
38 0:29        'out_u1' (temp uint)
39 0:29        AtomicExchange (temp uint)
40 0:29          'gs_ua' (temp uint)
41 0:29          'gs_ub' (temp uint)
42 0:30      AtomicMax (global void)
43 0:30        'gs_ua' (temp uint)
44 0:30        'gs_ub' (temp uint)
45 0:31      move second child to first child (temp uint)
46 0:31        'out_u1' (temp uint)
47 0:31        AtomicMax (temp uint)
48 0:31          'gs_ua' (temp uint)
49 0:31          'gs_ub' (temp uint)
50 0:32      AtomicMin (global void)
51 0:32        'gs_ua' (temp uint)
52 0:32        'gs_ub' (temp uint)
53 0:33      move second child to first child (temp uint)
54 0:33        'out_u1' (temp uint)
55 0:33        AtomicMin (temp uint)
56 0:33          'gs_ua' (temp uint)
57 0:33          'gs_ub' (temp uint)
58 0:34      AtomicOr (global void)
59 0:34        'gs_ua' (temp uint)
60 0:34        'gs_ub' (temp uint)
61 0:35      move second child to first child (temp uint)
62 0:35        'out_u1' (temp uint)
63 0:35        AtomicOr (temp uint)
64 0:35          'gs_ua' (temp uint)
65 0:35          'gs_ub' (temp uint)
66 0:36      AtomicXor (global void)
67 0:36        'gs_ua' (temp uint)
68 0:36        'gs_ub' (temp uint)
69 0:37      move second child to first child (temp uint)
70 0:37        'out_u1' (temp uint)
71 0:37        AtomicXor (temp uint)
72 0:37          'gs_ua' (temp uint)
73 0:37          'gs_ub' (temp uint)
74 0:41      Branch: Return with expression
75 0:41        Constant:
76 0:41          0.000000
77 0:50  Function Definition: ComputeShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float)
78 0:45    Function Parameters: 
79 0:45      'inF0' (temp 1-component vector of float)
80 0:45      'inF1' (temp 1-component vector of float)
81 0:45      'inF2' (temp 1-component vector of float)
82 0:?     Sequence
83 0:47      Branch: Return with expression
84 0:47        Constant:
85 0:47          0.000000
86 0:77  Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float)
87 0:51    Function Parameters: 
88 0:51      'inF0' (temp 2-component vector of float)
89 0:51      'inF1' (temp 2-component vector of float)
90 0:51      'inF2' (temp 2-component vector of float)
91 0:51      'inU0' (temp 2-component vector of uint)
92 0:51      'inU1' (temp 2-component vector of uint)
93 0:?     Sequence
94 0:55      all (global bool)
95 0:55        'inF0' (temp 2-component vector of float)
96 0:58      AtomicAdd (global void)
97 0:58        'gs_ua2' (temp 2-component vector of uint)
98 0:58        'gs_ub2' (temp 2-component vector of uint)
99 0:59      move second child to first child (temp 2-component vector of uint)
100 0:59        'out_u2' (temp 2-component vector of uint)
101 0:59        AtomicAdd (temp 2-component vector of uint)
102 0:59          'gs_ua2' (temp 2-component vector of uint)
103 0:59          'gs_ub2' (temp 2-component vector of uint)
104 0:60      AtomicAnd (global void)
105 0:60        'gs_ua2' (temp 2-component vector of uint)
106 0:60        'gs_ub2' (temp 2-component vector of uint)
107 0:61      move second child to first child (temp 2-component vector of uint)
108 0:61        'out_u2' (temp 2-component vector of uint)
109 0:61        AtomicAnd (temp 2-component vector of uint)
110 0:61          'gs_ua2' (temp 2-component vector of uint)
111 0:61          'gs_ub2' (temp 2-component vector of uint)
112 0:62      move second child to first child (temp 2-component vector of uint)
113 0:62        'out_u2' (temp 2-component vector of uint)
114 0:62        AtomicCompSwap (temp 2-component vector of uint)
115 0:62          'gs_ua2' (temp 2-component vector of uint)
116 0:62          'gs_ub2' (temp 2-component vector of uint)
117 0:62          'gs_uc2' (temp 2-component vector of uint)
118 0:63      move second child to first child (temp 2-component vector of uint)
119 0:63        'out_u2' (temp 2-component vector of uint)
120 0:63        AtomicExchange (temp 2-component vector of uint)
121 0:63          'gs_ua2' (temp 2-component vector of uint)
122 0:63          'gs_ub2' (temp 2-component vector of uint)
123 0:64      AtomicMax (global void)
124 0:64        'gs_ua2' (temp 2-component vector of uint)
125 0:64        'gs_ub2' (temp 2-component vector of uint)
126 0:65      move second child to first child (temp 2-component vector of uint)
127 0:65        'out_u2' (temp 2-component vector of uint)
128 0:65        AtomicMax (temp 2-component vector of uint)
129 0:65          'gs_ua2' (temp 2-component vector of uint)
130 0:65          'gs_ub2' (temp 2-component vector of uint)
131 0:66      AtomicMin (global void)
132 0:66        'gs_ua2' (temp 2-component vector of uint)
133 0:66        'gs_ub2' (temp 2-component vector of uint)
134 0:67      move second child to first child (temp 2-component vector of uint)
135 0:67        'out_u2' (temp 2-component vector of uint)
136 0:67        AtomicMin (temp 2-component vector of uint)
137 0:67          'gs_ua2' (temp 2-component vector of uint)
138 0:67          'gs_ub2' (temp 2-component vector of uint)
139 0:68      AtomicOr (global void)
140 0:68        'gs_ua2' (temp 2-component vector of uint)
141 0:68        'gs_ub2' (temp 2-component vector of uint)
142 0:69      move second child to first child (temp 2-component vector of uint)
143 0:69        'out_u2' (temp 2-component vector of uint)
144 0:69        AtomicOr (temp 2-component vector of uint)
145 0:69          'gs_ua2' (temp 2-component vector of uint)
146 0:69          'gs_ub2' (temp 2-component vector of uint)
147 0:70      AtomicXor (global void)
148 0:70        'gs_ua2' (temp 2-component vector of uint)
149 0:70        'gs_ub2' (temp 2-component vector of uint)
150 0:71      move second child to first child (temp 2-component vector of uint)
151 0:71        'out_u2' (temp 2-component vector of uint)
152 0:71        AtomicXor (temp 2-component vector of uint)
153 0:71          'gs_ua2' (temp 2-component vector of uint)
154 0:71          'gs_ub2' (temp 2-component vector of uint)
155 0:74      Branch: Return with expression
156 0:?         Constant:
157 0:?           1.000000
158 0:?           2.000000
159 0:104  Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float)
160 0:78    Function Parameters: 
161 0:78      'inF0' (temp 3-component vector of float)
162 0:78      'inF1' (temp 3-component vector of float)
163 0:78      'inF2' (temp 3-component vector of float)
164 0:78      'inU0' (temp 3-component vector of uint)
165 0:78      'inU1' (temp 3-component vector of uint)
166 0:?     Sequence
167 0:82      all (global bool)
168 0:82        'inF0' (temp 3-component vector of float)
169 0:85      AtomicAdd (global void)
170 0:85        'gs_ua3' (temp 3-component vector of uint)
171 0:85        'gs_ub3' (temp 3-component vector of uint)
172 0:86      move second child to first child (temp 3-component vector of uint)
173 0:86        'out_u3' (temp 3-component vector of uint)
174 0:86        AtomicAdd (temp 3-component vector of uint)
175 0:86          'gs_ua3' (temp 3-component vector of uint)
176 0:86          'gs_ub3' (temp 3-component vector of uint)
177 0:87      AtomicAnd (global void)
178 0:87        'gs_ua3' (temp 3-component vector of uint)
179 0:87        'gs_ub3' (temp 3-component vector of uint)
180 0:88      move second child to first child (temp 3-component vector of uint)
181 0:88        'out_u3' (temp 3-component vector of uint)
182 0:88        AtomicAnd (temp 3-component vector of uint)
183 0:88          'gs_ua3' (temp 3-component vector of uint)
184 0:88          'gs_ub3' (temp 3-component vector of uint)
185 0:89      move second child to first child (temp 3-component vector of uint)
186 0:89        'out_u3' (temp 3-component vector of uint)
187 0:89        AtomicCompSwap (temp 3-component vector of uint)
188 0:89          'gs_ua3' (temp 3-component vector of uint)
189 0:89          'gs_ub3' (temp 3-component vector of uint)
190 0:89          'gs_uc3' (temp 3-component vector of uint)
191 0:90      move second child to first child (temp 3-component vector of uint)
192 0:90        'out_u3' (temp 3-component vector of uint)
193 0:90        AtomicExchange (temp 3-component vector of uint)
194 0:90          'gs_ua3' (temp 3-component vector of uint)
195 0:90          'gs_ub3' (temp 3-component vector of uint)
196 0:91      AtomicMax (global void)
197 0:91        'gs_ua3' (temp 3-component vector of uint)
198 0:91        'gs_ub3' (temp 3-component vector of uint)
199 0:92      move second child to first child (temp 3-component vector of uint)
200 0:92        'out_u3' (temp 3-component vector of uint)
201 0:92        AtomicMax (temp 3-component vector of uint)
202 0:92          'gs_ua3' (temp 3-component vector of uint)
203 0:92          'gs_ub3' (temp 3-component vector of uint)
204 0:93      AtomicMin (global void)
205 0:93        'gs_ua3' (temp 3-component vector of uint)
206 0:93        'gs_ub3' (temp 3-component vector of uint)
207 0:94      move second child to first child (temp 3-component vector of uint)
208 0:94        'out_u3' (temp 3-component vector of uint)
209 0:94        AtomicMin (temp 3-component vector of uint)
210 0:94          'gs_ua3' (temp 3-component vector of uint)
211 0:94          'gs_ub3' (temp 3-component vector of uint)
212 0:95      AtomicOr (global void)
213 0:95        'gs_ua3' (temp 3-component vector of uint)
214 0:95        'gs_ub3' (temp 3-component vector of uint)
215 0:96      move second child to first child (temp 3-component vector of uint)
216 0:96        'out_u3' (temp 3-component vector of uint)
217 0:96        AtomicOr (temp 3-component vector of uint)
218 0:96          'gs_ua3' (temp 3-component vector of uint)
219 0:96          'gs_ub3' (temp 3-component vector of uint)
220 0:97      AtomicXor (global void)
221 0:97        'gs_ua3' (temp 3-component vector of uint)
222 0:97        'gs_ub3' (temp 3-component vector of uint)
223 0:98      move second child to first child (temp 3-component vector of uint)
224 0:98        'out_u3' (temp 3-component vector of uint)
225 0:98        AtomicXor (temp 3-component vector of uint)
226 0:98          'gs_ua3' (temp 3-component vector of uint)
227 0:98          'gs_ub3' (temp 3-component vector of uint)
228 0:101      Branch: Return with expression
229 0:?         Constant:
230 0:?           1.000000
231 0:?           2.000000
232 0:?           3.000000
233 0:130  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
234 0:105    Function Parameters: 
235 0:105      'inF0' (temp 4-component vector of float)
236 0:105      'inF1' (temp 4-component vector of float)
237 0:105      'inF2' (temp 4-component vector of float)
238 0:105      'inU0' (temp 4-component vector of uint)
239 0:105      'inU1' (temp 4-component vector of uint)
240 0:?     Sequence
241 0:109      all (global bool)
242 0:109        'inF0' (temp 4-component vector of float)
243 0:112      AtomicAdd (global void)
244 0:112        'gs_ua4' (temp 4-component vector of uint)
245 0:112        'gs_ub4' (temp 4-component vector of uint)
246 0:113      move second child to first child (temp 4-component vector of uint)
247 0:113        'out_u4' (temp 4-component vector of uint)
248 0:113        AtomicAdd (temp 4-component vector of uint)
249 0:113          'gs_ua4' (temp 4-component vector of uint)
250 0:113          'gs_ub4' (temp 4-component vector of uint)
251 0:114      AtomicAnd (global void)
252 0:114        'gs_ua4' (temp 4-component vector of uint)
253 0:114        'gs_ub4' (temp 4-component vector of uint)
254 0:115      move second child to first child (temp 4-component vector of uint)
255 0:115        'out_u4' (temp 4-component vector of uint)
256 0:115        AtomicAnd (temp 4-component vector of uint)
257 0:115          'gs_ua4' (temp 4-component vector of uint)
258 0:115          'gs_ub4' (temp 4-component vector of uint)
259 0:116      move second child to first child (temp 4-component vector of uint)
260 0:116        'out_u4' (temp 4-component vector of uint)
261 0:116        AtomicCompSwap (temp 4-component vector of uint)
262 0:116          'gs_ua4' (temp 4-component vector of uint)
263 0:116          'gs_ub4' (temp 4-component vector of uint)
264 0:116          'gs_uc4' (temp 4-component vector of uint)
265 0:117      move second child to first child (temp 4-component vector of uint)
266 0:117        'out_u4' (temp 4-component vector of uint)
267 0:117        AtomicExchange (temp 4-component vector of uint)
268 0:117          'gs_ua4' (temp 4-component vector of uint)
269 0:117          'gs_ub4' (temp 4-component vector of uint)
270 0:118      AtomicMax (global void)
271 0:118        'gs_ua4' (temp 4-component vector of uint)
272 0:118        'gs_ub4' (temp 4-component vector of uint)
273 0:119      move second child to first child (temp 4-component vector of uint)
274 0:119        'out_u4' (temp 4-component vector of uint)
275 0:119        AtomicMax (temp 4-component vector of uint)
276 0:119          'gs_ua4' (temp 4-component vector of uint)
277 0:119          'gs_ub4' (temp 4-component vector of uint)
278 0:120      AtomicMin (global void)
279 0:120        'gs_ua4' (temp 4-component vector of uint)
280 0:120        'gs_ub4' (temp 4-component vector of uint)
281 0:121      move second child to first child (temp 4-component vector of uint)
282 0:121        'out_u4' (temp 4-component vector of uint)
283 0:121        AtomicMin (temp 4-component vector of uint)
284 0:121          'gs_ua4' (temp 4-component vector of uint)
285 0:121          'gs_ub4' (temp 4-component vector of uint)
286 0:122      AtomicOr (global void)
287 0:122        'gs_ua4' (temp 4-component vector of uint)
288 0:122        'gs_ub4' (temp 4-component vector of uint)
289 0:123      move second child to first child (temp 4-component vector of uint)
290 0:123        'out_u4' (temp 4-component vector of uint)
291 0:123        AtomicOr (temp 4-component vector of uint)
292 0:123          'gs_ua4' (temp 4-component vector of uint)
293 0:123          'gs_ub4' (temp 4-component vector of uint)
294 0:124      AtomicXor (global void)
295 0:124        'gs_ua4' (temp 4-component vector of uint)
296 0:124        'gs_ub4' (temp 4-component vector of uint)
297 0:125      move second child to first child (temp 4-component vector of uint)
298 0:125        'out_u4' (temp 4-component vector of uint)
299 0:125        AtomicXor (temp 4-component vector of uint)
300 0:125          'gs_ua4' (temp 4-component vector of uint)
301 0:125          'gs_ub4' (temp 4-component vector of uint)
302 0:128      Branch: Return with expression
303 0:?         Constant:
304 0:?           1.000000
305 0:?           2.000000
306 0:?           3.000000
307 0:?           4.000000
308 0:?   Linker Objects
309 0:?     'gs_ua' (temp uint)
310 0:?     'gs_ub' (temp uint)
311 0:?     'gs_uc' (temp uint)
312 0:?     'gs_ua2' (temp 2-component vector of uint)
313 0:?     'gs_ub2' (temp 2-component vector of uint)
314 0:?     'gs_uc2' (temp 2-component vector of uint)
315 0:?     'gs_ua3' (temp 3-component vector of uint)
316 0:?     'gs_ub3' (temp 3-component vector of uint)
317 0:?     'gs_uc3' (temp 3-component vector of uint)
318 0:?     'gs_ua4' (temp 4-component vector of uint)
319 0:?     'gs_ub4' (temp 4-component vector of uint)
320 0:?     'gs_uc4' (temp 4-component vector of uint)
321
322
323 Linked compute stage:
324
325
326 Shader version: 450
327 local_size = (1, 1, 1)
328 0:? Sequence
329 0:44  Function Definition: ComputeShaderFunction(f1;f1;f1;u1;u1; (temp float)
330 0:17    Function Parameters: 
331 0:17      'inF0' (temp float)
332 0:17      'inF1' (temp float)
333 0:17      'inF2' (temp float)
334 0:17      'inU0' (temp uint)
335 0:17      'inU1' (temp uint)
336 0:?     Sequence
337 0:21      all (global bool)
338 0:21        'inF0' (temp float)
339 0:24      AtomicAdd (global void)
340 0:24        'gs_ua' (temp uint)
341 0:24        'gs_ub' (temp uint)
342 0:25      move second child to first child (temp uint)
343 0:25        'out_u1' (temp uint)
344 0:25        AtomicAdd (temp uint)
345 0:25          'gs_ua' (temp uint)
346 0:25          'gs_ub' (temp uint)
347 0:26      AtomicAnd (global void)
348 0:26        'gs_ua' (temp uint)
349 0:26        'gs_ub' (temp uint)
350 0:27      move second child to first child (temp uint)
351 0:27        'out_u1' (temp uint)
352 0:27        AtomicAnd (temp uint)
353 0:27          'gs_ua' (temp uint)
354 0:27          'gs_ub' (temp uint)
355 0:28      move second child to first child (temp uint)
356 0:28        'out_u1' (temp uint)
357 0:28        AtomicCompSwap (temp uint)
358 0:28          'gs_ua' (temp uint)
359 0:28          'gs_ub' (temp uint)
360 0:28          'gs_uc' (temp uint)
361 0:29      move second child to first child (temp uint)
362 0:29        'out_u1' (temp uint)
363 0:29        AtomicExchange (temp uint)
364 0:29          'gs_ua' (temp uint)
365 0:29          'gs_ub' (temp uint)
366 0:30      AtomicMax (global void)
367 0:30        'gs_ua' (temp uint)
368 0:30        'gs_ub' (temp uint)
369 0:31      move second child to first child (temp uint)
370 0:31        'out_u1' (temp uint)
371 0:31        AtomicMax (temp uint)
372 0:31          'gs_ua' (temp uint)
373 0:31          'gs_ub' (temp uint)
374 0:32      AtomicMin (global void)
375 0:32        'gs_ua' (temp uint)
376 0:32        'gs_ub' (temp uint)
377 0:33      move second child to first child (temp uint)
378 0:33        'out_u1' (temp uint)
379 0:33        AtomicMin (temp uint)
380 0:33          'gs_ua' (temp uint)
381 0:33          'gs_ub' (temp uint)
382 0:34      AtomicOr (global void)
383 0:34        'gs_ua' (temp uint)
384 0:34        'gs_ub' (temp uint)
385 0:35      move second child to first child (temp uint)
386 0:35        'out_u1' (temp uint)
387 0:35        AtomicOr (temp uint)
388 0:35          'gs_ua' (temp uint)
389 0:35          'gs_ub' (temp uint)
390 0:36      AtomicXor (global void)
391 0:36        'gs_ua' (temp uint)
392 0:36        'gs_ub' (temp uint)
393 0:37      move second child to first child (temp uint)
394 0:37        'out_u1' (temp uint)
395 0:37        AtomicXor (temp uint)
396 0:37          'gs_ua' (temp uint)
397 0:37          'gs_ub' (temp uint)
398 0:41      Branch: Return with expression
399 0:41        Constant:
400 0:41          0.000000
401 0:50  Function Definition: ComputeShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float)
402 0:45    Function Parameters: 
403 0:45      'inF0' (temp 1-component vector of float)
404 0:45      'inF1' (temp 1-component vector of float)
405 0:45      'inF2' (temp 1-component vector of float)
406 0:?     Sequence
407 0:47      Branch: Return with expression
408 0:47        Constant:
409 0:47          0.000000
410 0:77  Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float)
411 0:51    Function Parameters: 
412 0:51      'inF0' (temp 2-component vector of float)
413 0:51      'inF1' (temp 2-component vector of float)
414 0:51      'inF2' (temp 2-component vector of float)
415 0:51      'inU0' (temp 2-component vector of uint)
416 0:51      'inU1' (temp 2-component vector of uint)
417 0:?     Sequence
418 0:55      all (global bool)
419 0:55        'inF0' (temp 2-component vector of float)
420 0:58      AtomicAdd (global void)
421 0:58        'gs_ua2' (temp 2-component vector of uint)
422 0:58        'gs_ub2' (temp 2-component vector of uint)
423 0:59      move second child to first child (temp 2-component vector of uint)
424 0:59        'out_u2' (temp 2-component vector of uint)
425 0:59        AtomicAdd (temp 2-component vector of uint)
426 0:59          'gs_ua2' (temp 2-component vector of uint)
427 0:59          'gs_ub2' (temp 2-component vector of uint)
428 0:60      AtomicAnd (global void)
429 0:60        'gs_ua2' (temp 2-component vector of uint)
430 0:60        'gs_ub2' (temp 2-component vector of uint)
431 0:61      move second child to first child (temp 2-component vector of uint)
432 0:61        'out_u2' (temp 2-component vector of uint)
433 0:61        AtomicAnd (temp 2-component vector of uint)
434 0:61          'gs_ua2' (temp 2-component vector of uint)
435 0:61          'gs_ub2' (temp 2-component vector of uint)
436 0:62      move second child to first child (temp 2-component vector of uint)
437 0:62        'out_u2' (temp 2-component vector of uint)
438 0:62        AtomicCompSwap (temp 2-component vector of uint)
439 0:62          'gs_ua2' (temp 2-component vector of uint)
440 0:62          'gs_ub2' (temp 2-component vector of uint)
441 0:62          'gs_uc2' (temp 2-component vector of uint)
442 0:63      move second child to first child (temp 2-component vector of uint)
443 0:63        'out_u2' (temp 2-component vector of uint)
444 0:63        AtomicExchange (temp 2-component vector of uint)
445 0:63          'gs_ua2' (temp 2-component vector of uint)
446 0:63          'gs_ub2' (temp 2-component vector of uint)
447 0:64      AtomicMax (global void)
448 0:64        'gs_ua2' (temp 2-component vector of uint)
449 0:64        'gs_ub2' (temp 2-component vector of uint)
450 0:65      move second child to first child (temp 2-component vector of uint)
451 0:65        'out_u2' (temp 2-component vector of uint)
452 0:65        AtomicMax (temp 2-component vector of uint)
453 0:65          'gs_ua2' (temp 2-component vector of uint)
454 0:65          'gs_ub2' (temp 2-component vector of uint)
455 0:66      AtomicMin (global void)
456 0:66        'gs_ua2' (temp 2-component vector of uint)
457 0:66        'gs_ub2' (temp 2-component vector of uint)
458 0:67      move second child to first child (temp 2-component vector of uint)
459 0:67        'out_u2' (temp 2-component vector of uint)
460 0:67        AtomicMin (temp 2-component vector of uint)
461 0:67          'gs_ua2' (temp 2-component vector of uint)
462 0:67          'gs_ub2' (temp 2-component vector of uint)
463 0:68      AtomicOr (global void)
464 0:68        'gs_ua2' (temp 2-component vector of uint)
465 0:68        'gs_ub2' (temp 2-component vector of uint)
466 0:69      move second child to first child (temp 2-component vector of uint)
467 0:69        'out_u2' (temp 2-component vector of uint)
468 0:69        AtomicOr (temp 2-component vector of uint)
469 0:69          'gs_ua2' (temp 2-component vector of uint)
470 0:69          'gs_ub2' (temp 2-component vector of uint)
471 0:70      AtomicXor (global void)
472 0:70        'gs_ua2' (temp 2-component vector of uint)
473 0:70        'gs_ub2' (temp 2-component vector of uint)
474 0:71      move second child to first child (temp 2-component vector of uint)
475 0:71        'out_u2' (temp 2-component vector of uint)
476 0:71        AtomicXor (temp 2-component vector of uint)
477 0:71          'gs_ua2' (temp 2-component vector of uint)
478 0:71          'gs_ub2' (temp 2-component vector of uint)
479 0:74      Branch: Return with expression
480 0:?         Constant:
481 0:?           1.000000
482 0:?           2.000000
483 0:104  Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float)
484 0:78    Function Parameters: 
485 0:78      'inF0' (temp 3-component vector of float)
486 0:78      'inF1' (temp 3-component vector of float)
487 0:78      'inF2' (temp 3-component vector of float)
488 0:78      'inU0' (temp 3-component vector of uint)
489 0:78      'inU1' (temp 3-component vector of uint)
490 0:?     Sequence
491 0:82      all (global bool)
492 0:82        'inF0' (temp 3-component vector of float)
493 0:85      AtomicAdd (global void)
494 0:85        'gs_ua3' (temp 3-component vector of uint)
495 0:85        'gs_ub3' (temp 3-component vector of uint)
496 0:86      move second child to first child (temp 3-component vector of uint)
497 0:86        'out_u3' (temp 3-component vector of uint)
498 0:86        AtomicAdd (temp 3-component vector of uint)
499 0:86          'gs_ua3' (temp 3-component vector of uint)
500 0:86          'gs_ub3' (temp 3-component vector of uint)
501 0:87      AtomicAnd (global void)
502 0:87        'gs_ua3' (temp 3-component vector of uint)
503 0:87        'gs_ub3' (temp 3-component vector of uint)
504 0:88      move second child to first child (temp 3-component vector of uint)
505 0:88        'out_u3' (temp 3-component vector of uint)
506 0:88        AtomicAnd (temp 3-component vector of uint)
507 0:88          'gs_ua3' (temp 3-component vector of uint)
508 0:88          'gs_ub3' (temp 3-component vector of uint)
509 0:89      move second child to first child (temp 3-component vector of uint)
510 0:89        'out_u3' (temp 3-component vector of uint)
511 0:89        AtomicCompSwap (temp 3-component vector of uint)
512 0:89          'gs_ua3' (temp 3-component vector of uint)
513 0:89          'gs_ub3' (temp 3-component vector of uint)
514 0:89          'gs_uc3' (temp 3-component vector of uint)
515 0:90      move second child to first child (temp 3-component vector of uint)
516 0:90        'out_u3' (temp 3-component vector of uint)
517 0:90        AtomicExchange (temp 3-component vector of uint)
518 0:90          'gs_ua3' (temp 3-component vector of uint)
519 0:90          'gs_ub3' (temp 3-component vector of uint)
520 0:91      AtomicMax (global void)
521 0:91        'gs_ua3' (temp 3-component vector of uint)
522 0:91        'gs_ub3' (temp 3-component vector of uint)
523 0:92      move second child to first child (temp 3-component vector of uint)
524 0:92        'out_u3' (temp 3-component vector of uint)
525 0:92        AtomicMax (temp 3-component vector of uint)
526 0:92          'gs_ua3' (temp 3-component vector of uint)
527 0:92          'gs_ub3' (temp 3-component vector of uint)
528 0:93      AtomicMin (global void)
529 0:93        'gs_ua3' (temp 3-component vector of uint)
530 0:93        'gs_ub3' (temp 3-component vector of uint)
531 0:94      move second child to first child (temp 3-component vector of uint)
532 0:94        'out_u3' (temp 3-component vector of uint)
533 0:94        AtomicMin (temp 3-component vector of uint)
534 0:94          'gs_ua3' (temp 3-component vector of uint)
535 0:94          'gs_ub3' (temp 3-component vector of uint)
536 0:95      AtomicOr (global void)
537 0:95        'gs_ua3' (temp 3-component vector of uint)
538 0:95        'gs_ub3' (temp 3-component vector of uint)
539 0:96      move second child to first child (temp 3-component vector of uint)
540 0:96        'out_u3' (temp 3-component vector of uint)
541 0:96        AtomicOr (temp 3-component vector of uint)
542 0:96          'gs_ua3' (temp 3-component vector of uint)
543 0:96          'gs_ub3' (temp 3-component vector of uint)
544 0:97      AtomicXor (global void)
545 0:97        'gs_ua3' (temp 3-component vector of uint)
546 0:97        'gs_ub3' (temp 3-component vector of uint)
547 0:98      move second child to first child (temp 3-component vector of uint)
548 0:98        'out_u3' (temp 3-component vector of uint)
549 0:98        AtomicXor (temp 3-component vector of uint)
550 0:98          'gs_ua3' (temp 3-component vector of uint)
551 0:98          'gs_ub3' (temp 3-component vector of uint)
552 0:101      Branch: Return with expression
553 0:?         Constant:
554 0:?           1.000000
555 0:?           2.000000
556 0:?           3.000000
557 0:130  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
558 0:105    Function Parameters: 
559 0:105      'inF0' (temp 4-component vector of float)
560 0:105      'inF1' (temp 4-component vector of float)
561 0:105      'inF2' (temp 4-component vector of float)
562 0:105      'inU0' (temp 4-component vector of uint)
563 0:105      'inU1' (temp 4-component vector of uint)
564 0:?     Sequence
565 0:109      all (global bool)
566 0:109        'inF0' (temp 4-component vector of float)
567 0:112      AtomicAdd (global void)
568 0:112        'gs_ua4' (temp 4-component vector of uint)
569 0:112        'gs_ub4' (temp 4-component vector of uint)
570 0:113      move second child to first child (temp 4-component vector of uint)
571 0:113        'out_u4' (temp 4-component vector of uint)
572 0:113        AtomicAdd (temp 4-component vector of uint)
573 0:113          'gs_ua4' (temp 4-component vector of uint)
574 0:113          'gs_ub4' (temp 4-component vector of uint)
575 0:114      AtomicAnd (global void)
576 0:114        'gs_ua4' (temp 4-component vector of uint)
577 0:114        'gs_ub4' (temp 4-component vector of uint)
578 0:115      move second child to first child (temp 4-component vector of uint)
579 0:115        'out_u4' (temp 4-component vector of uint)
580 0:115        AtomicAnd (temp 4-component vector of uint)
581 0:115          'gs_ua4' (temp 4-component vector of uint)
582 0:115          'gs_ub4' (temp 4-component vector of uint)
583 0:116      move second child to first child (temp 4-component vector of uint)
584 0:116        'out_u4' (temp 4-component vector of uint)
585 0:116        AtomicCompSwap (temp 4-component vector of uint)
586 0:116          'gs_ua4' (temp 4-component vector of uint)
587 0:116          'gs_ub4' (temp 4-component vector of uint)
588 0:116          'gs_uc4' (temp 4-component vector of uint)
589 0:117      move second child to first child (temp 4-component vector of uint)
590 0:117        'out_u4' (temp 4-component vector of uint)
591 0:117        AtomicExchange (temp 4-component vector of uint)
592 0:117          'gs_ua4' (temp 4-component vector of uint)
593 0:117          'gs_ub4' (temp 4-component vector of uint)
594 0:118      AtomicMax (global void)
595 0:118        'gs_ua4' (temp 4-component vector of uint)
596 0:118        'gs_ub4' (temp 4-component vector of uint)
597 0:119      move second child to first child (temp 4-component vector of uint)
598 0:119        'out_u4' (temp 4-component vector of uint)
599 0:119        AtomicMax (temp 4-component vector of uint)
600 0:119          'gs_ua4' (temp 4-component vector of uint)
601 0:119          'gs_ub4' (temp 4-component vector of uint)
602 0:120      AtomicMin (global void)
603 0:120        'gs_ua4' (temp 4-component vector of uint)
604 0:120        'gs_ub4' (temp 4-component vector of uint)
605 0:121      move second child to first child (temp 4-component vector of uint)
606 0:121        'out_u4' (temp 4-component vector of uint)
607 0:121        AtomicMin (temp 4-component vector of uint)
608 0:121          'gs_ua4' (temp 4-component vector of uint)
609 0:121          'gs_ub4' (temp 4-component vector of uint)
610 0:122      AtomicOr (global void)
611 0:122        'gs_ua4' (temp 4-component vector of uint)
612 0:122        'gs_ub4' (temp 4-component vector of uint)
613 0:123      move second child to first child (temp 4-component vector of uint)
614 0:123        'out_u4' (temp 4-component vector of uint)
615 0:123        AtomicOr (temp 4-component vector of uint)
616 0:123          'gs_ua4' (temp 4-component vector of uint)
617 0:123          'gs_ub4' (temp 4-component vector of uint)
618 0:124      AtomicXor (global void)
619 0:124        'gs_ua4' (temp 4-component vector of uint)
620 0:124        'gs_ub4' (temp 4-component vector of uint)
621 0:125      move second child to first child (temp 4-component vector of uint)
622 0:125        'out_u4' (temp 4-component vector of uint)
623 0:125        AtomicXor (temp 4-component vector of uint)
624 0:125          'gs_ua4' (temp 4-component vector of uint)
625 0:125          'gs_ub4' (temp 4-component vector of uint)
626 0:128      Branch: Return with expression
627 0:?         Constant:
628 0:?           1.000000
629 0:?           2.000000
630 0:?           3.000000
631 0:?           4.000000
632 0:?   Linker Objects
633 0:?     'gs_ua' (temp uint)
634 0:?     'gs_ub' (temp uint)
635 0:?     'gs_uc' (temp uint)
636 0:?     'gs_ua2' (temp 2-component vector of uint)
637 0:?     'gs_ub2' (temp 2-component vector of uint)
638 0:?     'gs_uc2' (temp 2-component vector of uint)
639 0:?     'gs_ua3' (temp 3-component vector of uint)
640 0:?     'gs_ub3' (temp 3-component vector of uint)
641 0:?     'gs_uc3' (temp 3-component vector of uint)
642 0:?     'gs_ua4' (temp 4-component vector of uint)
643 0:?     'gs_ub4' (temp 4-component vector of uint)
644 0:?     'gs_uc4' (temp 4-component vector of uint)
645
646 // Module Version 10000
647 // Generated by (magic number): 80001
648 // Id's are bound by 182
649
650                               Capability Shader
651                1:             ExtInstImport  "GLSL.std.450"
652                               MemoryModel Logical GLSL450
653                               EntryPoint GLCompute 4  "ComputeShaderFunction"
654                               ExecutionMode 4 LocalSize 1 1 1
655                               Source HLSL 450
656                               Name 4  "ComputeShaderFunction"
657                               Name 8  "inF0"
658                               Name 14  "gs_ua"
659                               Name 15  "gs_ub"
660                               Name 20  "out_u1"
661                               Name 28  "gs_uc"
662                               Name 54  "inF0"
663                               Name 59  "gs_ua2"
664                               Name 60  "gs_ub2"
665                               Name 63  "out_u2"
666                               Name 71  "gs_uc2"
667                               Name 98  "inF0"
668                               Name 103  "gs_ua3"
669                               Name 104  "gs_ub3"
670                               Name 107  "out_u3"
671                               Name 115  "gs_uc3"
672                               Name 141  "inF0"
673                               Name 146  "gs_ua4"
674                               Name 147  "gs_ub4"
675                               Name 150  "out_u4"
676                               Name 158  "gs_uc4"
677                2:             TypeVoid
678                3:             TypeFunction 2
679                6:             TypeFloat 32
680                7:             TypePointer Function 6(float)
681               10:             TypeBool
682               12:             TypeInt 32 0
683               13:             TypePointer Function 12(int)
684               17:     12(int) Constant 1
685               18:     12(int) Constant 0
686               49:    6(float) Constant 0
687               52:             TypeVector 6(float) 2
688               53:             TypePointer Function 52(fvec2)
689               57:             TypeVector 12(int) 2
690               58:             TypePointer Function 57(ivec2)
691               92:    6(float) Constant 1065353216
692               93:    6(float) Constant 1073741824
693               94:   52(fvec2) ConstantComposite 92 93
694               96:             TypeVector 6(float) 3
695               97:             TypePointer Function 96(fvec3)
696              101:             TypeVector 12(int) 3
697              102:             TypePointer Function 101(ivec3)
698              136:    6(float) Constant 1077936128
699              137:   96(fvec3) ConstantComposite 92 93 136
700              139:             TypeVector 6(float) 4
701              140:             TypePointer Function 139(fvec4)
702              144:             TypeVector 12(int) 4
703              145:             TypePointer Function 144(ivec4)
704              179:    6(float) Constant 1082130432
705              180:  139(fvec4) ConstantComposite 92 93 136 179
706 4(ComputeShaderFunction):           2 Function None 3
707                5:             Label
708          8(inF0):      7(ptr) Variable Function
709        14(gs_ua):     13(ptr) Variable Function
710        15(gs_ub):     13(ptr) Variable Function
711       20(out_u1):     13(ptr) Variable Function
712        28(gs_uc):     13(ptr) Variable Function
713         54(inF0):     53(ptr) Variable Function
714       59(gs_ua2):     58(ptr) Variable Function
715       60(gs_ub2):     58(ptr) Variable Function
716       63(out_u2):     58(ptr) Variable Function
717       71(gs_uc2):     58(ptr) Variable Function
718         98(inF0):     97(ptr) Variable Function
719      103(gs_ua3):    102(ptr) Variable Function
720      104(gs_ub3):    102(ptr) Variable Function
721      107(out_u3):    102(ptr) Variable Function
722      115(gs_uc3):    102(ptr) Variable Function
723        141(inF0):    140(ptr) Variable Function
724      146(gs_ua4):    145(ptr) Variable Function
725      147(gs_ub4):    145(ptr) Variable Function
726      150(out_u4):    145(ptr) Variable Function
727      158(gs_uc4):    145(ptr) Variable Function
728                9:    6(float) Load 8(inF0)
729               11:    10(bool) All 9
730               16:     12(int) Load 15(gs_ub)
731               19:           2 AtomicIAdd 14(gs_ua) 17 18 16
732               21:     12(int) Load 15(gs_ub)
733               22:     12(int) AtomicIAdd 14(gs_ua) 17 18 21
734                               Store 20(out_u1) 22
735               23:     12(int) Load 15(gs_ub)
736               24:           2 AtomicAnd 14(gs_ua) 17 18 23
737               25:     12(int) Load 15(gs_ub)
738               26:     12(int) AtomicAnd 14(gs_ua) 17 18 25
739                               Store 20(out_u1) 26
740               27:     12(int) Load 15(gs_ub)
741               29:     12(int) Load 28(gs_uc)
742               30:     12(int) AtomicCompareExchange 14(gs_ua) 17 18 18 29 27
743                               Store 20(out_u1) 30
744               31:     12(int) Load 15(gs_ub)
745               32:     12(int) AtomicExchange 14(gs_ua) 17 18 31
746                               Store 20(out_u1) 32
747               33:     12(int) Load 15(gs_ub)
748               34:           2 AtomicSMax 14(gs_ua) 17 18 33
749               35:     12(int) Load 15(gs_ub)
750               36:     12(int) AtomicUMax 14(gs_ua) 17 18 35
751                               Store 20(out_u1) 36
752               37:     12(int) Load 15(gs_ub)
753               38:           2 AtomicSMin 14(gs_ua) 17 18 37
754               39:     12(int) Load 15(gs_ub)
755               40:     12(int) AtomicUMin 14(gs_ua) 17 18 39
756                               Store 20(out_u1) 40
757               41:     12(int) Load 15(gs_ub)
758               42:           2 AtomicOr 14(gs_ua) 17 18 41
759               43:     12(int) Load 15(gs_ub)
760               44:     12(int) AtomicOr 14(gs_ua) 17 18 43
761                               Store 20(out_u1) 44
762               45:     12(int) Load 15(gs_ub)
763               46:           2 AtomicXor 14(gs_ua) 17 18 45
764               47:     12(int) Load 15(gs_ub)
765               48:     12(int) AtomicXor 14(gs_ua) 17 18 47
766                               Store 20(out_u1) 48
767                               ReturnValue 49
768                               FunctionEnd