hlsl.structbuffer.rwbyte.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:7      Sequence
0:7        move second child to first child ( temp uint)
0:7          'size' ( temp uint)
0:7          array length ( temp uint)
0:7            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:7              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:7              Constant:
0:7                0 (const uint)
0:?       Sequence
0:9        move second child to first child ( temp int)
0:9          'byteAddrTemp' ( temp int)
0:9          right-shift ( temp int)
0:9            'pos' ( in uint)
0:9            Constant:
0:9              2 (const int)
0:9        move second child to first child ( temp uint)
0:9          indirect index (layout( row_major std430) buffer uint)
0:9            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9              Constant:
0:9                0 (const uint)
0:9            'byteAddrTemp' ( temp int)
0:9          indirect index (layout( row_major std430) buffer uint)
0:9            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9              Constant:
0:9                0 (const uint)
0:9            right-shift ( temp int)
0:9              'pos' ( in uint)
0:9              Constant:
0:9                2 (const int)
0:?       Sequence
0:10        move second child to first child ( temp int)
0:10          'byteAddrTemp' ( temp int)
0:10          right-shift ( temp int)
0:10            'pos' ( in uint)
0:10            Constant:
0:10              2 (const int)
0:10        move second child to first child ( temp uint)
0:10          indirect index (layout( row_major std430) buffer uint)
0:10            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10              Constant:
0:10                0 (const uint)
0:10            'byteAddrTemp' ( temp int)
0:10          direct index ( temp uint)
0:?             Sequence
0:10              move second child to first child ( temp int)
0:10                'byteAddrTemp' ( temp int)
0:10                right-shift ( temp int)
0:10                  'pos' ( in uint)
0:10                  Constant:
0:10                    2 (const int)
0:?               Construct vec2 ( temp 2-component vector of uint)
0:10                indirect index ( temp uint)
0:10                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10                    Constant:
0:10                      0 (const uint)
0:10                  'byteAddrTemp' ( temp int)
0:10                indirect index ( temp uint)
0:10                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10                    Constant:
0:10                      0 (const uint)
0:10                  add ( temp int)
0:10                    'byteAddrTemp' ( temp int)
0:10                    Constant:
0:10                      1 (const int)
0:10            Constant:
0:10              0 (const int)
0:10        move second child to first child ( temp uint)
0:10          indirect index (layout( row_major std430) buffer uint)
0:10            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10              Constant:
0:10                0 (const uint)
0:10            add ( temp int)
0:10              'byteAddrTemp' ( temp int)
0:10              Constant:
0:10                1 (const int)
0:10          direct index ( temp uint)
0:?             Sequence
0:10              move second child to first child ( temp int)
0:10                'byteAddrTemp' ( temp int)
0:10                right-shift ( temp int)
0:10                  'pos' ( in uint)
0:10                  Constant:
0:10                    2 (const int)
0:?               Construct vec2 ( temp 2-component vector of uint)
0:10                indirect index ( temp uint)
0:10                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10                    Constant:
0:10                      0 (const uint)
0:10                  'byteAddrTemp' ( temp int)
0:10                indirect index ( temp uint)
0:10                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10                    Constant:
0:10                      0 (const uint)
0:10                  add ( temp int)
0:10                    'byteAddrTemp' ( temp int)
0:10                    Constant:
0:10                      1 (const int)
0:10            Constant:
0:10              1 (const int)
0:?       Sequence
0:11        move second child to first child ( temp int)
0:11          'byteAddrTemp' ( temp int)
0:11          right-shift ( temp int)
0:11            'pos' ( in uint)
0:11            Constant:
0:11              2 (const int)
0:11        move second child to first child ( temp uint)
0:11          indirect index (layout( row_major std430) buffer uint)
0:11            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11              Constant:
0:11                0 (const uint)
0:11            'byteAddrTemp' ( temp int)
0:11          direct index ( temp uint)
0:?             Sequence
0:11              move second child to first child ( temp int)
0:11                'byteAddrTemp' ( temp int)
0:11                right-shift ( temp int)
0:11                  'pos' ( in uint)
0:11                  Constant:
0:11                    2 (const int)
0:?               Construct vec3 ( temp 3-component vector of uint)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  'byteAddrTemp' ( temp int)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  add ( temp int)
0:11                    'byteAddrTemp' ( temp int)
0:11                    Constant:
0:11                      1 (const int)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  add ( temp int)
0:11                    'byteAddrTemp' ( temp int)
0:11                    Constant:
0:11                      2 (const int)
0:11            Constant:
0:11              0 (const int)
0:11        move second child to first child ( temp uint)
0:11          indirect index (layout( row_major std430) buffer uint)
0:11            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11              Constant:
0:11                0 (const uint)
0:11            add ( temp int)
0:11              'byteAddrTemp' ( temp int)
0:11              Constant:
0:11                1 (const int)
0:11          direct index ( temp uint)
0:?             Sequence
0:11              move second child to first child ( temp int)
0:11                'byteAddrTemp' ( temp int)
0:11                right-shift ( temp int)
0:11                  'pos' ( in uint)
0:11                  Constant:
0:11                    2 (const int)
0:?               Construct vec3 ( temp 3-component vector of uint)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  'byteAddrTemp' ( temp int)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  add ( temp int)
0:11                    'byteAddrTemp' ( temp int)
0:11                    Constant:
0:11                      1 (const int)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  add ( temp int)
0:11                    'byteAddrTemp' ( temp int)
0:11                    Constant:
0:11                      2 (const int)
0:11            Constant:
0:11              1 (const int)
0:11        move second child to first child ( temp uint)
0:11          indirect index (layout( row_major std430) buffer uint)
0:11            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11              Constant:
0:11                0 (const uint)
0:11            add ( temp int)
0:11              'byteAddrTemp' ( temp int)
0:11              Constant:
0:11                2 (const int)
0:11          direct index ( temp uint)
0:?             Sequence
0:11              move second child to first child ( temp int)
0:11                'byteAddrTemp' ( temp int)
0:11                right-shift ( temp int)
0:11                  'pos' ( in uint)
0:11                  Constant:
0:11                    2 (const int)
0:?               Construct vec3 ( temp 3-component vector of uint)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  'byteAddrTemp' ( temp int)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  add ( temp int)
0:11                    'byteAddrTemp' ( temp int)
0:11                    Constant:
0:11                      1 (const int)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  add ( temp int)
0:11                    'byteAddrTemp' ( temp int)
0:11                    Constant:
0:11                      2 (const int)
0:11            Constant:
0:11              2 (const int)
0:?       Sequence
0:12        move second child to first child ( temp int)
0:12          'byteAddrTemp' ( temp int)
0:12          right-shift ( temp int)
0:12            'pos' ( in uint)
0:12            Constant:
0:12              2 (const int)
0:12        move second child to first child ( temp uint)
0:12          indirect index (layout( row_major std430) buffer uint)
0:12            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12              Constant:
0:12                0 (const uint)
0:12            'byteAddrTemp' ( temp int)
0:12          direct index ( temp uint)
0:?             Sequence
0:12              move second child to first child ( temp int)
0:12                'byteAddrTemp' ( temp int)
0:12                right-shift ( temp int)
0:12                  'pos' ( in uint)
0:12                  Constant:
0:12                    2 (const int)
0:?               Construct vec4 ( temp 4-component vector of uint)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      1 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      2 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      3 (const int)
0:12            Constant:
0:12              0 (const int)
0:12        move second child to first child ( temp uint)
0:12          indirect index (layout( row_major std430) buffer uint)
0:12            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12              Constant:
0:12                0 (const uint)
0:12            add ( temp int)
0:12              'byteAddrTemp' ( temp int)
0:12              Constant:
0:12                1 (const int)
0:12          direct index ( temp uint)
0:?             Sequence
0:12              move second child to first child ( temp int)
0:12                'byteAddrTemp' ( temp int)
0:12                right-shift ( temp int)
0:12                  'pos' ( in uint)
0:12                  Constant:
0:12                    2 (const int)
0:?               Construct vec4 ( temp 4-component vector of uint)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      1 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      2 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      3 (const int)
0:12            Constant:
0:12              1 (const int)
0:12        move second child to first child ( temp uint)
0:12          indirect index (layout( row_major std430) buffer uint)
0:12            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12              Constant:
0:12                0 (const uint)
0:12            add ( temp int)
0:12              'byteAddrTemp' ( temp int)
0:12              Constant:
0:12                2 (const int)
0:12          direct index ( temp uint)
0:?             Sequence
0:12              move second child to first child ( temp int)
0:12                'byteAddrTemp' ( temp int)
0:12                right-shift ( temp int)
0:12                  'pos' ( in uint)
0:12                  Constant:
0:12                    2 (const int)
0:?               Construct vec4 ( temp 4-component vector of uint)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      1 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      2 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      3 (const int)
0:12            Constant:
0:12              2 (const int)
0:12        move second child to first child ( temp uint)
0:12          indirect index (layout( row_major std430) buffer uint)
0:12            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12              Constant:
0:12                0 (const uint)
0:12            add ( temp int)
0:12              'byteAddrTemp' ( temp int)
0:12              Constant:
0:12                3 (const int)
0:12          direct index ( temp uint)
0:?             Sequence
0:12              move second child to first child ( temp int)
0:12                'byteAddrTemp' ( temp int)
0:12                right-shift ( temp int)
0:12                  'pos' ( in uint)
0:12                  Constant:
0:12                    2 (const int)
0:?               Construct vec4 ( temp 4-component vector of uint)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      1 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      2 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      3 (const int)
0:12            Constant:
0:12              3 (const int)
0:14      Branch: Return with expression
0:14        Construct vec4 ( temp 4-component vector of float)
0:14          Convert uint to float ( temp float)
0:14            indirect index (layout( row_major std430) buffer uint)
0:14              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:14                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:14                Constant:
0:14                  0 (const uint)
0:14              right-shift ( temp int)
0:14                'pos' ( in uint)
0:14                Constant:
0:14                  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 implicitly-sized 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:7      Sequence
0:7        move second child to first child ( temp uint)
0:7          'size' ( temp uint)
0:7          array length ( temp uint)
0:7            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:7              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:7              Constant:
0:7                0 (const uint)
0:?       Sequence
0:9        move second child to first child ( temp int)
0:9          'byteAddrTemp' ( temp int)
0:9          right-shift ( temp int)
0:9            'pos' ( in uint)
0:9            Constant:
0:9              2 (const int)
0:9        move second child to first child ( temp uint)
0:9          indirect index (layout( row_major std430) buffer uint)
0:9            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9              Constant:
0:9                0 (const uint)
0:9            'byteAddrTemp' ( temp int)
0:9          indirect index (layout( row_major std430) buffer uint)
0:9            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9              Constant:
0:9                0 (const uint)
0:9            right-shift ( temp int)
0:9              'pos' ( in uint)
0:9              Constant:
0:9                2 (const int)
0:?       Sequence
0:10        move second child to first child ( temp int)
0:10          'byteAddrTemp' ( temp int)
0:10          right-shift ( temp int)
0:10            'pos' ( in uint)
0:10            Constant:
0:10              2 (const int)
0:10        move second child to first child ( temp uint)
0:10          indirect index (layout( row_major std430) buffer uint)
0:10            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10              Constant:
0:10                0 (const uint)
0:10            'byteAddrTemp' ( temp int)
0:10          direct index ( temp uint)
0:?             Sequence
0:10              move second child to first child ( temp int)
0:10                'byteAddrTemp' ( temp int)
0:10                right-shift ( temp int)
0:10                  'pos' ( in uint)
0:10                  Constant:
0:10                    2 (const int)
0:?               Construct vec2 ( temp 2-component vector of uint)
0:10                indirect index ( temp uint)
0:10                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10                    Constant:
0:10                      0 (const uint)
0:10                  'byteAddrTemp' ( temp int)
0:10                indirect index ( temp uint)
0:10                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10                    Constant:
0:10                      0 (const uint)
0:10                  add ( temp int)
0:10                    'byteAddrTemp' ( temp int)
0:10                    Constant:
0:10                      1 (const int)
0:10            Constant:
0:10              0 (const int)
0:10        move second child to first child ( temp uint)
0:10          indirect index (layout( row_major std430) buffer uint)
0:10            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10              Constant:
0:10                0 (const uint)
0:10            add ( temp int)
0:10              'byteAddrTemp' ( temp int)
0:10              Constant:
0:10                1 (const int)
0:10          direct index ( temp uint)
0:?             Sequence
0:10              move second child to first child ( temp int)
0:10                'byteAddrTemp' ( temp int)
0:10                right-shift ( temp int)
0:10                  'pos' ( in uint)
0:10                  Constant:
0:10                    2 (const int)
0:?               Construct vec2 ( temp 2-component vector of uint)
0:10                indirect index ( temp uint)
0:10                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10                    Constant:
0:10                      0 (const uint)
0:10                  'byteAddrTemp' ( temp int)
0:10                indirect index ( temp uint)
0:10                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10                    Constant:
0:10                      0 (const uint)
0:10                  add ( temp int)
0:10                    'byteAddrTemp' ( temp int)
0:10                    Constant:
0:10                      1 (const int)
0:10            Constant:
0:10              1 (const int)
0:?       Sequence
0:11        move second child to first child ( temp int)
0:11          'byteAddrTemp' ( temp int)
0:11          right-shift ( temp int)
0:11            'pos' ( in uint)
0:11            Constant:
0:11              2 (const int)
0:11        move second child to first child ( temp uint)
0:11          indirect index (layout( row_major std430) buffer uint)
0:11            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11              Constant:
0:11                0 (const uint)
0:11            'byteAddrTemp' ( temp int)
0:11          direct index ( temp uint)
0:?             Sequence
0:11              move second child to first child ( temp int)
0:11                'byteAddrTemp' ( temp int)
0:11                right-shift ( temp int)
0:11                  'pos' ( in uint)
0:11                  Constant:
0:11                    2 (const int)
0:?               Construct vec3 ( temp 3-component vector of uint)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  'byteAddrTemp' ( temp int)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  add ( temp int)
0:11                    'byteAddrTemp' ( temp int)
0:11                    Constant:
0:11                      1 (const int)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  add ( temp int)
0:11                    'byteAddrTemp' ( temp int)
0:11                    Constant:
0:11                      2 (const int)
0:11            Constant:
0:11              0 (const int)
0:11        move second child to first child ( temp uint)
0:11          indirect index (layout( row_major std430) buffer uint)
0:11            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11              Constant:
0:11                0 (const uint)
0:11            add ( temp int)
0:11              'byteAddrTemp' ( temp int)
0:11              Constant:
0:11                1 (const int)
0:11          direct index ( temp uint)
0:?             Sequence
0:11              move second child to first child ( temp int)
0:11                'byteAddrTemp' ( temp int)
0:11                right-shift ( temp int)
0:11                  'pos' ( in uint)
0:11                  Constant:
0:11                    2 (const int)
0:?               Construct vec3 ( temp 3-component vector of uint)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  'byteAddrTemp' ( temp int)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  add ( temp int)
0:11                    'byteAddrTemp' ( temp int)
0:11                    Constant:
0:11                      1 (const int)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  add ( temp int)
0:11                    'byteAddrTemp' ( temp int)
0:11                    Constant:
0:11                      2 (const int)
0:11            Constant:
0:11              1 (const int)
0:11        move second child to first child ( temp uint)
0:11          indirect index (layout( row_major std430) buffer uint)
0:11            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11              Constant:
0:11                0 (const uint)
0:11            add ( temp int)
0:11              'byteAddrTemp' ( temp int)
0:11              Constant:
0:11                2 (const int)
0:11          direct index ( temp uint)
0:?             Sequence
0:11              move second child to first child ( temp int)
0:11                'byteAddrTemp' ( temp int)
0:11                right-shift ( temp int)
0:11                  'pos' ( in uint)
0:11                  Constant:
0:11                    2 (const int)
0:?               Construct vec3 ( temp 3-component vector of uint)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  'byteAddrTemp' ( temp int)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  add ( temp int)
0:11                    'byteAddrTemp' ( temp int)
0:11                    Constant:
0:11                      1 (const int)
0:11                indirect index ( temp uint)
0:11                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                    Constant:
0:11                      0 (const uint)
0:11                  add ( temp int)
0:11                    'byteAddrTemp' ( temp int)
0:11                    Constant:
0:11                      2 (const int)
0:11            Constant:
0:11              2 (const int)
0:?       Sequence
0:12        move second child to first child ( temp int)
0:12          'byteAddrTemp' ( temp int)
0:12          right-shift ( temp int)
0:12            'pos' ( in uint)
0:12            Constant:
0:12              2 (const int)
0:12        move second child to first child ( temp uint)
0:12          indirect index (layout( row_major std430) buffer uint)
0:12            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12              Constant:
0:12                0 (const uint)
0:12            'byteAddrTemp' ( temp int)
0:12          direct index ( temp uint)
0:?             Sequence
0:12              move second child to first child ( temp int)
0:12                'byteAddrTemp' ( temp int)
0:12                right-shift ( temp int)
0:12                  'pos' ( in uint)
0:12                  Constant:
0:12                    2 (const int)
0:?               Construct vec4 ( temp 4-component vector of uint)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      1 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      2 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      3 (const int)
0:12            Constant:
0:12              0 (const int)
0:12        move second child to first child ( temp uint)
0:12          indirect index (layout( row_major std430) buffer uint)
0:12            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12              Constant:
0:12                0 (const uint)
0:12            add ( temp int)
0:12              'byteAddrTemp' ( temp int)
0:12              Constant:
0:12                1 (const int)
0:12          direct index ( temp uint)
0:?             Sequence
0:12              move second child to first child ( temp int)
0:12                'byteAddrTemp' ( temp int)
0:12                right-shift ( temp int)
0:12                  'pos' ( in uint)
0:12                  Constant:
0:12                    2 (const int)
0:?               Construct vec4 ( temp 4-component vector of uint)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      1 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      2 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      3 (const int)
0:12            Constant:
0:12              1 (const int)
0:12        move second child to first child ( temp uint)
0:12          indirect index (layout( row_major std430) buffer uint)
0:12            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12              Constant:
0:12                0 (const uint)
0:12            add ( temp int)
0:12              'byteAddrTemp' ( temp int)
0:12              Constant:
0:12                2 (const int)
0:12          direct index ( temp uint)
0:?             Sequence
0:12              move second child to first child ( temp int)
0:12                'byteAddrTemp' ( temp int)
0:12                right-shift ( temp int)
0:12                  'pos' ( in uint)
0:12                  Constant:
0:12                    2 (const int)
0:?               Construct vec4 ( temp 4-component vector of uint)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      1 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      2 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      3 (const int)
0:12            Constant:
0:12              2 (const int)
0:12        move second child to first child ( temp uint)
0:12          indirect index (layout( row_major std430) buffer uint)
0:12            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12              Constant:
0:12                0 (const uint)
0:12            add ( temp int)
0:12              'byteAddrTemp' ( temp int)
0:12              Constant:
0:12                3 (const int)
0:12          direct index ( temp uint)
0:?             Sequence
0:12              move second child to first child ( temp int)
0:12                'byteAddrTemp' ( temp int)
0:12                right-shift ( temp int)
0:12                  'pos' ( in uint)
0:12                  Constant:
0:12                    2 (const int)
0:?               Construct vec4 ( temp 4-component vector of uint)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      1 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      2 (const int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      3 (const int)
0:12            Constant:
0:12              3 (const int)
0:14      Branch: Return with expression
0:14        Construct vec4 ( temp 4-component vector of float)
0:14          Convert uint to float ( temp float)
0:14            indirect index (layout( row_major std430) buffer uint)
0:14              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:14                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:14                Constant:
0:14                  0 (const uint)
0:14              right-shift ( temp int)
0:14                'pos' ( in uint)
0:14                Constant:
0:14                  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 implicitly-sized array of uint @data})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'pos' (layout( location=0) flat in uint)

