vk.relaxed.link1.frag
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:19  Function Definition: bar( ( global highp 4-component vector of float)
0:19    Function Parameters: 
0:20    Sequence
0:20      Sequence
0:20        move second child to first child ( temp highp uint)
0:20          'j' ( temp highp uint)
0:20          add ( temp highp uint)
0:20            AtomicAdd ( global highp uint)
0:20              counter1: direct index for structure ( coherent volatile buffer highp uint)
0:20                'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:20                Constant:
0:20                  0 (const uint)
0:20              Constant:
0:20                1 (const uint)
0:20            subtract ( temp highp uint)
0:20              AtomicAdd ( global highp uint)
0:20                counter2: direct index for structure ( coherent volatile buffer highp uint)
0:20                  'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:20                  Constant:
0:20                    1 (const uint)
0:20                Constant:
0:20                  4294967295 (const uint)
0:20              Constant:
0:20                1 (const uint)
0:21      Sequence
0:21        move second child to first child ( temp highp 4-component vector of float)
0:21          'v' ( temp highp 4-component vector of float)
0:21          add ( temp highp 4-component vector of float)
0:21            add ( temp highp 4-component vector of float)
0:21              add ( temp highp 4-component vector of float)
0:21                a: direct index for structure ( uniform highp 4-component vector of float)
0:21                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                  Constant:
0:21                    0 (const uint)
0:21                Construct vec4 ( temp highp 4-component vector of float)
0:21                  direct index ( temp highp float)
0:21                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                      Constant:
0:21                        1 (const uint)
0:21                    Constant:
0:21                      0 (const int)
0:21                  direct index ( temp highp float)
0:21                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                      Constant:
0:21                        1 (const uint)
0:21                    Constant:
0:21                      1 (const int)
0:21                  direct index ( temp highp float)
0:21                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                      Constant:
0:21                        2 (const uint)
0:21                    Constant:
0:21                      0 (const int)
0:21                  direct index ( temp highp float)
0:21                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                      Constant:
0:21                        2 (const uint)
0:21                    Constant:
0:21                      1 (const int)
0:21              c1: direct index for structure ( uniform highp 4-component vector of float)
0:21                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                Constant:
0:21                  3 (const uint)
0:21            d: direct index for structure ( uniform highp 4-component vector of float)
0:21              'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21              Constant:
0:21                4 (const uint)
0:23      Branch: Return with expression
0:23        vector-scale ( temp highp 4-component vector of float)
0:23          Convert uint to float ( temp highp float)
0:23            'j' ( temp highp uint)
0:23          'v' ( temp highp 4-component vector of float)
0:26  Function Definition: main( ( global void)
0:26    Function Parameters: 
0:27    Sequence
0:27      move second child to first child ( temp highp 4-component vector of float)
0:27        'o' ( out highp 4-component vector of float)
0:27        add ( temp highp 4-component vector of float)
0:27          Function Call: foo( ( global highp 4-component vector of float)
0:27          Function Call: bar( ( 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 b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:?     'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})

vk.relaxed.link2.frag
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:14  Function Definition: foo( ( global highp 4-component vector of float)
0:14    Function Parameters: 
0:15    Sequence
0:15      Sequence
0:15        move second child to first child ( temp highp uint)
0:15          'j' ( temp highp uint)
0:15          add ( temp highp uint)
0:15            AtomicAdd ( global highp uint)
0:15              counter2: direct index for structure ( coherent volatile buffer highp uint)
0:15                'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3,  coherent volatile buffer highp uint counter2})
0:15                Constant:
0:15                  1 (const uint)
0:15              Constant:
0:15                1 (const uint)
0:15            subtract ( temp highp uint)
0:15              AtomicAdd ( global highp uint)
0:15                counter3: direct index for structure ( coherent volatile buffer highp uint)
0:15                  'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3,  coherent volatile buffer highp uint counter2})
0:15                  Constant:
0:15                    0 (const uint)
0:15                Constant:
0:15                  4294967295 (const uint)
0:15              Constant:
0:15                1 (const uint)
0:16      Sequence
0:16        move second child to first child ( temp highp 4-component vector of float)
0:16          'v' ( temp highp 4-component vector of float)
0:16          add ( temp highp 4-component vector of float)
0:16            add ( temp highp 4-component vector of float)
0:16              add ( temp highp 4-component vector of float)
0:16                a: direct index for structure ( uniform highp 4-component vector of float)
0:16                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d})
0:16                  Constant:
0:16                    0 (const uint)
0:16                Construct vec4 ( temp highp 4-component vector of float)
0:16                  direct index ( temp highp float)
0:16                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:16                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d})
0:16                      Constant:
0:16                        2 (const uint)
0:16                    Constant:
0:16                      0 (const int)
0:16                  direct index ( temp highp float)
0:16                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:16                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d})
0:16                      Constant:
0:16                        2 (const uint)
0:16                    Constant:
0:16                      1 (const int)
0:16                  direct index ( temp highp float)
0:16                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:16                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d})
0:16                      Constant:
0:16                        1 (const uint)
0:16                    Constant:
0:16                      0 (const int)
0:16                  direct index ( temp highp float)
0:16                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:16                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d})
0:16                      Constant:
0:16                        1 (const uint)
0:16                    Constant:
0:16                      1 (const int)
0:16              c2: direct index for structure ( uniform highp 4-component vector of float)
0:16                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d})
0:16                Constant:
0:16                  3 (const uint)
0:16            d: direct index for structure ( uniform highp 4-component vector of float)
0:16              'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d})
0:16              Constant:
0:16                4 (const uint)
0:18      Branch: Return with expression
0:18        vector-scale ( temp highp 4-component vector of float)
0:18          Convert uint to float ( temp highp float)
0:18            'j' ( temp highp uint)
0:18          'v' ( temp highp 4-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d})
0:?     'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3,  coherent volatile buffer highp uint counter2})


