hlsl.structbuffer.atomics.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:5  Function Definition: @main(u1; ( temp 4-component vector of float)
0:5    Function Parameters: 
0:5      'pos' ( in uint)
0:?     Sequence
0:8      AtomicAdd ( temp uint)
0:8        indirect index (layout( row_major std430) buffer uint)
0:8          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:8            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:8            Constant:
0:8              0 (const uint)
0:8          right-shift ( temp int)
0:8            Constant:
0:8              8 (const int)
0:8            Constant:
0:8              2 (const int)
0:8        Constant:
0:8          1 (const int)
0:9      move second child to first child ( temp uint)
0:9        'u' ( temp uint)
0:9        AtomicAdd ( temp uint)
0:9          indirect index (layout( row_major std430) buffer uint)
0:9            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:9              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:9              Constant:
0:9                0 (const uint)
0:9            right-shift ( temp int)
0:9              Constant:
0:9                8 (const int)
0:9              Constant:
0:9                2 (const int)
0:9          Constant:
0:9            1 (const int)
0:10      AtomicAnd ( temp uint)
0:10        indirect index (layout( row_major std430) buffer uint)
0:10          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10            Constant:
0:10              0 (const uint)
0:10          right-shift ( temp int)
0:10            Constant:
0:10              8 (const int)
0:10            Constant:
0:10              2 (const int)
0:10        Constant:
0:10          1 (const int)
0:11      move second child to first child ( temp uint)
0:11        'u' ( temp uint)
0:11        AtomicAnd ( temp uint)
0:11          indirect index (layout( row_major std430) buffer uint)
0:11            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11              Constant:
0:11                0 (const uint)
0:11            right-shift ( temp int)
0:11              Constant:
0:11                8 (const int)
0:11              Constant:
0:11                2 (const int)
0:11          Constant:
0:11            1 (const int)
0:12      move second child to first child ( temp uint)
0:12        'u' ( temp uint)
0:12        Convert int to uint ( temp uint)
0:12          AtomicCompSwap ( temp int)
0:12            indirect index (layout( row_major std430) buffer uint)
0:12              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12                Constant:
0:12                  0 (const uint)
0:12              right-shift ( temp int)
0:12                Constant:
0:12                  8 (const int)
0:12                Constant:
0:12                  2 (const int)
0:12            Constant:
0:12              1 (const int)
0:12            Constant:
0:12              2 (const int)
0:14      move second child to first child ( temp uint)
0:14        'u' ( temp uint)
0:14        AtomicExchange ( temp uint)
0:14          indirect index (layout( row_major std430) buffer uint)
0:14            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:14              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:14              Constant:
0:14                0 (const uint)
0:14            right-shift ( temp int)
0:14              Constant:
0:14                8 (const int)
0:14              Constant:
0:14                2 (const int)
0:14          Constant:
0:14            1 (const int)
0:15      AtomicMax ( temp uint)
0:15        indirect index (layout( row_major std430) buffer uint)
0:15          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:15            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:15            Constant:
0:15              0 (const uint)
0:15          right-shift ( temp int)
0:15            Constant:
0:15              8 (const int)
0:15            Constant:
0:15              2 (const int)
0:15        Constant:
0:15          1 (const int)
0:16      move second child to first child ( temp uint)
0:16        'u' ( temp uint)
0:16        AtomicMax ( temp uint)
0:16          indirect index (layout( row_major std430) buffer uint)
0:16            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:16              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:16              Constant:
0:16                0 (const uint)
0:16            right-shift ( temp int)
0:16              Constant:
0:16                8 (const int)
0:16              Constant:
0:16                2 (const int)
0:16          Constant:
0:16            1 (const int)
0:17      AtomicMin ( temp uint)
0:17        indirect index (layout( row_major std430) buffer uint)
0:17          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:17            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:17            Constant:
0:17              0 (const uint)
0:17          right-shift ( temp int)
0:17            Constant:
0:17              8 (const int)
0:17            Constant:
0:17              2 (const int)
0:17        Constant:
0:17          1 (const int)
0:18      move second child to first child ( temp uint)
0:18        'u' ( temp uint)
0:18        AtomicMin ( temp uint)
0:18          indirect index (layout( row_major std430) buffer uint)
0:18            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:18              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:18              Constant:
0:18                0 (const uint)
0:18            right-shift ( temp int)
0:18              Constant:
0:18                8 (const int)
0:18              Constant:
0:18                2 (const int)
0:18          Constant:
0:18            1 (const int)
0:19      AtomicOr ( temp uint)
0:19        indirect index (layout( row_major std430) buffer uint)
0:19          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:19            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:19            Constant:
0:19              0 (const uint)
0:19          right-shift ( temp int)
0:19            Constant:
0:19              8 (const int)
0:19            Constant:
0:19              2 (const int)
0:19        Constant:
0:19          1 (const int)
0:20      move second child to first child ( temp uint)
0:20        'u' ( temp uint)
0:20        AtomicOr ( temp uint)
0:20          indirect index (layout( row_major std430) buffer uint)
0:20            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:20              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:20              Constant:
0:20                0 (const uint)
0:20            right-shift ( temp int)
0:20              Constant:
0:20                8 (const int)
0:20              Constant:
0:20                2 (const int)
0:20          Constant:
0:20            1 (const int)
0:21      AtomicXor ( temp uint)
0:21        indirect index (layout( row_major std430) buffer uint)
0:21          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:21            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:21            Constant:
0:21              0 (const uint)
0:21          right-shift ( temp int)
0:21            Constant:
0:21              8 (const int)
0:21            Constant:
0:21              2 (const int)
0:21        Constant:
0:21          1 (const int)
0:22      move second child to first child ( temp uint)
0:22        'u' ( temp uint)
0:22        AtomicXor ( temp uint)
0:22          indirect index (layout( row_major std430) buffer uint)
0:22            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:22              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:22              Constant:
0:22                0 (const uint)
0:22            right-shift ( temp int)
0:22              Constant:
0:22                8 (const int)
0:22              Constant:
0:22                2 (const int)
0:22          Constant:
0:22            1 (const int)
0:24      Branch: Return with expression
0:24        Construct vec4 ( temp 4-component vector of float)
0:24          Convert uint to float ( temp float)
0:24            indirect index (layout( row_major std430) buffer uint)
0:24              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:24                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:24                Constant:
0:24                  0 (const uint)
0:24              right-shift ( temp int)
0:24                'pos' ( in uint)
0:24                Constant:
0:24                  2 (const int)
0:5  Function Definition: main( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:5      move second child to first child ( temp uint)
0:?         'pos' ( temp uint)
0:?         'pos' (layout( location=0) flat in uint)
0:5      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:5        Function Call: @main(u1; ( temp 4-component vector of float)
0:?           'pos' ( temp uint)
0:?   Linker Objects
0:?     'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'pos' (layout( location=0) flat in uint)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:5  Function Definition: @main(u1; ( temp 4-component vector of float)
0:5    Function Parameters: 
0:5      'pos' ( in uint)
0:?     Sequence
0:8      AtomicAdd ( temp uint)
0:8        indirect index (layout( row_major std430) buffer uint)
0:8          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:8            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:8            Constant:
0:8              0 (const uint)
0:8          right-shift ( temp int)
0:8            Constant:
0:8              8 (const int)
0:8            Constant:
0:8              2 (const int)
0:8        Constant:
0:8          1 (const int)
0:9      move second child to first child ( temp uint)
0:9        'u' ( temp uint)
0:9        AtomicAdd ( temp uint)
0:9          indirect index (layout( row_major std430) buffer uint)
0:9            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:9              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:9              Constant:
0:9                0 (const uint)
0:9            right-shift ( temp int)
0:9              Constant:
0:9                8 (const int)
0:9              Constant:
0:9                2 (const int)
0:9          Constant:
0:9            1 (const int)
0:10      AtomicAnd ( temp uint)
0:10        indirect index (layout( row_major std430) buffer uint)
0:10          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10            Constant:
0:10              0 (const uint)
0:10          right-shift ( temp int)
0:10            Constant:
0:10              8 (const int)
0:10            Constant:
0:10              2 (const int)
0:10        Constant:
0:10          1 (const int)
0:11      move second child to first child ( temp uint)
0:11        'u' ( temp uint)
0:11        AtomicAnd ( temp uint)
0:11          indirect index (layout( row_major std430) buffer uint)
0:11            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11              Constant:
0:11                0 (const uint)
0:11            right-shift ( temp int)
0:11              Constant:
0:11                8 (const int)
0:11              Constant:
0:11                2 (const int)
0:11          Constant:
0:11            1 (const int)
0:12      move second child to first child ( temp uint)
0:12        'u' ( temp uint)
0:12        Convert int to uint ( temp uint)
0:12          AtomicCompSwap ( temp int)
0:12            indirect index (layout( row_major std430) buffer uint)
0:12              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12                Constant:
0:12                  0 (const uint)
0:12              right-shift ( temp int)
0:12                Constant:
0:12                  8 (const int)
0:12                Constant:
0:12                  2 (const int)
0:12            Constant:
0:12              1 (const int)
0:12            Constant:
0:12              2 (const int)
0:14      move second child to first child ( temp uint)
0:14        'u' ( temp uint)
0:14        AtomicExchange ( temp uint)
0:14          indirect index (layout( row_major std430) buffer uint)
0:14            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:14              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:14              Constant:
0:14                0 (const uint)
0:14            right-shift ( temp int)
0:14              Constant:
0:14                8 (const int)
0:14              Constant:
0:14                2 (const int)
0:14          Constant:
0:14            1 (const int)
0:15      AtomicMax ( temp uint)
0:15        indirect index (layout( row_major std430) buffer uint)
0:15          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:15            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:15            Constant:
0:15              0 (const uint)
0:15          right-shift ( temp int)
0:15            Constant:
0:15              8 (const int)
0:15            Constant:
0:15              2 (const int)
0:15        Constant:
0:15          1 (const int)
0:16      move second child to first child ( temp uint)
0:16        'u' ( temp uint)
0:16        AtomicMax ( temp uint)
0:16          indirect index (layout( row_major std430) buffer uint)
0:16            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:16              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:16              Constant:
0:16                0 (const uint)
0:16            right-shift ( temp int)
0:16              Constant:
0:16                8 (const int)
0:16              Constant:
0:16                2 (const int)
0:16          Constant:
0:16            1 (const int)
0:17      AtomicMin ( temp uint)
0:17        indirect index (layout( row_major std430) buffer uint)
0:17          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:17            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:17            Constant:
0:17              0 (const uint)
0:17          right-shift ( temp int)
0:17            Constant:
0:17              8 (const int)
0:17            Constant:
0:17              2 (const int)
0:17        Constant:
0:17          1 (const int)
0:18      move second child to first child ( temp uint)
0:18        'u' ( temp uint)
0:18        AtomicMin ( temp uint)
0:18          indirect index (layout( row_major std430) buffer uint)
0:18            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:18              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:18              Constant:
0:18                0 (const uint)
0:18            right-shift ( temp int)
0:18              Constant:
0:18                8 (const int)
0:18              Constant:
0:18                2 (const int)
0:18          Constant:
0:18            1 (const int)
0:19      AtomicOr ( temp uint)
0:19        indirect index (layout( row_major std430) buffer uint)
0:19          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:19            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:19            Constant:
0:19              0 (const uint)
0:19          right-shift ( temp int)
0:19            Constant:
0:19              8 (const int)
0:19            Constant:
0:19              2 (const int)
0:19        Constant:
0:19          1 (const int)
0:20      move second child to first child ( temp uint)
0:20        'u' ( temp uint)
0:20        AtomicOr ( temp uint)
0:20          indirect index (layout( row_major std430) buffer uint)
0:20            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:20              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:20              Constant:
0:20                0 (const uint)
0:20            right-shift ( temp int)
0:20              Constant:
0:20                8 (const int)
0:20              Constant:
0:20                2 (const int)
0:20          Constant:
0:20            1 (const int)
0:21      AtomicXor ( temp uint)
0:21        indirect index (layout( row_major std430) buffer uint)
0:21          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:21            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:21            Constant:
0:21              0 (const uint)
0:21          right-shift ( temp int)
0:21            Constant:
0:21              8 (const int)
0:21            Constant:
0:21              2 (const int)
0:21        Constant:
0:21          1 (const int)
0:22      move second child to first child ( temp uint)
0:22        'u' ( temp uint)
0:22        AtomicXor ( temp uint)
0:22          indirect index (layout( row_major std430) buffer uint)
0:22            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:22              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:22              Constant:
0:22                0 (const uint)
0:22            right-shift ( temp int)
0:22              Constant:
0:22                8 (const int)
0:22              Constant:
0:22                2 (const int)
0:22          Constant:
0:22            1 (const int)
0:24      Branch: Return with expression
0:24        Construct vec4 ( temp 4-component vector of float)
0:24          Convert uint to float ( temp float)
0:24            indirect index (layout( row_major std430) buffer uint)
0:24              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:24                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:24                Constant:
0:24                  0 (const uint)
0:24              right-shift ( temp int)
0:24                'pos' ( in uint)
0:24                Constant:
0:24                  2 (const int)
0:5  Function Definition: main( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:5      move second child to first child ( temp uint)
0:?         'pos' ( temp uint)
0:?         'pos' (layout( location=0) flat in uint)
0:5      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:5        Function Call: @main(u1; ( temp 4-component vector of float)
0:?           'pos' ( temp uint)
0:?   Linker Objects
0:?     'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'pos' (layout( location=0) flat in uint)

Validation failed
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 87

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 80 83
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 12  "@main(u1;"
                              Name 11  "pos"
                              Name 15  "sbuf"
                              MemberName 15(sbuf) 0  "@data"
                              Name 17  "sbuf"
                              Name 29  "u"
                              Name 78  "pos"
                              Name 80  "pos"
                              Name 83  "@entryPointOutput"
                              Name 84  "param"
                              Decorate 14 ArrayStride 4
                              MemberDecorate 15(sbuf) 0 Offset 0
                              Decorate 15(sbuf) BufferBlock
                              Decorate 17(sbuf) DescriptorSet 0
                              Decorate 17(sbuf) Binding 0
                              Decorate 80(pos) Flat
                              Decorate 80(pos) Location 0
                              Decorate 83(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypePointer Function 6(int)
               8:             TypeFloat 32
               9:             TypeVector 8(float) 4
              10:             TypeFunction 9(fvec4) 7(ptr)
              14:             TypeRuntimeArray 6(int)
        15(sbuf):             TypeStruct 14
              16:             TypePointer Uniform 15(sbuf)
        17(sbuf):     16(ptr) Variable Uniform
              18:             TypeInt 32 1
              19:     18(int) Constant 0
              20:     18(int) Constant 8
              21:     18(int) Constant 2
              23:             TypePointer Uniform 6(int)
              25:     18(int) Constant 1
              26:      6(int) Constant 1
              27:      6(int) Constant 0
              79:             TypePointer Input 6(int)
         80(pos):     79(ptr) Variable Input
              82:             TypePointer Output 9(fvec4)
83(@entryPointOutput):     82(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
         78(pos):      7(ptr) Variable Function
       84(param):      7(ptr) Variable Function
              81:      6(int) Load 80(pos)
                              Store 78(pos) 81
              85:      6(int) Load 78(pos)
                              Store 84(param) 85
              86:    9(fvec4) FunctionCall 12(@main(u1;) 84(param)
                              Store 83(@entryPointOutput) 86
                              Return
                              FunctionEnd
   12(@main(u1;):    9(fvec4) Function None 10
         11(pos):      7(ptr) FunctionParameter
              13:             Label
           29(u):      7(ptr) Variable Function
              22:     18(int) ShiftRightArithmetic 20 21
              24:     23(ptr) AccessChain 17(sbuf) 19 22
              28:      6(int) AtomicIAdd 24 26 27 25
              30:     18(int) ShiftRightArithmetic 20 21
              31:     23(ptr) AccessChain 17(sbuf) 19 30
              32:      6(int) AtomicIAdd 31 26 27 25
                              Store 29(u) 32
              33:     18(int) ShiftRightArithmetic 20 21
              34:     23(ptr) AccessChain 17(sbuf) 19 33
              35:      6(int) AtomicAnd 34 26 27 25
              36:     18(int) ShiftRightArithmetic 20 21
              37:     23(ptr) AccessChain 17(sbuf) 19 36
              38:      6(int) AtomicAnd 37 26 27 25
                              Store 29(u) 38
              39:     18(int) ShiftRightArithmetic 20 21
              40:     23(ptr) AccessChain 17(sbuf) 19 39
              41:     18(int) AtomicCompareExchange 40 26 27 27 21 25
              42:      6(int) Bitcast 41
                              Store 29(u) 42
              43:     18(int) ShiftRightArithmetic 20 21
              44:     23(ptr) AccessChain 17(sbuf) 19 43
              45:      6(int) AtomicExchange 44 26 27 25
                              Store 29(u) 45
              46:     18(int) ShiftRightArithmetic 20 21
              47:     23(ptr) AccessChain 17(sbuf) 19 46
              48:      6(int) AtomicUMax 47 26 27 25
              49:     18(int) ShiftRightArithmetic 20 21
              50:     23(ptr) AccessChain 17(sbuf) 19 49
              51:      6(int) AtomicUMax 50 26 27 25
                              Store 29(u) 51
              52:     18(int) ShiftRightArithmetic 20 21
              53:     23(ptr) AccessChain 17(sbuf) 19 52
              54:      6(int) AtomicUMin 53 26 27 25
              55:     18(int) ShiftRightArithmetic 20 21
              56:     23(ptr) AccessChain 17(sbuf) 19 55
              57:      6(int) AtomicUMin 56 26 27 25
                              Store 29(u) 57
              58:     18(int) ShiftRightArithmetic 20 21
              59:     23(ptr) AccessChain 17(sbuf) 19 58
              60:      6(int) AtomicOr 59 26 27 25
              61:     18(int) ShiftRightArithmetic 20 21
              62:     23(ptr) AccessChain 17(sbuf) 19 61
              63:      6(int) AtomicOr 62 26 27 25
                              Store 29(u) 63
              64:     18(int) ShiftRightArithmetic 20 21
              65:     23(ptr) AccessChain 17(sbuf) 19 64
              66:      6(int) AtomicXor 65 26 27 25
              67:     18(int) ShiftRightArithmetic 20 21
              68:     23(ptr) AccessChain 17(sbuf) 19 67
              69:      6(int) AtomicXor 68 26 27 25
                              Store 29(u) 69
              70:      6(int) Load 11(pos)
              71:     18(int) ShiftRightLogical 70 21
              72:     23(ptr) AccessChain 17(sbuf) 19 71
              73:      6(int) Load 72
              74:    8(float) ConvertUToF 73
              75:    9(fvec4) CompositeConstruct 74 74 74 74
                              ReturnValue 75
                              FunctionEnd