// Module Version 10000
// Generated by (magic number): 80005
// Id's are bound by 239

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 232 235
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 12  "@main(u1;"
                              Name 11  "pos"
                              Name 14  "size"
                              Name 16  "sbuf"
                              MemberName 16(sbuf) 0  "@data"
                              Name 18  "sbuf"
                              Name 22  "byteAddrTemp"
                              Name 34  "byteAddrTemp"
                              Name 38  "byteAddrTemp"
                              Name 69  "byteAddrTemp"
                              Name 73  "byteAddrTemp"
                              Name 128  "byteAddrTemp"
                              Name 132  "byteAddrTemp"
                              Name 230  "pos"
                              Name 232  "pos"
                              Name 235  "@entryPointOutput"
                              Name 236  "param"
                              Decorate 15 ArrayStride 4
                              MemberDecorate 16(sbuf) 0 Offset 0
                              Decorate 16(sbuf) BufferBlock
                              Decorate 18(sbuf) DescriptorSet 0
                              Decorate 232(pos) Flat
                              Decorate 232(pos) Location 0
                              Decorate 235(@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)
              15:             TypeRuntimeArray 6(int)
        16(sbuf):             TypeStruct 15
              17:             TypePointer Uniform 16(sbuf)
        18(sbuf):     17(ptr) Variable Uniform
              20:             TypeInt 32 1
              21:             TypePointer Function 20(int)
              24:     20(int) Constant 2
              26:     20(int) Constant 0
              30:             TypePointer Uniform 6(int)
              45:     20(int) Constant 1
              49:             TypeVector 6(int) 2
              51:      6(int) Constant 0
              66:      6(int) Constant 1
              87:             TypeVector 6(int) 3
             125:      6(int) Constant 2
             147:     20(int) Constant 3
             151:             TypeVector 6(int) 4
             219:      6(int) Constant 3
             231:             TypePointer Input 6(int)
        232(pos):    231(ptr) Variable Input
             234:             TypePointer Output 9(fvec4)
