vk.relaxed.frag
WARNING: 0:7: 'b' : Ignoring initializer for uniform 
WARNING: 0:8: 'c' : ignoring layout qualifier for uniform location

Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:36  Function Definition: bar( ( global highp uint)
0:36    Function Parameters: 
0:37    Sequence
0:37      Sequence
0:37        move second child to first child ( temp highp uint)
0:37          'j' ( temp highp uint)
0:37          Constant:
0:37            0 (const uint)
0:38      move second child to first child ( temp highp uint)
0:38        'j' ( temp highp uint)
0:38        AtomicAdd ( global highp uint)
0:38          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:38            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:38            Constant:
0:38              0 (const uint)
0:38          Constant:
0:38            1 (const uint)
0:39      move second child to first child ( temp highp uint)
0:39        'j' ( temp highp uint)
0:39        subtract ( temp highp uint)
0:39          AtomicAdd ( global highp uint)
0:39            counter1: direct index for structure ( coherent volatile buffer highp uint)
0:39              'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:39              Constant:
0:39                0 (const uint)
0:39            Constant:
0:39              4294967295 (const uint)
0:39          Constant:
0:39            1 (const uint)
0:40      move second child to first child ( temp highp uint)
0:40        'j' ( temp highp uint)
0:40        counter1: direct index for structure ( coherent volatile buffer highp uint)
0:40          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:40          Constant:
0:40            0 (const uint)
0:42      move second child to first child ( temp highp uint)
0:42        'j' ( temp highp uint)
0:42        AtomicAdd ( global highp uint)
0:42          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:42            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:42            Constant:
0:42              0 (const uint)
0:42          Constant:
0:42            1 (const uint)
0:43      move second child to first child ( temp highp uint)
0:43        'j' ( temp highp uint)
0:43        AtomicAdd ( global highp uint)
0:43          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:43            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:43            Constant:
0:43              0 (const uint)
0:43          Constant:
0:43            4294967295 (const uint)
0:44      move second child to first child ( temp highp uint)
0:44        'j' ( temp highp uint)
0:44        AtomicSubtract ( global highp uint)
0:44          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:44            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:44            Constant:
0:44              0 (const uint)
0:44          Constant:
0:44            1 (const uint)
0:46      move second child to first child ( temp highp uint)
0:46        'j' ( temp highp uint)
0:46        AtomicMin ( global highp uint)
0:46          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:46            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:46            Constant:
0:46              0 (const uint)
0:46          'j' ( temp highp uint)
0:47      move second child to first child ( temp highp uint)
0:47        'j' ( temp highp uint)
0:47        AtomicMax ( global highp uint)
0:47          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:47            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:47            Constant:
0:47              0 (const uint)
0:47          'j' ( temp highp uint)
0:48      move second child to first child ( temp highp uint)
0:48        'j' ( temp highp uint)
0:48        AtomicAnd ( global highp uint)
0:48          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:48            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:48            Constant:
0:48              0 (const uint)
0:48          'j' ( temp highp uint)
0:50      move second child to first child ( temp highp uint)
0:50        'j' ( temp highp uint)
0:50        AtomicOr ( global highp uint)
0:50          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:50            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:50            Constant:
0:50              0 (const uint)
0:50          'j' ( temp highp uint)
0:51      move second child to first child ( temp highp uint)
0:51        'j' ( temp highp uint)
0:51        AtomicXor ( global highp uint)
0:51          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:51            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:51            Constant:
0:51              0 (const uint)
0:51          'j' ( temp highp uint)
0:53      move second child to first child ( temp highp uint)
0:53        'j' ( temp highp uint)
0:53        AtomicExchange ( global highp uint)
0:53          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:53            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:53            Constant:
0:53              0 (const uint)
0:53          'j' ( temp highp uint)
0:54      move second child to first child ( temp highp uint)
0:54        'j' ( temp highp uint)
0:54        AtomicCompSwap ( global highp uint)
0:54          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:54            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:54            Constant:
0:54              0 (const uint)
0:54          Constant:
0:54            0 (const uint)
0:54          'j' ( temp highp uint)
0:56      AtomicAdd ( global highp uint)
0:56        counter2: direct index for structure ( coherent volatile buffer highp uint)
0:56          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:56          Constant:
0:56            1 (const uint)
0:56        Constant:
0:56          1 (const uint)
0:57      AtomicAdd ( global highp uint)
0:57        counter3: direct index for structure ( coherent volatile buffer highp uint)
0:57          'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
0:57          Constant:
0:57            0 (const uint)
0:57        Constant:
0:57          1 (const uint)
0:59      MemoryBarrierBuffer ( global void)
0:61      Branch: Return with expression
0:61        'j' ( temp highp uint)
0:64  Function Definition: foo( ( global highp 4-component vector of float)
0:64    Function Parameters: 
0:65    Sequence
0:65      Sequence
0:65        move second child to first child ( temp highp float)
0:65          'f' ( temp highp float)
0:65          add ( temp highp float)
0:65            add ( temp highp float)
0:65              add ( temp highp float)
0:65                j: direct index for structure (layout( column_major std140) uniform highp float)
0:65                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
0:65                  Constant:
0:65                    0 (const uint)
0:65                j: direct index for structure (layout( column_major std430) buffer highp float)
0:65                  'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
0:65                  Constant:
0:65                    0 (const int)
0:65              y: direct index for structure ( global highp float)
0:65                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
0:65                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:65                  Constant:
0:65                    4 (const uint)
0:65                Constant:
0:65                  1 (const int)
0:65            Convert uint to float ( temp highp float)
0:65              z: direct index for structure ( global highp uint)
0:65                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
0:65                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:65                  Constant:
0:65                    4 (const uint)
0:65                Constant:
0:65                  2 (const int)
0:66      Sequence
0:66        move second child to first child ( temp highp 2-component vector of float)
0:66          'v2' ( temp highp 2-component vector of float)
0:66          add ( temp highp 2-component vector of float)
0:66            add ( temp highp 2-component vector of float)
0:66              b: direct index for structure ( uniform highp 2-component vector of float)
0:66                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:66                Constant:
0:66                  1 (const uint)
0:66              c: direct index for structure ( uniform highp 2-component vector of float)
0:66                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:66                Constant:
0:66                  2 (const uint)
0:66            x: direct index for structure ( global highp 2-component vector of float)
0:66              structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
0:66                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:66                Constant:
0:66                  4 (const uint)
0:66              Constant:
0:66                0 (const int)
0:67      Sequence
0:67        move second child to first child ( temp highp 4-component vector of float)
0:67          'v4' ( temp highp 4-component vector of float)
0:67          add ( temp highp 4-component vector of float)
0:67            add ( temp highp 4-component vector of float)
0:67              add ( temp highp 4-component vector of float)
0:67                add ( temp highp 4-component vector of float)
0:67                  add ( temp highp 4-component vector of float)
0:67                    add ( temp highp 4-component vector of float)
0:67                      a: direct index for structure ( uniform highp 4-component vector of float)
0:67                        'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:67                        Constant:
0:67                          0 (const uint)
0:67                      direct index ( temp highp 4-component vector of float)
0:67                        d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
0:67                          'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:67                          Constant:
0:67                            3 (const uint)
0:67                        Constant:
0:67                          0 (const int)
0:67                    direct index ( temp highp 4-component vector of float)
0:67                      d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
0:67                        'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:67                        Constant:
0:67                          3 (const uint)
0:67                      Constant:
0:67                        1 (const int)
0:67                  direct index ( temp highp 4-component vector of float)
0:67                    d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
0:67                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:67                      Constant:
0:67                        3 (const uint)
0:67                    Constant:
0:67                      2 (const int)
0:67                k: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:67                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
0:67                  Constant:
0:67                    1 (const uint)
0:67              k: direct index for structure (layout( column_major std430) buffer highp 4-component vector of float)
0:67                'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
0:67                Constant:
0:67                  1 (const int)
0:67            texture ( global highp 4-component vector of float)
0:67              't1' ( uniform highp sampler2D)
0:67              Constant:
0:67                0.000000
0:67                0.000000
0:68      Branch: Return with expression
0:68        component-wise multiply ( temp highp 4-component vector of float)
0:68          component-wise multiply ( temp highp 4-component vector of float)
0:68            Construct vec4 ( temp highp 4-component vector of float)
0:68              'f' ( temp highp float)
0:68            Construct vec4 ( temp highp 4-component vector of float)
0:68              'v2' ( temp highp 2-component vector of float)
0:68              Constant:
0:68                1.000000
0:68              Constant:
0:68                1.000000
0:68          'v4' ( temp highp 4-component vector of float)
0:71  Function Definition: main( ( global void)
0:71    Function Parameters: 
0:72    Sequence
0:72      Sequence
0:72        move second child to first child ( temp highp float)
0:72          'j' ( temp highp float)
0:72          Convert uint to float ( temp highp float)
0:72            Function Call: bar( ( global highp uint)
0:73      move second child to first child ( temp highp 4-component vector of float)
0:73        'o' ( out highp 4-component vector of float)
0:73        vector-scale ( temp highp 4-component vector of float)
0:73          'j' ( temp highp float)
0:73          Function Call: foo( ( global highp 4-component vector of float)
0:?   Linker Objects
0:?     'o' ( out highp 4-component vector of float)
0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:?     't1' ( uniform highp sampler2D)
0:?     'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
0:?     'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
0:?     'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:?     'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})


Linked fragment stage:


Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:36  Function Definition: bar( ( global highp uint)
0:36    Function Parameters: 
0:37    Sequence
0:37      Sequence
0:37        move second child to first child ( temp highp uint)
0:37          'j' ( temp highp uint)
0:37          Constant:
0:37            0 (const uint)
0:38      move second child to first child ( temp highp uint)
0:38        'j' ( temp highp uint)
0:38        AtomicAdd ( global highp uint)
0:38          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:38            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:38            Constant:
0:38              0 (const uint)
0:38          Constant:
0:38            1 (const uint)
0:39      move second child to first child ( temp highp uint)
0:39        'j' ( temp highp uint)
0:39        subtract ( temp highp uint)
0:39          AtomicAdd ( global highp uint)
0:39            counter1: direct index for structure ( coherent volatile buffer highp uint)
0:39              'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:39              Constant:
0:39                0 (const uint)
0:39            Constant:
0:39              4294967295 (const uint)
0:39          Constant:
0:39            1 (const uint)
0:40      move second child to first child ( temp highp uint)
0:40        'j' ( temp highp uint)
0:40        counter1: direct index for structure ( coherent volatile buffer highp uint)
0:40          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:40          Constant:
0:40            0 (const uint)
0:42      move second child to first child ( temp highp uint)
0:42        'j' ( temp highp uint)
0:42        AtomicAdd ( global highp uint)
0:42          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:42            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:42            Constant:
0:42              0 (const uint)
0:42          Constant:
0:42            1 (const uint)
0:43      move second child to first child ( temp highp uint)
0:43        'j' ( temp highp uint)
0:43        AtomicAdd ( global highp uint)
0:43          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:43            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:43            Constant:
0:43              0 (const uint)
0:43          Constant:
0:43            4294967295 (const uint)
0:44      move second child to first child ( temp highp uint)
0:44        'j' ( temp highp uint)
0:44        AtomicSubtract ( global highp uint)
0:44          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:44            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:44            Constant:
0:44              0 (const uint)
0:44          Constant:
0:44            1 (const uint)
0:46      move second child to first child ( temp highp uint)
0:46        'j' ( temp highp uint)
0:46        AtomicMin ( global highp uint)
0:46          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:46            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:46            Constant:
0:46              0 (const uint)
0:46          'j' ( temp highp uint)
0:47      move second child to first child ( temp highp uint)
0:47        'j' ( temp highp uint)
0:47        AtomicMax ( global highp uint)
0:47          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:47            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:47            Constant:
0:47              0 (const uint)
0:47          'j' ( temp highp uint)
0:48      move second child to first child ( temp highp uint)
0:48        'j' ( temp highp uint)
0:48        AtomicAnd ( global highp uint)
0:48          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:48            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:48            Constant:
0:48              0 (const uint)
0:48          'j' ( temp highp uint)
0:50      move second child to first child ( temp highp uint)
0:50        'j' ( temp highp uint)
0:50        AtomicOr ( global highp uint)
0:50          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:50            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:50            Constant:
0:50              0 (const uint)
0:50          'j' ( temp highp uint)
0:51      move second child to first child ( temp highp uint)
0:51        'j' ( temp highp uint)
0:51        AtomicXor ( global highp uint)
0:51          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:51            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:51            Constant:
0:51              0 (const uint)
0:51          'j' ( temp highp uint)
0:53      move second child to first child ( temp highp uint)
0:53        'j' ( temp highp uint)
0:53        AtomicExchange ( global highp uint)
0:53          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:53            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:53            Constant:
0:53              0 (const uint)
0:53          'j' ( temp highp uint)
0:54      move second child to first child ( temp highp uint)
0:54        'j' ( temp highp uint)
0:54        AtomicCompSwap ( global highp uint)
0:54          counter1: direct index for structure ( coherent volatile buffer highp uint)
0:54            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:54            Constant:
0:54              0 (const uint)
0:54          Constant:
0:54            0 (const uint)
0:54          'j' ( temp highp uint)
0:56      AtomicAdd ( global highp uint)
0:56        counter2: direct index for structure ( coherent volatile buffer highp uint)
0:56          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:56          Constant:
0:56            1 (const uint)
0:56        Constant:
0:56          1 (const uint)
0:57      AtomicAdd ( global highp uint)
0:57        counter3: direct index for structure ( coherent volatile buffer highp uint)
0:57          'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
0:57          Constant:
0:57            0 (const uint)
0:57        Constant:
0:57          1 (const uint)
0:59      MemoryBarrierBuffer ( global void)
0:61      Branch: Return with expression
0:61        'j' ( temp highp uint)
0:64  Function Definition: foo( ( global highp 4-component vector of float)
0:64    Function Parameters: 
0:65    Sequence
0:65      Sequence
0:65        move second child to first child ( temp highp float)
0:65          'f' ( temp highp float)
0:65          add ( temp highp float)
0:65            add ( temp highp float)
0:65              add ( temp highp float)
0:65                j: direct index for structure (layout( column_major std140) uniform highp float)
0:65                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
0:65                  Constant:
0:65                    0 (const uint)
0:65                j: direct index for structure (layout( column_major std430) buffer highp float)
0:65                  'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
0:65                  Constant:
0:65                    0 (const int)
0:65              y: direct index for structure ( global highp float)
0:65                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
0:65                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:65                  Constant:
0:65                    4 (const uint)
0:65                Constant:
0:65                  1 (const int)
0:65            Convert uint to float ( temp highp float)
0:65              z: direct index for structure ( global highp uint)
0:65                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
0:65                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:65                  Constant:
0:65                    4 (const uint)
0:65                Constant:
0:65                  2 (const int)
0:66      Sequence
0:66        move second child to first child ( temp highp 2-component vector of float)
0:66          'v2' ( temp highp 2-component vector of float)
0:66          add ( temp highp 2-component vector of float)
0:66            add ( temp highp 2-component vector of float)
0:66              b: direct index for structure ( uniform highp 2-component vector of float)
0:66                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:66                Constant:
0:66                  1 (const uint)
0:66              c: direct index for structure ( uniform highp 2-component vector of float)
0:66                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:66                Constant:
0:66                  2 (const uint)
0:66            x: direct index for structure ( global highp 2-component vector of float)
0:66              structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
0:66                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:66                Constant:
0:66                  4 (const uint)
0:66              Constant:
0:66                0 (const int)
0:67      Sequence
0:67        move second child to first child ( temp highp 4-component vector of float)
0:67          'v4' ( temp highp 4-component vector of float)
0:67          add ( temp highp 4-component vector of float)
0:67            add ( temp highp 4-component vector of float)
0:67              add ( temp highp 4-component vector of float)
0:67                add ( temp highp 4-component vector of float)
0:67                  add ( temp highp 4-component vector of float)
0:67                    add ( temp highp 4-component vector of float)
0:67                      a: direct index for structure ( uniform highp 4-component vector of float)
0:67                        'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:67                        Constant:
0:67                          0 (const uint)
0:67                      direct index ( temp highp 4-component vector of float)
0:67                        d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
0:67                          'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:67                          Constant:
0:67                            3 (const uint)
0:67                        Constant:
0:67                          0 (const int)
0:67                    direct index ( temp highp 4-component vector of float)
0:67                      d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
0:67                        'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:67                        Constant:
0:67                          3 (const uint)
0:67                      Constant:
0:67                        1 (const int)
0:67                  direct index ( temp highp 4-component vector of float)
0:67                    d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
0:67                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:67                      Constant:
0:67                        3 (const uint)
0:67                    Constant:
0:67                      2 (const int)
0:67                k: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:67                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
0:67                  Constant:
0:67                    1 (const uint)
0:67              k: direct index for structure (layout( column_major std430) buffer highp 4-component vector of float)
0:67                'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
0:67                Constant:
0:67                  1 (const int)
0:67            texture ( global highp 4-component vector of float)
0:67              't1' ( uniform highp sampler2D)
0:67              Constant:
0:67                0.000000
0:67                0.000000
0:68      Branch: Return with expression
0:68        component-wise multiply ( temp highp 4-component vector of float)
0:68          component-wise multiply ( temp highp 4-component vector of float)
0:68            Construct vec4 ( temp highp 4-component vector of float)
0:68              'f' ( temp highp float)
0:68            Construct vec4 ( temp highp 4-component vector of float)
0:68              'v2' ( temp highp 2-component vector of float)
0:68              Constant:
0:68                1.000000
0:68              Constant:
0:68                1.000000
0:68          'v4' ( temp highp 4-component vector of float)
0:71  Function Definition: main( ( global void)
0:71    Function Parameters: 
0:72    Sequence
0:72      Sequence
0:72        move second child to first child ( temp highp float)
0:72          'j' ( temp highp float)
0:72          Convert uint to float ( temp highp float)
0:72            Function Call: bar( ( global highp uint)
0:73      move second child to first child ( temp highp 4-component vector of float)
0:73        'o' ( out highp 4-component vector of float)
0:73        vector-scale ( temp highp 4-component vector of float)
0:73          'j' ( temp highp float)
0:73          Function Call: foo( ( global highp 4-component vector of float)
0:?   Linker Objects
0:?     'o' ( out highp 4-component vector of float)
0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
0:?     't1' ( uniform highp sampler2D)
0:?     'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
0:?     'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
0:?     'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:?     'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})

// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 163

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 159
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 460
                              Name 4  "main"
                              Name 8  "bar("
                              Name 13  "foo("
                              Name 16  "j"
                              Name 18  "gl_AtomicCounterBlock_0"
                              MemberName 18(gl_AtomicCounterBlock_0) 0  "counter1"
                              MemberName 18(gl_AtomicCounterBlock_0) 1  "counter2"
                              Name 20  ""
                              Name 63  "gl_AtomicCounterBlock_1"
                              MemberName 63(gl_AtomicCounterBlock_1) 0  "counter3"
                              Name 65  ""
                              Name 73  "f"
                              Name 74  "UniformBlock"
                              MemberName 74(UniformBlock) 0  "j"
                              MemberName 74(UniformBlock) 1  "k"
                              Name 76  ""
                              Name 80  "BufferBlock"
                              MemberName 80(BufferBlock) 0  "j"
                              MemberName 80(BufferBlock) 1  "k"
                              Name 82  "bufferInstance"
                              Name 89  "e"
                              MemberName 89(e) 0  "x"
                              MemberName 89(e) 1  "y"
                              MemberName 89(e) 2  "z"
                              Name 90  "gl_DefaultUniformBlock"
                              MemberName 90(gl_DefaultUniformBlock) 0  "a"
                              MemberName 90(gl_DefaultUniformBlock) 1  "b"
                              MemberName 90(gl_DefaultUniformBlock) 2  "c"
                              MemberName 90(gl_DefaultUniformBlock) 3  "d"
                              MemberName 90(gl_DefaultUniformBlock) 4  "structUniform"
                              Name 92  ""
                              Name 103  "v2"
                              Name 114  "v4"
                              Name 137  "t1"
                              Name 155  "j"
                              Name 159  "o"
                              MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Coherent
                              MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Volatile
                              MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Coherent
                              MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Offset 0
                              MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Coherent
                              MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Volatile
                              MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Coherent
                              MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Offset 4
                              Decorate 18(gl_AtomicCounterBlock_0) BufferBlock
                              Decorate 20 DescriptorSet 0
                              Decorate 20 Binding 4
                              MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Coherent
                              MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Volatile
                              MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Coherent
                              MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Offset 0
                              Decorate 63(gl_AtomicCounterBlock_1) BufferBlock
                              Decorate 65 DescriptorSet 0
                              Decorate 65 Binding 5
                              MemberDecorate 74(UniformBlock) 0 Offset 0
                              MemberDecorate 74(UniformBlock) 1 Offset 16
                              Decorate 74(UniformBlock) Block
                              Decorate 76 DescriptorSet 0
                              Decorate 76 Binding 2
                              MemberDecorate 80(BufferBlock) 0 Offset 0
                              MemberDecorate 80(BufferBlock) 1 Offset 16
                              Decorate 80(BufferBlock) BufferBlock
                              Decorate 82(bufferInstance) DescriptorSet 0
                              Decorate 82(bufferInstance) Binding 3
                              Decorate 88 ArrayStride 16
                              MemberDecorate 89(e) 0 Offset 0
                              MemberDecorate 89(e) 1 Offset 8
                              MemberDecorate 89(e) 2 Offset 12
                              MemberDecorate 90(gl_DefaultUniformBlock) 0 Offset 0
                              MemberDecorate 90(gl_DefaultUniformBlock) 1 Offset 16
                              MemberDecorate 90(gl_DefaultUniformBlock) 2 Offset 24
                              MemberDecorate 90(gl_DefaultUniformBlock) 3 Offset 32
                              MemberDecorate 90(gl_DefaultUniformBlock) 4 Offset 192
                              Decorate 90(gl_DefaultUniformBlock) Block
                              Decorate 92 DescriptorSet 0
                              Decorate 92 Binding 0
                              Decorate 137(t1) DescriptorSet 0
                              Decorate 137(t1) Binding 1
                              Decorate 159(o) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypeFunction 6(int)
              10:             TypeFloat 32
              11:             TypeVector 10(float) 4
              12:             TypeFunction 11(fvec4)
              15:             TypePointer Function 6(int)
              17:      6(int) Constant 0
18(gl_AtomicCounterBlock_0):             TypeStruct 6(int) 6(int)
              19:             TypePointer Uniform 18(gl_AtomicCounterBlock_0)
              20:     19(ptr) Variable Uniform
              21:             TypeInt 32 1
              22:     21(int) Constant 0
              23:             TypePointer Uniform 6(int)
              25:      6(int) Constant 1
              28:      6(int) Constant 4294967295
              60:     21(int) Constant 1
63(gl_AtomicCounterBlock_1):             TypeStruct 6(int)
              64:             TypePointer Uniform 63(gl_AtomicCounterBlock_1)
              65:     64(ptr) Variable Uniform
              68:      6(int) Constant 72
              72:             TypePointer Function 10(float)
74(UniformBlock):             TypeStruct 10(float) 11(fvec4)
              75:             TypePointer Uniform 74(UniformBlock)
              76:     75(ptr) Variable Uniform
              77:             TypePointer Uniform 10(float)
 80(BufferBlock):             TypeStruct 10(float) 11(fvec4)
              81:             TypePointer Uniform 80(BufferBlock)
82(bufferInstance):     81(ptr) Variable Uniform
              86:             TypeVector 10(float) 2
              87:      6(int) Constant 10
              88:             TypeArray 11(fvec4) 87
           89(e):             TypeStruct 86(fvec2) 10(float) 6(int)
90(gl_DefaultUniformBlock):             TypeStruct 11(fvec4) 86(fvec2) 86(fvec2) 88 89(e)
              91:             TypePointer Uniform 90(gl_DefaultUniformBlock)
              92:     91(ptr) Variable Uniform
              93:     21(int) Constant 4
              97:     21(int) Constant 2
             102:             TypePointer Function 86(fvec2)
             104:             TypePointer Uniform 86(fvec2)
             113:             TypePointer Function 11(fvec4)
             115:             TypePointer Uniform 11(fvec4)
             118:     21(int) Constant 3
             134:             TypeImage 10(float) 2D sampled format:Unknown
             135:             TypeSampledImage 134
             136:             TypePointer UniformConstant 135
         137(t1):    136(ptr) Variable UniformConstant
             139:   10(float) Constant 0
             140:   86(fvec2) ConstantComposite 139 139
             146:   10(float) Constant 1065353216
             158:             TypePointer Output 11(fvec4)
          159(o):    158(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
          155(j):     72(ptr) Variable Function
             156:      6(int) FunctionCall 8(bar()
             157:   10(float) ConvertUToF 156
                              Store 155(j) 157
             160:   10(float) Load 155(j)
             161:   11(fvec4) FunctionCall 13(foo()
             162:   11(fvec4) VectorTimesScalar 161 160
                              Store 159(o) 162
                              Return
                              FunctionEnd
         8(bar():      6(int) Function None 7
               9:             Label
           16(j):     15(ptr) Variable Function
                              Store 16(j) 17
              24:     23(ptr) AccessChain 20 22
              26:      6(int) AtomicIAdd 24 25 17 25
                              Store 16(j) 26
              27:     23(ptr) AccessChain 20 22
              29:      6(int) AtomicIAdd 27 25 17 28
              30:      6(int) ISub 29 25
                              Store 16(j) 30
              31:     23(ptr) AccessChain 20 22
              32:      6(int) Load 31
                              Store 16(j) 32
              33:     23(ptr) AccessChain 20 22
              34:      6(int) AtomicIAdd 33 25 17 25
                              Store 16(j) 34
              35:     23(ptr) AccessChain 20 22
              36:      6(int) AtomicIAdd 35 25 17 28
                              Store 16(j) 36
              37:     23(ptr) AccessChain 20 22
              38:      6(int) AtomicISub 37 25 17 25
                              Store 16(j) 38
              39:     23(ptr) AccessChain 20 22
              40:      6(int) Load 16(j)
              41:      6(int) AtomicUMin 39 25 17 40
                              Store 16(j) 41
              42:     23(ptr) AccessChain 20 22
              43:      6(int) Load 16(j)
              44:      6(int) AtomicUMax 42 25 17 43
                              Store 16(j) 44
              45:     23(ptr) AccessChain 20 22
              46:      6(int) Load 16(j)
              47:      6(int) AtomicAnd 45 25 17 46
                              Store 16(j) 47
              48:     23(ptr) AccessChain 20 22
              49:      6(int) Load 16(j)
              50:      6(int) AtomicOr 48 25 17 49
                              Store 16(j) 50
              51:     23(ptr) AccessChain 20 22
              52:      6(int) Load 16(j)
              53:      6(int) AtomicXor 51 25 17 52
                              Store 16(j) 53
              54:     23(ptr) AccessChain 20 22
              55:      6(int) Load 16(j)
              56:      6(int) AtomicExchange 54 25 17 55
                              Store 16(j) 56
              57:     23(ptr) AccessChain 20 22
              58:      6(int) Load 16(j)
              59:      6(int) AtomicCompareExchange 57 25 17 17 58 17
                              Store 16(j) 59
              61:     23(ptr) AccessChain 20 60
              62:      6(int) AtomicIAdd 61 25 17 25
              66:     23(ptr) AccessChain 65 22
              67:      6(int) AtomicIAdd 66 25 17 25
                              MemoryBarrier 25 68
              69:      6(int) Load 16(j)
                              ReturnValue 69
                              FunctionEnd
        13(foo():   11(fvec4) Function None 12
              14:             Label
           73(f):     72(ptr) Variable Function
         103(v2):    102(ptr) Variable Function
         114(v4):    113(ptr) Variable Function
              78:     77(ptr) AccessChain 76 22
              79:   10(float) Load 78
              83:     77(ptr) AccessChain 82(bufferInstance) 22
              84:   10(float) Load 83
              85:   10(float) FAdd 79 84
              94:     77(ptr) AccessChain 92 93 60
              95:   10(float) Load 94
              96:   10(float) FAdd 85 95
              98:     23(ptr) AccessChain 92 93 97
              99:      6(int) Load 98
             100:   10(float) ConvertUToF 99
             101:   10(float) FAdd 96 100
                              Store 73(f) 101
             105:    104(ptr) AccessChain 92 60
             106:   86(fvec2) Load 105
             107:    104(ptr) AccessChain 92 97
             108:   86(fvec2) Load 107
             109:   86(fvec2) FAdd 106 108
             110:    104(ptr) AccessChain 92 93 22
             111:   86(fvec2) Load 110
             112:   86(fvec2) FAdd 109 111
                              Store 103(v2) 112
             116:    115(ptr) AccessChain 92 22
             117:   11(fvec4) Load 116
             119:    115(ptr) AccessChain 92 118 22
             120:   11(fvec4) Load 119
             121:   11(fvec4) FAdd 117 120
             122:    115(ptr) AccessChain 92 118 60
             123:   11(fvec4) Load 122
             124:   11(fvec4) FAdd 121 123
             125:    115(ptr) AccessChain 92 118 97
             126:   11(fvec4) Load 125
             127:   11(fvec4) FAdd 124 126
             128:    115(ptr) AccessChain 76 60
             129:   11(fvec4) Load 128
             130:   11(fvec4) FAdd 127 129
             131:    115(ptr) AccessChain 82(bufferInstance) 60
             132:   11(fvec4) Load 131
             133:   11(fvec4) FAdd 130 132
             138:         135 Load 137(t1)
             141:   11(fvec4) ImageSampleImplicitLod 138 140
             142:   11(fvec4) FAdd 133 141
                              Store 114(v4) 142
             143:   10(float) Load 73(f)
             144:   11(fvec4) CompositeConstruct 143 143 143 143
             145:   86(fvec2) Load 103(v2)
             147:   10(float) CompositeExtract 145 0
             148:   10(float) CompositeExtract 145 1
             149:   11(fvec4) CompositeConstruct 147 148 146 146
             150:   11(fvec4) FMul 144 149
             151:   11(fvec4) Load 114(v4)
             152:   11(fvec4) FMul 150 151
                              ReturnValue 152
                              FunctionEnd
