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 unsized 1-element array of uint)
0:7              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element 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 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            '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 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              '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 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            '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 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                  'byteAddrTemp' ( temp int)
0:10                indirect index ( temp 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                  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 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            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 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                  'byteAddrTemp' ( temp int)
0:10                indirect index ( temp 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                  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 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            '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 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                  'byteAddrTemp' ( temp int)
0:11                indirect index ( temp 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                  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 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                  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 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            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 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                  'byteAddrTemp' ( temp int)
0:11                indirect index ( temp 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                  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 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                  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 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            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 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                  'byteAddrTemp' ( temp int)
0:11                indirect index ( temp 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                  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 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                  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 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            '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 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                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp 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                  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 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                  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 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                  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 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            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 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                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp 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                  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 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                  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 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                  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 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            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 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                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp 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                  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 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                  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 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                  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 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            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 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                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp 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                  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 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                  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 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                  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 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                '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 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: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 unsized 1-element array of uint)
0:7              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element 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 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            '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 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              '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 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            '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 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                  'byteAddrTemp' ( temp int)
0:10                indirect index ( temp 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                  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 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            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 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                  'byteAddrTemp' ( temp int)
0:10                indirect index ( temp 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                  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 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            '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 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                  'byteAddrTemp' ( temp int)
0:11                indirect index ( temp 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                  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 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                  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 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            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 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                  'byteAddrTemp' ( temp int)
0:11                indirect index ( temp 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                  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 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                  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 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            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 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                  'byteAddrTemp' ( temp int)
0:11                indirect index ( temp 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                  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 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                  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 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            '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 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                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp 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                  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 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                  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 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                  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 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            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 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                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp 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                  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 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                  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 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                  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 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            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 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                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp 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                  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 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                  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 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                  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 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            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 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                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp 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                  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 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                  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 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                  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 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                '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 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)

error: SPIRV-Tools Validation Errors
error: OpStore Pointer <id> '14[size]'s type does not match Object <id> '20's type.
  OpStore %size %20

// Module Version 10000
// Generated by (magic number): 80007
// 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
              19:             TypeInt 32 1
              21:             TypePointer Function 19(int)
              24:     19(int) Constant 2
              26:     19(int) Constant 0
              30:             TypePointer Uniform 6(int)
              45:     19(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:     19(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
              20:     19(int) ArrayLength 18(sbuf) 0
                              Store 14(size) 20
              23:      6(int) Load 11(pos)
              25:     19(int) ShiftRightLogical 23 24
                              Store 22(byteAddrTemp) 25
              27:     19(int) Load 22(byteAddrTemp)
              28:      6(int) Load 11(pos)
              29:     19(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:     19(int) ShiftRightLogical 35 24
                              Store 34(byteAddrTemp) 36
              37:     19(int) Load 34(byteAddrTemp)
              39:      6(int) Load 11(pos)
              40:     19(int) ShiftRightLogical 39 24
                              Store 38(byteAddrTemp) 40
              41:     19(int) Load 38(byteAddrTemp)
              42:     30(ptr) AccessChain 18(sbuf) 26 41
              43:      6(int) Load 42
              44:     19(int) Load 38(byteAddrTemp)
              46:     19(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:     19(int) Load 34(byteAddrTemp)
              55:     19(int) IAdd 54 45
              56:      6(int) Load 11(pos)
              57:     19(int) ShiftRightLogical 56 24
                              Store 38(byteAddrTemp) 57
              58:     19(int) Load 38(byteAddrTemp)
              59:     30(ptr) AccessChain 18(sbuf) 26 58
              60:      6(int) Load 59
              61:     19(int) Load 38(byteAddrTemp)
              62:     19(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:     19(int) ShiftRightLogical 70 24
                              Store 69(byteAddrTemp) 71
              72:     19(int) Load 69(byteAddrTemp)
              74:      6(int) Load 11(pos)
              75:     19(int) ShiftRightLogical 74 24
                              Store 73(byteAddrTemp) 75
              76:     19(int) Load 73(byteAddrTemp)
              77:     30(ptr) AccessChain 18(sbuf) 26 76
              78:      6(int) Load 77
              79:     19(int) Load 73(byteAddrTemp)
              80:     19(int) IAdd 79 45
              81:     30(ptr) AccessChain 18(sbuf) 26 80
              82:      6(int) Load 81
              83:     19(int) Load 73(byteAddrTemp)
              84:     19(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:     19(int) Load 69(byteAddrTemp)
              92:     19(int) IAdd 91 45
              93:      6(int) Load 11(pos)
              94:     19(int) ShiftRightLogical 93 24
                              Store 73(byteAddrTemp) 94
              95:     19(int) Load 73(byteAddrTemp)
              96:     30(ptr) AccessChain 18(sbuf) 26 95
              97:      6(int) Load 96
              98:     19(int) Load 73(byteAddrTemp)
              99:     19(int) IAdd 98 45
             100:     30(ptr) AccessChain 18(sbuf) 26 99
             101:      6(int) Load 100
             102:     19(int) Load 73(byteAddrTemp)
             103:     19(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:     19(int) Load 69(byteAddrTemp)
             110:     19(int) IAdd 109 24
             111:      6(int) Load 11(pos)
             112:     19(int) ShiftRightLogical 111 24
                              Store 73(byteAddrTemp) 112
             113:     19(int) Load 73(byteAddrTemp)
             114:     30(ptr) AccessChain 18(sbuf) 26 113
             115:      6(int) Load 114
             116:     19(int) Load 73(byteAddrTemp)
             117:     19(int) IAdd 116 45
             118:     30(ptr) AccessChain 18(sbuf) 26 117
             119:      6(int) Load 118
             120:     19(int) Load 73(byteAddrTemp)
             121:     19(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:     19(int) ShiftRightLogical 129 24
                              Store 128(byteAddrTemp) 130
             131:     19(int) Load 128(byteAddrTemp)
             133:      6(int) Load 11(pos)
             134:     19(int) ShiftRightLogical 133 24
                              Store 132(byteAddrTemp) 134
             135:     19(int) Load 132(byteAddrTemp)
             136:     30(ptr) AccessChain 18(sbuf) 26 135
             137:      6(int) Load 136
             138:     19(int) Load 132(byteAddrTemp)
             139:     19(int) IAdd 138 45
             140:     30(ptr) AccessChain 18(sbuf) 26 139
             141:      6(int) Load 140
             142:     19(int) Load 132(byteAddrTemp)
             143:     19(int) IAdd 142 24
             144:     30(ptr) AccessChain 18(sbuf) 26 143
             145:      6(int) Load 144
             146:     19(int) Load 132(byteAddrTemp)
             148:     19(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:     19(int) Load 128(byteAddrTemp)
             156:     19(int) IAdd 155 45
             157:      6(int) Load 11(pos)
             158:     19(int) ShiftRightLogical 157 24
                              Store 132(byteAddrTemp) 158
             159:     19(int) Load 132(byteAddrTemp)
             160:     30(ptr) AccessChain 18(sbuf) 26 159
             161:      6(int) Load 160
             162:     19(int) Load 132(byteAddrTemp)
             163:     19(int) IAdd 162 45
             164:     30(ptr) AccessChain 18(sbuf) 26 163
             165:      6(int) Load 164
             166:     19(int) Load 132(byteAddrTemp)
             167:     19(int) IAdd 166 24
             168:     30(ptr) AccessChain 18(sbuf) 26 167
             169:      6(int) Load 168
             170:     19(int) Load 132(byteAddrTemp)
             171:     19(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:     19(int) Load 128(byteAddrTemp)
             178:     19(int) IAdd 177 24
             179:      6(int) Load 11(pos)
             180:     19(int) ShiftRightLogical 179 24
                              Store 132(byteAddrTemp) 180
             181:     19(int) Load 132(byteAddrTemp)
             182:     30(ptr) AccessChain 18(sbuf) 26 181
             183:      6(int) Load 182
             184:     19(int) Load 132(byteAddrTemp)
             185:     19(int) IAdd 184 45
             186:     30(ptr) AccessChain 18(sbuf) 26 185
             187:      6(int) Load 186
             188:     19(int) Load 132(byteAddrTemp)
             189:     19(int) IAdd 188 24
             190:     30(ptr) AccessChain 18(sbuf) 26 189
             191:      6(int) Load 190
             192:     19(int) Load 132(byteAddrTemp)
             193:     19(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:     19(int) Load 128(byteAddrTemp)
             200:     19(int) IAdd 199 147
             201:      6(int) Load 11(pos)
             202:     19(int) ShiftRightLogical 201 24
                              Store 132(byteAddrTemp) 202
             203:     19(int) Load 132(byteAddrTemp)
             204:     30(ptr) AccessChain 18(sbuf) 26 203
             205:      6(int) Load 204
             206:     19(int) Load 132(byteAddrTemp)
             207:     19(int) IAdd 206 45
             208:     30(ptr) AccessChain 18(sbuf) 26 207
             209:      6(int) Load 208
             210:     19(int) Load 132(byteAddrTemp)
             211:     19(int) IAdd 210 24
             212:     30(ptr) AccessChain 18(sbuf) 26 211
             213:      6(int) Load 212
             214:     19(int) Load 132(byteAddrTemp)
             215:     19(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:     19(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
