1hlsl.structbuffer.atomics.frag
2Shader version: 500
3gl_FragCoord origin is upper left
40:? Sequence
50:5  Function Definition: @main(u1; ( temp 4-component vector of float)
60:5    Function Parameters:
70:5      'pos' ( in uint)
80:?     Sequence
90:8      AtomicAdd ( temp uint)
100:8        indirect index (layout( row_major std430) buffer uint)
110:8          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
120:8            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
130:8            Constant:
140:8              0 (const uint)
150:8          right-shift ( temp int)
160:8            Constant:
170:8              8 (const int)
180:8            Constant:
190:8              2 (const int)
200:8        Constant:
210:8          1 (const int)
220:9      move second child to first child ( temp uint)
230:9        'u' ( temp uint)
240:9        AtomicAdd ( temp uint)
250:9          indirect index (layout( row_major std430) buffer uint)
260:9            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
270:9              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
280:9              Constant:
290:9                0 (const uint)
300:9            right-shift ( temp int)
310:9              Constant:
320:9                8 (const int)
330:9              Constant:
340:9                2 (const int)
350:9          Constant:
360:9            1 (const int)
370:10      AtomicAnd ( temp uint)
380:10        indirect index (layout( row_major std430) buffer uint)
390:10          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
400:10            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
410:10            Constant:
420:10              0 (const uint)
430:10          right-shift ( temp int)
440:10            Constant:
450:10              8 (const int)
460:10            Constant:
470:10              2 (const int)
480:10        Constant:
490:10          1 (const int)
500:11      move second child to first child ( temp uint)
510:11        'u' ( temp uint)
520:11        AtomicAnd ( temp uint)
530:11          indirect index (layout( row_major std430) buffer uint)
540:11            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
550:11              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
560:11              Constant:
570:11                0 (const uint)
580:11            right-shift ( temp int)
590:11              Constant:
600:11                8 (const int)
610:11              Constant:
620:11                2 (const int)
630:11          Constant:
640:11            1 (const int)
650:12      move second child to first child ( temp uint)
660:12        'u' ( temp uint)
670:12        Convert int to uint ( temp uint)
680:12          AtomicCompSwap ( temp int)
690:12            indirect index (layout( row_major std430) buffer uint)
700:12              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
710:12                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
720:12                Constant:
730:12                  0 (const uint)
740:12              right-shift ( temp int)
750:12                Constant:
760:12                  8 (const int)
770:12                Constant:
780:12                  2 (const int)
790:12            Constant:
800:12              1 (const int)
810:12            Constant:
820:12              2 (const int)
830:14      move second child to first child ( temp uint)
840:14        'u' ( temp uint)
850:14        AtomicExchange ( temp uint)
860:14          indirect index (layout( row_major std430) buffer uint)
870:14            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
880:14              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
890:14              Constant:
900:14                0 (const uint)
910:14            right-shift ( temp int)
920:14              Constant:
930:14                8 (const int)
940:14              Constant:
950:14                2 (const int)
960:14          Constant:
970:14            1 (const int)
980:15      AtomicMax ( temp uint)
990:15        indirect index (layout( row_major std430) buffer uint)
1000:15          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1010:15            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1020:15            Constant:
1030:15              0 (const uint)
1040:15          right-shift ( temp int)
1050:15            Constant:
1060:15              8 (const int)
1070:15            Constant:
1080:15              2 (const int)
1090:15        Constant:
1100:15          1 (const int)
1110:16      move second child to first child ( temp uint)
1120:16        'u' ( temp uint)
1130:16        AtomicMax ( temp uint)
1140:16          indirect index (layout( row_major std430) buffer uint)
1150:16            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1160:16              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1170:16              Constant:
1180:16                0 (const uint)
1190:16            right-shift ( temp int)
1200:16              Constant:
1210:16                8 (const int)
1220:16              Constant:
1230:16                2 (const int)
1240:16          Constant:
1250:16            1 (const int)
1260:17      AtomicMin ( temp uint)
1270:17        indirect index (layout( row_major std430) buffer uint)
1280:17          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1290:17            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1300:17            Constant:
1310:17              0 (const uint)
1320:17          right-shift ( temp int)
1330:17            Constant:
1340:17              8 (const int)
1350:17            Constant:
1360:17              2 (const int)
1370:17        Constant:
1380:17          1 (const int)
1390:18      move second child to first child ( temp uint)
1400:18        'u' ( temp uint)
1410:18        AtomicMin ( temp uint)
1420:18          indirect index (layout( row_major std430) buffer uint)
1430:18            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1440:18              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1450:18              Constant:
1460:18                0 (const uint)
1470:18            right-shift ( temp int)
1480:18              Constant:
1490:18                8 (const int)
1500:18              Constant:
1510:18                2 (const int)
1520:18          Constant:
1530:18            1 (const int)
1540:19      AtomicOr ( temp uint)
1550:19        indirect index (layout( row_major std430) buffer uint)
1560:19          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1570:19            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1580:19            Constant:
1590:19              0 (const uint)
1600:19          right-shift ( temp int)
1610:19            Constant:
1620:19              8 (const int)
1630:19            Constant:
1640:19              2 (const int)
1650:19        Constant:
1660:19          1 (const int)
1670:20      move second child to first child ( temp uint)
1680:20        'u' ( temp uint)
1690:20        AtomicOr ( temp uint)
1700:20          indirect index (layout( row_major std430) buffer uint)
1710:20            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1720:20              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1730:20              Constant:
1740:20                0 (const uint)
1750:20            right-shift ( temp int)
1760:20              Constant:
1770:20                8 (const int)
1780:20              Constant:
1790:20                2 (const int)
1800:20          Constant:
1810:20            1 (const int)
1820:21      AtomicXor ( temp uint)
1830:21        indirect index (layout( row_major std430) buffer uint)
1840:21          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1850:21            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1860:21            Constant:
1870:21              0 (const uint)
1880:21          right-shift ( temp int)
1890:21            Constant:
1900:21              8 (const int)
1910:21            Constant:
1920:21              2 (const int)
1930:21        Constant:
1940:21          1 (const int)
1950:22      move second child to first child ( temp uint)
1960:22        'u' ( temp uint)
1970:22        AtomicXor ( temp uint)
1980:22          indirect index (layout( row_major std430) buffer uint)
1990:22            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2000:22              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2010:22              Constant:
2020:22                0 (const uint)
2030:22            right-shift ( temp int)
2040:22              Constant:
2050:22                8 (const int)
2060:22              Constant:
2070:22                2 (const int)
2080:22          Constant:
2090:22            1 (const int)
2100:24      Branch: Return with expression
2110:24        Construct vec4 ( temp 4-component vector of float)
2120:24          Convert uint to float ( temp float)
2130:24            indirect index (layout( row_major std430) buffer uint)
2140:24              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2150:24                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2160:24                Constant:
2170:24                  0 (const uint)
2180:24              right-shift ( temp int)
2190:24                'pos' ( in uint)
2200:24                Constant:
2210:24                  2 (const int)
2220:5  Function Definition: main( ( temp void)
2230:5    Function Parameters:
2240:?     Sequence
2250:5      move second child to first child ( temp uint)
2260:?         'pos' ( temp uint)
2270:?         'pos' (layout( location=0) flat in uint)
2280:5      move second child to first child ( temp 4-component vector of float)
2290:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
2300:5        Function Call: @main(u1; ( temp 4-component vector of float)
2310:?           'pos' ( temp uint)
2320:?   Linker Objects
2330:?     'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2340:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
2350:?     'pos' (layout( location=0) flat in uint)
236
237
238Linked fragment stage:
239
240
241Shader version: 500
242gl_FragCoord origin is upper left
2430:? Sequence
2440:5  Function Definition: @main(u1; ( temp 4-component vector of float)
2450:5    Function Parameters:
2460:5      'pos' ( in uint)
2470:?     Sequence
2480:8      AtomicAdd ( temp uint)
2490:8        indirect index (layout( row_major std430) buffer uint)
2500:8          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2510:8            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2520:8            Constant:
2530:8              0 (const uint)
2540:8          right-shift ( temp int)
2550:8            Constant:
2560:8              8 (const int)
2570:8            Constant:
2580:8              2 (const int)
2590:8        Constant:
2600:8          1 (const int)
2610:9      move second child to first child ( temp uint)
2620:9        'u' ( temp uint)
2630:9        AtomicAdd ( temp uint)
2640:9          indirect index (layout( row_major std430) buffer uint)
2650:9            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2660:9              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2670:9              Constant:
2680:9                0 (const uint)
2690:9            right-shift ( temp int)
2700:9              Constant:
2710:9                8 (const int)
2720:9              Constant:
2730:9                2 (const int)
2740:9          Constant:
2750:9            1 (const int)
2760:10      AtomicAnd ( temp uint)
2770:10        indirect index (layout( row_major std430) buffer uint)
2780:10          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2790:10            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2800:10            Constant:
2810:10              0 (const uint)
2820:10          right-shift ( temp int)
2830:10            Constant:
2840:10              8 (const int)
2850:10            Constant:
2860:10              2 (const int)
2870:10        Constant:
2880:10          1 (const int)
2890:11      move second child to first child ( temp uint)
2900:11        'u' ( temp uint)
2910:11        AtomicAnd ( temp uint)
2920:11          indirect index (layout( row_major std430) buffer uint)
2930:11            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2940:11              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2950:11              Constant:
2960:11                0 (const uint)
2970:11            right-shift ( temp int)
2980:11              Constant:
2990:11                8 (const int)
3000:11              Constant:
3010:11                2 (const int)
3020:11          Constant:
3030:11            1 (const int)
3040:12      move second child to first child ( temp uint)
3050:12        'u' ( temp uint)
3060:12        Convert int to uint ( temp uint)
3070:12          AtomicCompSwap ( temp int)
3080:12            indirect index (layout( row_major std430) buffer uint)
3090:12              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
3100:12                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
3110:12                Constant:
3120:12                  0 (const uint)
3130:12              right-shift ( temp int)
3140:12                Constant:
3150:12                  8 (const int)
3160:12                Constant:
3170:12                  2 (const int)
3180:12            Constant:
3190:12              1 (const int)
3200:12            Constant:
3210:12              2 (const int)
3220:14      move second child to first child ( temp uint)
3230:14        'u' ( temp uint)
3240:14        AtomicExchange ( temp uint)
3250:14          indirect index (layout( row_major std430) buffer uint)
3260:14            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
3270:14              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
3280:14              Constant:
3290:14                0 (const uint)
3300:14            right-shift ( temp int)
3310:14              Constant:
3320:14                8 (const int)
3330:14              Constant:
3340:14                2 (const int)
3350:14          Constant:
3360:14            1 (const int)
3370:15      AtomicMax ( temp uint)
3380:15        indirect index (layout( row_major std430) buffer uint)
3390:15          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
3400:15            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
3410:15            Constant:
3420:15              0 (const uint)
3430:15          right-shift ( temp int)
3440:15            Constant:
3450:15              8 (const int)
3460:15            Constant:
3470:15              2 (const int)
3480:15        Constant:
3490:15          1 (const int)
3500:16      move second child to first child ( temp uint)
3510:16        'u' ( temp uint)
3520:16        AtomicMax ( temp uint)
3530:16          indirect index (layout( row_major std430) buffer uint)
3540:16            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
3550:16              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
3560:16              Constant:
3570:16                0 (const uint)
3580:16            right-shift ( temp int)
3590:16              Constant:
3600:16                8 (const int)
3610:16              Constant:
3620:16                2 (const int)
3630:16          Constant:
3640:16            1 (const int)
3650:17      AtomicMin ( temp uint)
3660:17        indirect index (layout( row_major std430) buffer uint)
3670:17          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
3680:17            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
3690:17            Constant:
3700:17              0 (const uint)
3710:17          right-shift ( temp int)
3720:17            Constant:
3730:17              8 (const int)
3740:17            Constant:
3750:17              2 (const int)
3760:17        Constant:
3770:17          1 (const int)
3780:18      move second child to first child ( temp uint)
3790:18        'u' ( temp uint)
3800:18        AtomicMin ( temp uint)
3810:18          indirect index (layout( row_major std430) buffer uint)
3820:18            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
3830:18              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
3840:18              Constant:
3850:18                0 (const uint)
3860:18            right-shift ( temp int)
3870:18              Constant:
3880:18                8 (const int)
3890:18              Constant:
3900:18                2 (const int)
3910:18          Constant:
3920:18            1 (const int)
3930:19      AtomicOr ( temp uint)
3940:19        indirect index (layout( row_major std430) buffer uint)
3950:19          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
3960:19            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
3970:19            Constant:
3980:19              0 (const uint)
3990:19          right-shift ( temp int)
4000:19            Constant:
4010:19              8 (const int)
4020:19            Constant:
4030:19              2 (const int)
4040:19        Constant:
4050:19          1 (const int)
4060:20      move second child to first child ( temp uint)
4070:20        'u' ( temp uint)
4080:20        AtomicOr ( temp uint)
4090:20          indirect index (layout( row_major std430) buffer uint)
4100:20            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
4110:20              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
4120:20              Constant:
4130:20                0 (const uint)
4140:20            right-shift ( temp int)
4150:20              Constant:
4160:20                8 (const int)
4170:20              Constant:
4180:20                2 (const int)
4190:20          Constant:
4200:20            1 (const int)
4210:21      AtomicXor ( temp uint)
4220:21        indirect index (layout( row_major std430) buffer uint)
4230:21          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
4240:21            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
4250:21            Constant:
4260:21              0 (const uint)
4270:21          right-shift ( temp int)
4280:21            Constant:
4290:21              8 (const int)
4300:21            Constant:
4310:21              2 (const int)
4320:21        Constant:
4330:21          1 (const int)
4340:22      move second child to first child ( temp uint)
4350:22        'u' ( temp uint)
4360:22        AtomicXor ( temp uint)
4370:22          indirect index (layout( row_major std430) buffer uint)
4380:22            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
4390:22              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
4400:22              Constant:
4410:22                0 (const uint)
4420:22            right-shift ( temp int)
4430:22              Constant:
4440:22                8 (const int)
4450:22              Constant:
4460:22                2 (const int)
4470:22          Constant:
4480:22            1 (const int)
4490:24      Branch: Return with expression
4500:24        Construct vec4 ( temp 4-component vector of float)
4510:24          Convert uint to float ( temp float)
4520:24            indirect index (layout( row_major std430) buffer uint)
4530:24              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
4540:24                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
4550:24                Constant:
4560:24                  0 (const uint)
4570:24              right-shift ( temp int)
4580:24                'pos' ( in uint)
4590:24                Constant:
4600:24                  2 (const int)
4610:5  Function Definition: main( ( temp void)
4620:5    Function Parameters:
4630:?     Sequence
4640:5      move second child to first child ( temp uint)
4650:?         'pos' ( temp uint)
4660:?         'pos' (layout( location=0) flat in uint)
4670:5      move second child to first child ( temp 4-component vector of float)
4680:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
4690:5        Function Call: @main(u1; ( temp 4-component vector of float)
4700:?           'pos' ( temp uint)
4710:?   Linker Objects
4720:?     'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
4730:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
4740:?     'pos' (layout( location=0) flat in uint)
475
476// Module Version 10000
477// Generated by (magic number): 80007
478// Id's are bound by 87
479
480                              Capability Shader
481               1:             ExtInstImport  "GLSL.std.450"
482                              MemoryModel Logical GLSL450
483                              EntryPoint Fragment 4  "main" 80 83
484                              ExecutionMode 4 OriginUpperLeft
485                              Source HLSL 500
486                              Name 4  "main"
487                              Name 12  "@main(u1;"
488                              Name 11  "pos"
489                              Name 15  "sbuf"
490                              MemberName 15(sbuf) 0  "@data"
491                              Name 17  "sbuf"
492                              Name 29  "u"
493                              Name 78  "pos"
494                              Name 80  "pos"
495                              Name 83  "@entryPointOutput"
496                              Name 84  "param"
497                              Decorate 14 ArrayStride 4
498                              MemberDecorate 15(sbuf) 0 Offset 0
499                              Decorate 15(sbuf) BufferBlock
500                              Decorate 17(sbuf) DescriptorSet 0
501                              Decorate 80(pos) Flat
502                              Decorate 80(pos) Location 0
503                              Decorate 83(@entryPointOutput) Location 0
504               2:             TypeVoid
505               3:             TypeFunction 2
506               6:             TypeInt 32 0
507               7:             TypePointer Function 6(int)
508               8:             TypeFloat 32
509               9:             TypeVector 8(float) 4
510              10:             TypeFunction 9(fvec4) 7(ptr)
511              14:             TypeRuntimeArray 6(int)
512        15(sbuf):             TypeStruct 14
513              16:             TypePointer Uniform 15(sbuf)
514        17(sbuf):     16(ptr) Variable Uniform
515              18:             TypeInt 32 1
516              19:     18(int) Constant 0
517              20:     18(int) Constant 8
518              21:     18(int) Constant 2
519              23:             TypePointer Uniform 6(int)
520              25:     18(int) Constant 1
521              26:      6(int) Constant 1
522              27:      6(int) Constant 0
523              79:             TypePointer Input 6(int)
524         80(pos):     79(ptr) Variable Input
525              82:             TypePointer Output 9(fvec4)
52683(@entryPointOutput):     82(ptr) Variable Output
527         4(main):           2 Function None 3
528               5:             Label
529         78(pos):      7(ptr) Variable Function
530       84(param):      7(ptr) Variable Function
531              81:      6(int) Load 80(pos)
532                              Store 78(pos) 81
533              85:      6(int) Load 78(pos)
534                              Store 84(param) 85
535              86:    9(fvec4) FunctionCall 12(@main(u1;) 84(param)
536                              Store 83(@entryPointOutput) 86
537                              Return
538                              FunctionEnd
539   12(@main(u1;):    9(fvec4) Function None 10
540         11(pos):      7(ptr) FunctionParameter
541              13:             Label
542           29(u):      7(ptr) Variable Function
543              22:     18(int) ShiftRightArithmetic 20 21
544              24:     23(ptr) AccessChain 17(sbuf) 19 22
545              28:      6(int) AtomicIAdd 24 26 27 25
546              30:     18(int) ShiftRightArithmetic 20 21
547              31:     23(ptr) AccessChain 17(sbuf) 19 30
548              32:      6(int) AtomicIAdd 31 26 27 25
549                              Store 29(u) 32
550              33:     18(int) ShiftRightArithmetic 20 21
551              34:     23(ptr) AccessChain 17(sbuf) 19 33
552              35:      6(int) AtomicAnd 34 26 27 25
553              36:     18(int) ShiftRightArithmetic 20 21
554              37:     23(ptr) AccessChain 17(sbuf) 19 36
555              38:      6(int) AtomicAnd 37 26 27 25
556                              Store 29(u) 38
557              39:     18(int) ShiftRightArithmetic 20 21
558              40:     23(ptr) AccessChain 17(sbuf) 19 39
559              41:     18(int) AtomicCompareExchange 40 26 27 27 21 25
560              42:      6(int) Bitcast 41
561                              Store 29(u) 42
562              43:     18(int) ShiftRightArithmetic 20 21
563              44:     23(ptr) AccessChain 17(sbuf) 19 43
564              45:      6(int) AtomicExchange 44 26 27 25
565                              Store 29(u) 45
566              46:     18(int) ShiftRightArithmetic 20 21
567              47:     23(ptr) AccessChain 17(sbuf) 19 46
568              48:      6(int) AtomicUMax 47 26 27 25
569              49:     18(int) ShiftRightArithmetic 20 21
570              50:     23(ptr) AccessChain 17(sbuf) 19 49
571              51:      6(int) AtomicUMax 50 26 27 25
572                              Store 29(u) 51
573              52:     18(int) ShiftRightArithmetic 20 21
574              53:     23(ptr) AccessChain 17(sbuf) 19 52
575              54:      6(int) AtomicUMin 53 26 27 25
576              55:     18(int) ShiftRightArithmetic 20 21
577              56:     23(ptr) AccessChain 17(sbuf) 19 55
578              57:      6(int) AtomicUMin 56 26 27 25
579                              Store 29(u) 57
580              58:     18(int) ShiftRightArithmetic 20 21
581              59:     23(ptr) AccessChain 17(sbuf) 19 58
582              60:      6(int) AtomicOr 59 26 27 25
583              61:     18(int) ShiftRightArithmetic 20 21
584              62:     23(ptr) AccessChain 17(sbuf) 19 61
585              63:      6(int) AtomicOr 62 26 27 25
586                              Store 29(u) 63
587              64:     18(int) ShiftRightArithmetic 20 21
588              65:     23(ptr) AccessChain 17(sbuf) 19 64
589              66:      6(int) AtomicXor 65 26 27 25
590              67:     18(int) ShiftRightArithmetic 20 21
591              68:     23(ptr) AccessChain 17(sbuf) 19 67
592              69:      6(int) AtomicXor 68 26 27 25
593                              Store 29(u) 69
594              70:      6(int) Load 11(pos)
595              71:     18(int) ShiftRightLogical 70 21
596              72:     23(ptr) AccessChain 17(sbuf) 19 71
597              73:      6(int) Load 72
598              74:    8(float) ConvertUToF 73
599              75:    9(fvec4) CompositeConstruct 74 74 74 74
600                              ReturnValue 75
601                              FunctionEnd
602