235(@entryPointOutput):    234(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
        230(pos):      7(ptr) Variable Function
      236(param):      7(ptr) Variable Function
             233:      6(int) Load 232(pos)
                              Store 230(pos) 233
             237:      6(int) Load 230(pos)
                              Store 236(param) 237
             238:    9(fvec4) FunctionCall 12(@main(u1;) 236(param)
                              Store 235(@entryPointOutput) 238
                              Return
                              FunctionEnd
   12(@main(u1;):    9(fvec4) Function None 10
         11(pos):      7(ptr) FunctionParameter
              13:             Label
        14(size):      7(ptr) Variable Function
22(byteAddrTemp):     21(ptr) Variable Function
34(byteAddrTemp):     21(ptr) Variable Function
38(byteAddrTemp):     21(ptr) Variable Function
69(byteAddrTemp):     21(ptr) Variable Function
73(byteAddrTemp):     21(ptr) Variable Function
128(byteAddrTemp):     21(ptr) Variable Function
132(byteAddrTemp):     21(ptr) Variable Function
              19:      6(int) ArrayLength 18(sbuf) 0
                              Store 14(size) 19
              23:      6(int) Load 11(pos)
              25:     20(int) ShiftRightLogical 23 24
                              Store 22(byteAddrTemp) 25
              27:     20(int) Load 22(byteAddrTemp)
              28:      6(int) Load 11(pos)
              29:     20(int) ShiftRightLogical 28 24
              31:     30(ptr) AccessChain 18(sbuf) 26 29
              32:      6(int) Load 31
              33:     30(ptr) AccessChain 18(sbuf) 26 27
                              Store 33 32
              35:      6(int) Load 11(pos)
              36:     20(int) ShiftRightLogical 35 24
                              Store 34(byteAddrTemp) 36
              37:     20(int) Load 34(byteAddrTemp)
              39:      6(int) Load 11(pos)
              40:     20(int) ShiftRightLogical 39 24
                              Store 38(byteAddrTemp) 40
              41:     20(int) Load 38(byteAddrTemp)
              42:     30(ptr) AccessChain 18(sbuf) 26 41
              43:      6(int) Load 42
              44:     20(int) Load 38(byteAddrTemp)
              46:     20(int) IAdd 44 45
              47:     30(ptr) AccessChain 18(sbuf) 26 46
              48:      6(int) Load 47
              50:   49(ivec2) CompositeConstruct 43 48
              52:      6(int) CompositeExtract 50 0
              53:     30(ptr) AccessChain 18(sbuf) 26 37
                              Store 53 52
              54:     20(int) Load 34(byteAddrTemp)
              55:     20(int) IAdd 54 45
              56:      6(int) Load 11(pos)
              57:     20(int) ShiftRightLogical 56 24
                              Store 38(byteAddrTemp) 57
              58:     20(int) Load 38(byteAddrTemp)
              59:     30(ptr) AccessChain 18(sbuf) 26 58
              60:      6(int) Load 59
              61:     20(int) Load 38(byteAddrTemp)
              62:     20(int) IAdd 61 45
              63:     30(ptr) AccessChain 18(sbuf) 26 62
              64:      6(int) Load 63
              65:   49(ivec2) CompositeConstruct 60 64
              67:      6(int) CompositeExtract 65 1
              68:     30(ptr) AccessChain 18(sbuf) 26 55
                              Store 68 67
              70:      6(int) Load 11(pos)
              71:     20(int) ShiftRightLogical 70 24
                              Store 69(byteAddrTemp) 71
              72:     20(int) Load 69(byteAddrTemp)
              74:      6(int) Load 11(pos)
              75:     20(int) ShiftRightLogical 74 24
                              Store 73(byteAddrTemp) 75
              76:     20(int) Load 73(byteAddrTemp)
              77:     30(ptr) AccessChain 18(sbuf) 26 76
              78:      6(int) Load 77
              79:     20(int) Load 73(byteAddrTemp)
              80:     20(int) IAdd 79 45
              81:     30(ptr) AccessChain 18(sbuf) 26 80
              82:      6(int) Load 81
              83:     20(int) Load 73(byteAddrTemp)
              84:     20(int) IAdd 83 24
              85:     30(ptr) AccessChain 18(sbuf) 26 84
              86:      6(int) Load 85
              88:   87(ivec3) CompositeConstruct 78 82 86
              89:      6(int) CompositeExtract 88 0
              90:     30(ptr) AccessChain 18(sbuf) 26 72
                              Store 90 89
              91:     20(int) Load 69(byteAddrTemp)
              92:     20(int) IAdd 91 45
              93:      6(int) Load 11(pos)
              94:     20(int) ShiftRightLogical 93 24
                              Store 73(byteAddrTemp) 94
              95:     20(int) Load 73(byteAddrTemp)
              96:     30(ptr) AccessChain 18(sbuf) 26 95
              97:      6(int) Load 96
              98:     20(int) Load 73(byteAddrTemp)
              99:     20(int) IAdd 98 45
             100:     30(ptr) AccessChain 18(sbuf) 26 99
             101:      6(int) Load 100
             102:     20(int) Load 73(byteAddrTemp)
             103:     20(int) IAdd 102 24
             104:     30(ptr) AccessChain 18(sbuf) 26 103
             105:      6(int) Load 104
             106:   87(ivec3) CompositeConstruct 97 101 105
             107:      6(int) CompositeExtract 106 1
             108:     30(ptr) AccessChain 18(sbuf) 26 92
                              Store 108 107
             109:     20(int) Load 69(byteAddrTemp)
             110:     20(int) IAdd 109 24
             111:      6(int) Load 11(pos)
             112:     20(int) ShiftRightLogical 111 24
                              Store 73(byteAddrTemp) 112
             113:     20(int) Load 73(byteAddrTemp)
             114:     30(ptr) AccessChain 18(sbuf) 26 113
             115:      6(int) Load 114
             116:     20(int) Load 73(byteAddrTemp)
             117:     20(int) IAdd 116 45
             118:     30(ptr) AccessChain 18(sbuf) 26 117
             119:      6(int) Load 118
             120:     20(int) Load 73(byteAddrTemp)
             121:     20(int) IAdd 120 24
             122:     30(ptr) AccessChain 18(sbuf) 26 121
             123:      6(int) Load 122
             124:   87(ivec3) CompositeConstruct 115 119 123
             126:      6(int) CompositeExtract 124 2
             127:     30(ptr) AccessChain 18(sbuf) 26 110
                              Store 127 126
             129:      6(int) Load 11(pos)
             130:     20(int) ShiftRightLogical 129 24
                              Store 128(byteAddrTemp) 130
             131:     20(int) Load 128(byteAddrTemp)
             133:      6(int) Load 11(pos)
             134:     20(int) ShiftRightLogical 133 24
                              Store 132(byteAddrTemp) 134
             135:     20(int) Load 132(byteAddrTemp)
             136:     30(ptr) AccessChain 18(sbuf) 26 135
             137:      6(int) Load 136
             138:     20(int) Load 132(byteAddrTemp)
             139:     20(int) IAdd 138 45
             140:     30(ptr) AccessChain 18(sbuf) 26 139
             141:      6(int) Load 140
             142:     20(int) Load 132(byteAddrTemp)
             143:     20(int) IAdd 142 24
             144:     30(ptr) AccessChain 18(sbuf) 26 143
             145:      6(int) Load 144
             146:     20(int) Load 132(byteAddrTemp)
             148:     20(int) IAdd 146 147
             149:     30(ptr) AccessChain 18(sbuf) 26 148
             150:      6(int) Load 149
             152:  151(ivec4) CompositeConstruct 137 141 145 150
             153:      6(int) CompositeExtract 152 0
             154:     30(ptr) AccessChain 18(sbuf) 26 131
                              Store 154 153
             155:     20(int) Load 128(byteAddrTemp)
             156:     20(int) IAdd 155 45
             157:      6(int) Load 11(pos)
             158:     20(int) ShiftRightLogical 157 24
                              Store 132(byteAddrTemp) 158
             159:     20(int) Load 132(byteAddrTemp)
             160:     30(ptr) AccessChain 18(sbuf) 26 159
             161:      6(int) Load 160
             162:     20(int) Load 132(byteAddrTemp)
             163:     20(int) IAdd 162 45
             164:     30(ptr) AccessChain 18(sbuf) 26 163
             165:      6(int) Load 164
             166:     20(int) Load 132(byteAddrTemp)
             167:     20(int) IAdd 166 24
             168:     30(ptr) AccessChain 18(sbuf) 26 167
             169:      6(int) Load 168
             170:     20(int) Load 132(byteAddrTemp)
             171:     20(int) IAdd 170 147
             172:     30(ptr) AccessChain 18(sbuf) 26 171
             173:      6(int) Load 172
             174:  151(ivec4) CompositeConstruct 161 165 169 173
             175:      6(int) CompositeExtract 174 1
             176:     30(ptr) AccessChain 18(sbuf) 26 156
                              Store 176 175
             177:     20(int) Load 128(byteAddrTemp)
             178:     20(int) IAdd 177 24
             179:      6(int) Load 11(pos)
             180:     20(int) ShiftRightLogical 179 24
                              Store 132(byteAddrTemp) 180
             181:     20(int) Load 132(byteAddrTemp)
             182:     30(ptr) AccessChain 18(sbuf) 26 181
             183:      6(int) Load 182
             184:     20(int) Load 132(byteAddrTemp)
             185:     20(int) IAdd 184 45
             186:     30(ptr) AccessChain 18(sbuf) 26 185
             187:      6(int) Load 186
             188:     20(int) Load 132(byteAddrTemp)
             189:     20(int) IAdd 188 24
             190:     30(ptr) AccessChain 18(sbuf) 26 189
             191:      6(int) Load 190
             192:     20(int) Load 132(byteAddrTemp)
             193:     20(int) IAdd 192 147
             194:     30(ptr) AccessChain 18(sbuf) 26 193
             195:      6(int) Load 194
             196:  151(ivec4) CompositeConstruct 183 187 191 195
             197:      6(int) CompositeExtract 196 2
             198:     30(ptr) AccessChain 18(sbuf) 26 178
                              Store 198 197
             199:     20(int) Load 128(byteAddrTemp)
             200:     20(int) IAdd 199 147
             201:      6(int) Load 11(pos)
             202:     20(int) ShiftRightLogical 201 24
                              Store 132(byteAddrTemp) 202
             203:     20(int) Load 132(byteAddrTemp)
             204:     30(ptr) AccessChain 18(sbuf) 26 203
             205:      6(int) Load 204
             206:     20(int) Load 132(byteAddrTemp)
             207:     20(int) IAdd 206 45
             208:     30(ptr) AccessChain 18(sbuf) 26 207
             209:      6(int) Load 208
             210:     20(int) Load 132(byteAddrTemp)
             211:     20(int) IAdd 210 24
             212:     30(ptr) AccessChain 18(sbuf) 26 211
             213:      6(int) Load 212
             214:     20(int) Load 132(byteAddrTemp)
             215:     20(int) IAdd 214 147
             216:     30(ptr) AccessChain 18(sbuf) 26 215
             217:      6(int) Load 216
             218:  151(ivec4) CompositeConstruct 205 209 213 217
             220:      6(int) CompositeExtract 218 3
             221:     30(ptr) AccessChain 18(sbuf) 26 200
                              Store 221 220
             222:      6(int) Load 11(pos)
             223:     20(int) ShiftRightLogical 222 24
             224:     30(ptr) AccessChain 18(sbuf) 26 223
             225:      6(int) Load 224
             226:    8(float) ConvertUToF 225
             227:    9(fvec4) CompositeConstruct 226 226 226 226
                              ReturnValue 227
                              FunctionEnd