Linked fragment stage:


Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:19  Function Definition: bar( ( global highp 4-component vector of float)
0:19    Function Parameters: 
0:20    Sequence
0:20      Sequence
0:20        move second child to first child ( temp highp uint)
0:20          'j' ( temp highp uint)
0:20          add ( temp highp uint)
0:20            AtomicAdd ( global highp uint)
0:20              counter1: direct index for structure ( coherent volatile buffer highp uint)
0:20                'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2,  coherent volatile buffer highp uint counter3})
0:20                Constant:
0:20                  0 (const uint)
0:20              Constant:
0:20                1 (const uint)
0:20            subtract ( temp highp uint)
0:20              AtomicAdd ( global highp uint)
0:20                counter2: direct index for structure ( coherent volatile buffer highp uint)
0:20                  'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2,  coherent volatile buffer highp uint counter3})
0:20                  Constant:
0:20                    1 (const uint)
0:20                Constant:
0:20                  4294967295 (const uint)
0:20              Constant:
0:20                1 (const uint)
0:21      Sequence
0:21        move second child to first child ( temp highp 4-component vector of float)
0:21          'v' ( temp highp 4-component vector of float)
0:21          add ( temp highp 4-component vector of float)
0:21            add ( temp highp 4-component vector of float)
0:21              add ( temp highp 4-component vector of float)
0:21                a: direct index for structure ( uniform highp 4-component vector of float)
0:21                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:21                  Constant:
0:21                    0 (const uint)
0:21                Construct vec4 ( temp highp 4-component vector of float)
0:21                  direct index ( temp highp float)
0:21                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:21                      Constant:
0:21                        1 (const uint)
0:21                    Constant:
0:21                      0 (const int)
0:21                  direct index ( temp highp float)
0:21                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:21                      Constant:
0:21                        1 (const uint)
0:21                    Constant:
0:21                      1 (const int)
0:21                  direct index ( temp highp float)
0:21                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:21                      Constant:
0:21                        2 (const uint)
0:21                    Constant:
0:21                      0 (const int)
0:21                  direct index ( temp highp float)
0:21                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:21                      Constant:
0:21                        2 (const uint)
0:21                    Constant:
0:21                      1 (const int)
0:21              c1: direct index for structure ( uniform highp 4-component vector of float)
0:21                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:21                Constant:
0:21                  3 (const uint)
0:21            d: direct index for structure ( uniform highp 4-component vector of float)
0:21              'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:21              Constant:
0:21                4 (const uint)
0:23      Branch: Return with expression
0:23        vector-scale ( temp highp 4-component vector of float)
0:23          Convert uint to float ( temp highp float)
0:23            'j' ( temp highp uint)
0:23          'v' ( temp highp 4-component vector of float)
0:26  Function Definition: main( ( global void)
0:26    Function Parameters: 
0:27    Sequence
0:27      move second child to first child ( temp highp 4-component vector of float)
0:27        'o' ( out highp 4-component vector of float)
0:27        add ( temp highp 4-component vector of float)
0:27          Function Call: foo( ( global highp 4-component vector of float)
0:27          Function Call: bar( ( global highp 4-component vector of float)
0:14  Function Definition: foo( ( global highp 4-component vector of float)
0:14    Function Parameters: 
0:15    Sequence
0:15      Sequence
0:15        move second child to first child ( temp highp uint)
0:15          'j' ( temp highp uint)
0:15          add ( temp highp uint)
0:15            AtomicAdd ( global highp uint)
0:15              counter2: direct index for structure ( coherent volatile buffer highp uint)
0:15                'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2,  coherent volatile buffer highp uint counter3})
0:15                Constant:
0:15                  1 (const uint)
0:15              Constant:
0:15                1 (const uint)
0:15            subtract ( temp highp uint)
0:15              AtomicAdd ( global highp uint)
0:15                counter3: direct index for structure ( coherent volatile buffer highp uint)
0:15                  'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2,  coherent volatile buffer highp uint counter3})
0:15                  Constant:
0:15                    2 (const uint)
0:15                Constant:
0:15                  4294967295 (const uint)
0:15              Constant:
0:15                1 (const uint)
0:16      Sequence
0:16        move second child to first child ( temp highp 4-component vector of float)
0:16          'v' ( temp highp 4-component vector of float)
0:16          add ( temp highp 4-component vector of float)
0:16            add ( temp highp 4-component vector of float)
0:16              add ( temp highp 4-component vector of float)
0:16                a: direct index for structure ( uniform highp 4-component vector of float)
0:16                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:16                  Constant:
0:16                    0 (const uint)
0:16                Construct vec4 ( temp highp 4-component vector of float)
0:16                  direct index ( temp highp float)
0:16                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:16                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:16                      Constant:
0:16                        1 (const uint)
0:16                    Constant:
0:16                      0 (const int)
0:16                  direct index ( temp highp float)
0:16                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:16                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:16                      Constant:
0:16                        1 (const uint)
0:16                    Constant:
0:16                      1 (const int)
0:16                  direct index ( temp highp float)
0:16                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:16                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:16                      Constant:
0:16                        2 (const uint)
0:16                    Constant:
0:16                      0 (const int)
0:16                  direct index ( temp highp float)
0:16                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:16                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:16                      Constant:
0:16                        2 (const uint)
0:16                    Constant:
0:16                      1 (const int)
0:16              c2: direct index for structure ( uniform highp 4-component vector of float)
0:16                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:16                Constant:
0:16                  5 (const uint)
0:16            d: direct index for structure ( uniform highp 4-component vector of float)
0:16              'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:16              Constant:
0:16                4 (const uint)
0:18      Branch: Return with expression
0:18        vector-scale ( temp highp 4-component vector of float)
0:18          Convert uint to float ( temp highp float)
0:18            'j' ( temp highp uint)
0:18          'v' ( temp 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 b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d,  uniform highp 4-component vector of float c2})
0:?     'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2,  coherent volatile buffer highp uint counter3})

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 68
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 460
                              Name 4  "main"
                              Name 9  "bar("
                              Name 11  "foo("
                              Name 15  "j"
                              Name 16  "gl_AtomicCounterBlock_0"
                              MemberName 16(gl_AtomicCounterBlock_0) 0  "counter1"
                              MemberName 16(gl_AtomicCounterBlock_0) 1  "counter2"
                              MemberName 16(gl_AtomicCounterBlock_0) 2  "counter3"
                              Name 18  ""
                              Name 33  "v"
                              Name 35  "gl_DefaultUniformBlock"
                              MemberName 35(gl_DefaultUniformBlock) 0  "a"
                              MemberName 35(gl_DefaultUniformBlock) 1  "b1"
                              MemberName 35(gl_DefaultUniformBlock) 2  "b2"
                              MemberName 35(gl_DefaultUniformBlock) 3  "c1"
                              MemberName 35(gl_DefaultUniformBlock) 4  "d"
                              MemberName 35(gl_DefaultUniformBlock) 5  "c2"
                              Name 37  ""
                              Name 68  "o"
                              Name 72  "j"
                              Name 79  "v"
                              MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Coherent
                              MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Volatile
                              MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Coherent
                              MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Offset 0
                              MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Coherent
                              MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Volatile
                              MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Coherent
                              MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Offset 4
                              MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Coherent
                              MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Volatile
                              MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Coherent
                              MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Offset 8
                              Decorate 16(gl_AtomicCounterBlock_0) BufferBlock
                              Decorate 18 DescriptorSet 0
                              Decorate 18 Binding 1
                              MemberDecorate 35(gl_DefaultUniformBlock) 0 Offset 0
                              MemberDecorate 35(gl_DefaultUniformBlock) 1 Offset 16
                              MemberDecorate 35(gl_DefaultUniformBlock) 2 Offset 24
                              MemberDecorate 35(gl_DefaultUniformBlock) 3 Offset 32
                              MemberDecorate 35(gl_DefaultUniformBlock) 4 Offset 48
                              MemberDecorate 35(gl_DefaultUniformBlock) 5 Offset 64
                              Decorate 35(gl_DefaultUniformBlock) Block
                              Decorate 37 DescriptorSet 0
                              Decorate 37 Binding 0
                              Decorate 68(o) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
              13:             TypeInt 32 0
              14:             TypePointer Function 13(int)
16(gl_AtomicCounterBlock_0):             TypeStruct 13(int) 13(int) 13(int)
              17:             TypePointer Uniform 16(gl_AtomicCounterBlock_0)
              18:     17(ptr) Variable Uniform
              19:             TypeInt 32 1
              20:     19(int) Constant 0
              21:             TypePointer Uniform 13(int)
              23:     13(int) Constant 1
              24:     13(int) Constant 0
              26:     19(int) Constant 1
              28:     13(int) Constant 4294967295
              32:             TypePointer Function 7(fvec4)
              34:             TypeVector 6(float) 2
35(gl_DefaultUniformBlock):             TypeStruct 7(fvec4) 34(fvec2) 34(fvec2) 7(fvec4) 7(fvec4) 7(fvec4)
              36:             TypePointer Uniform 35(gl_DefaultUniformBlock)
              37:     36(ptr) Variable Uniform
              38:             TypePointer Uniform 7(fvec4)
              41:             TypePointer Uniform 6(float)
              46:     19(int) Constant 2
              53:     19(int) Constant 3
              57:     19(int) Constant 4
              67:             TypePointer Output 7(fvec4)
           68(o):     67(ptr) Variable Output
              92:     19(int) Constant 5
         4(main):           2 Function None 3
               5:             Label
              69:    7(fvec4) FunctionCall 11(foo()
              70:    7(fvec4) FunctionCall 9(bar()
              71:    7(fvec4) FAdd 69 70
                              Store 68(o) 71
                              Return
                              FunctionEnd
         9(bar():    7(fvec4) Function None 8
              10:             Label
           15(j):     14(ptr) Variable Function
           33(v):     32(ptr) Variable Function
              22:     21(ptr) AccessChain 18 20
              25:     13(int) AtomicIAdd 22 23 24 23
              27:     21(ptr) AccessChain 18 26
              29:     13(int) AtomicIAdd 27 23 24 28
              30:     13(int) ISub 29 23
              31:     13(int) IAdd 25 30
                              Store 15(j) 31
              39:     38(ptr) AccessChain 37 20
              40:    7(fvec4) Load 39
              42:     41(ptr) AccessChain 37 26 24
              43:    6(float) Load 42
              44:     41(ptr) AccessChain 37 26 23
              45:    6(float) Load 44
              47:     41(ptr) AccessChain 37 46 24
              48:    6(float) Load 47
              49:     41(ptr) AccessChain 37 46 23
              50:    6(float) Load 49
              51:    7(fvec4) CompositeConstruct 43 45 48 50
              52:    7(fvec4) FAdd 40 51
              54:     38(ptr) AccessChain 37 53
              55:    7(fvec4) Load 54
              56:    7(fvec4) FAdd 52 55
              58:     38(ptr) AccessChain 37 57
              59:    7(fvec4) Load 58
              60:    7(fvec4) FAdd 56 59
                              Store 33(v) 60
              61:     13(int) Load 15(j)
              62:    6(float) ConvertUToF 61
              63:    7(fvec4) Load 33(v)
              64:    7(fvec4) VectorTimesScalar 63 62
                              ReturnValue 64
                              FunctionEnd
        11(foo():    7(fvec4) Function None 8
              12:             Label
           72(j):     14(ptr) Variable Function
           79(v):     32(ptr) Variable Function
              73:     21(ptr) AccessChain 18 26
              74:     13(int) AtomicIAdd 73 23 24 23
              75:     21(ptr) AccessChain 18 46
              76:     13(int) AtomicIAdd 75 23 24 28
              77:     13(int) ISub 76 23
              78:     13(int) IAdd 74 77
                              Store 72(j) 78
              80:     38(ptr) AccessChain 37 20
              81:    7(fvec4) Load 80
              82:     41(ptr) AccessChain 37 26 24
              83:    6(float) Load 82
              84:     41(ptr) AccessChain 37 26 23
              85:    6(float) Load 84
              86:     41(ptr) AccessChain 37 46 24
              87:    6(float) Load 86
              88:     41(ptr) AccessChain 37 46 23
              89:    6(float) Load 88
              90:    7(fvec4) CompositeConstruct 83 85 87 89
              91:    7(fvec4) FAdd 81 90
              93:     38(ptr) AccessChain 37 92
              94:    7(fvec4) Load 93
              95:    7(fvec4) FAdd 91 94
              96:     38(ptr) AccessChain 37 57
              97:    7(fvec4) Load 96
              98:    7(fvec4) FAdd 95 97
                              Store 79(v) 98
              99:     13(int) Load 72(j)
             100:    6(float) ConvertUToF 99
             101:    7(fvec4) Load 79(v)
             102:    7(fvec4) VectorTimesScalar 101 100
                              ReturnValue 102
                              FunctionEnd
