hlsl.wavequad.comp
Shader version: 500
local_size = (32, 16, 1)
0:? Sequence
0:13  Function Definition: @CSMain(vu3; ( temp void)
0:13    Function Parameters: 
0:13      'dti' ( in 3-component vector of uint)
0:?     Sequence
0:14      move second child to first child ( temp 4-component vector of uint)
0:14        u: direct index for structure ( temp 4-component vector of uint)
0:14          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:14            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:14              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:14              Constant:
0:14                0 (const uint)
0:14            direct index ( temp uint)
0:14              'dti' ( in 3-component vector of uint)
0:14              Constant:
0:14                0 (const int)
0:14          Constant:
0:14            0 (const int)
0:14        subgroupQuadBroadcast ( temp 4-component vector of uint)
0:14          u: direct index for structure ( temp 4-component vector of uint)
0:14            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:14              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:14                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:14                Constant:
0:14                  0 (const uint)
0:14              direct index ( temp uint)
0:14                'dti' ( in 3-component vector of uint)
0:14                Constant:
0:14                  0 (const int)
0:14            Constant:
0:14              0 (const int)
0:14          Constant:
0:14            0 (const uint)
0:15      move second child to first child ( temp uint)
0:15        direct index ( temp uint)
0:15          u: direct index for structure ( temp 4-component vector of uint)
0:15            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:15              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:15                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:15                Constant:
0:15                  0 (const uint)
0:15              direct index ( temp uint)
0:15                'dti' ( in 3-component vector of uint)
0:15                Constant:
0:15                  0 (const int)
0:15            Constant:
0:15              0 (const int)
0:15          Constant:
0:15            0 (const int)
0:15        subgroupQuadBroadcast ( temp uint)
0:15          direct index ( temp uint)
0:15            u: direct index for structure ( temp 4-component vector of uint)
0:15              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:15                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:15                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:15                  Constant:
0:15                    0 (const uint)
0:15                direct index ( temp uint)
0:15                  'dti' ( in 3-component vector of uint)
0:15                  Constant:
0:15                    0 (const int)
0:15              Constant:
0:15                0 (const int)
0:15            Constant:
0:15              0 (const int)
0:15          Constant:
0:15            0 (const uint)
0:16      move second child to first child ( temp 2-component vector of uint)
0:16        vector swizzle ( temp 2-component vector of uint)
0:16          u: direct index for structure ( temp 4-component vector of uint)
0:16            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:16              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:16                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:16                Constant:
0:16                  0 (const uint)
0:16              direct index ( temp uint)
0:16                'dti' ( in 3-component vector of uint)
0:16                Constant:
0:16                  0 (const int)
0:16            Constant:
0:16              0 (const int)
0:16          Sequence
0:16            Constant:
0:16              0 (const int)
0:16            Constant:
0:16              1 (const int)
0:16        subgroupQuadBroadcast ( temp 2-component vector of uint)
0:16          vector swizzle ( temp 2-component vector of uint)
0:16            u: direct index for structure ( temp 4-component vector of uint)
0:16              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:16                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:16                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:16                  Constant:
0:16                    0 (const uint)
0:16                direct index ( temp uint)
0:16                  'dti' ( in 3-component vector of uint)
0:16                  Constant:
0:16                    0 (const int)
0:16              Constant:
0:16                0 (const int)
0:16            Sequence
0:16              Constant:
0:16                0 (const int)
0:16              Constant:
0:16                1 (const int)
0:16          Constant:
0:16            0 (const uint)
0:17      move second child to first child ( temp 3-component vector of uint)
0:17        vector swizzle ( temp 3-component vector of uint)
0:17          u: direct index for structure ( temp 4-component vector of uint)
0:17            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:17              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:17                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:17                Constant:
0:17                  0 (const uint)
0:17              direct index ( temp uint)
0:17                'dti' ( in 3-component vector of uint)
0:17                Constant:
0:17                  0 (const int)
0:17            Constant:
0:17              0 (const int)
0:17          Sequence
0:17            Constant:
0:17              0 (const int)
0:17            Constant:
0:17              1 (const int)
0:17            Constant:
0:17              2 (const int)
0:17        subgroupQuadBroadcast ( temp 3-component vector of uint)
0:17          vector swizzle ( temp 3-component vector of uint)
0:17            u: direct index for structure ( temp 4-component vector of uint)
0:17              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:17                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:17                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:17                  Constant:
0:17                    0 (const uint)
0:17                direct index ( temp uint)
0:17                  'dti' ( in 3-component vector of uint)
0:17                  Constant:
0:17                    0 (const int)
0:17              Constant:
0:17                0 (const int)
0:17            Sequence
0:17              Constant:
0:17                0 (const int)
0:17              Constant:
0:17                1 (const int)
0:17              Constant:
0:17                2 (const int)
0:17          Constant:
0:17            0 (const uint)
0:19      move second child to first child ( temp 4-component vector of int)
0:19        i: direct index for structure ( temp 4-component vector of int)
0:19          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:19            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:19              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:19              Constant:
0:19                0 (const uint)
0:19            direct index ( temp uint)
0:19              'dti' ( in 3-component vector of uint)
0:19              Constant:
0:19                0 (const int)
0:19          Constant:
0:19            1 (const int)
0:19        subgroupQuadBroadcast ( temp 4-component vector of int)
0:19          i: direct index for structure ( temp 4-component vector of int)
0:19            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:19              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:19                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:19                Constant:
0:19                  0 (const uint)
0:19              direct index ( temp uint)
0:19                'dti' ( in 3-component vector of uint)
0:19                Constant:
0:19                  0 (const int)
0:19            Constant:
0:19              1 (const int)
0:19          Constant:
0:19            0 (const uint)
0:20      move second child to first child ( temp int)
0:20        direct index ( temp int)
0:20          i: direct index for structure ( temp 4-component vector of int)
0:20            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:20              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:20                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:20                Constant:
0:20                  0 (const uint)
0:20              direct index ( temp uint)
0:20                'dti' ( in 3-component vector of uint)
0:20                Constant:
0:20                  0 (const int)
0:20            Constant:
0:20              1 (const int)
0:20          Constant:
0:20            0 (const int)
0:20        subgroupQuadBroadcast ( temp int)
0:20          direct index ( temp int)
0:20            i: direct index for structure ( temp 4-component vector of int)
0:20              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:20                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:20                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:20                  Constant:
0:20                    0 (const uint)
0:20                direct index ( temp uint)
0:20                  'dti' ( in 3-component vector of uint)
0:20                  Constant:
0:20                    0 (const int)
0:20              Constant:
0:20                1 (const int)
0:20            Constant:
0:20              0 (const int)
0:20          Constant:
0:20            0 (const uint)
0:21      move second child to first child ( temp 2-component vector of int)
0:21        vector swizzle ( temp 2-component vector of int)
0:21          i: direct index for structure ( temp 4-component vector of int)
0:21            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:21              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:21                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:21                Constant:
0:21                  0 (const uint)
0:21              direct index ( temp uint)
0:21                'dti' ( in 3-component vector of uint)
0:21                Constant:
0:21                  0 (const int)
0:21            Constant:
0:21              1 (const int)
0:21          Sequence
0:21            Constant:
0:21              0 (const int)
0:21            Constant:
0:21              1 (const int)
0:21        subgroupQuadBroadcast ( temp 2-component vector of int)
0:21          vector swizzle ( temp 2-component vector of int)
0:21            i: direct index for structure ( temp 4-component vector of int)
0:21              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:21                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:21                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:21                  Constant:
0:21                    0 (const uint)
0:21                direct index ( temp uint)
0:21                  'dti' ( in 3-component vector of uint)
0:21                  Constant:
0:21                    0 (const int)
0:21              Constant:
0:21                1 (const int)
0:21            Sequence
0:21              Constant:
0:21                0 (const int)
0:21              Constant:
0:21                1 (const int)
0:21          Constant:
0:21            0 (const uint)
0:22      move second child to first child ( temp 3-component vector of int)
0:22        vector swizzle ( temp 3-component vector of int)
0:22          i: direct index for structure ( temp 4-component vector of int)
0:22            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:22              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:22                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:22                Constant:
0:22                  0 (const uint)
0:22              direct index ( temp uint)
0:22                'dti' ( in 3-component vector of uint)
0:22                Constant:
0:22                  0 (const int)
0:22            Constant:
0:22              1 (const int)
0:22          Sequence
0:22            Constant:
0:22              0 (const int)
0:22            Constant:
0:22              1 (const int)
0:22            Constant:
0:22              2 (const int)
0:22        subgroupQuadBroadcast ( temp 3-component vector of int)
0:22          vector swizzle ( temp 3-component vector of int)
0:22            i: direct index for structure ( temp 4-component vector of int)
0:22              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:22                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:22                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:22                  Constant:
0:22                    0 (const uint)
0:22                direct index ( temp uint)
0:22                  'dti' ( in 3-component vector of uint)
0:22                  Constant:
0:22                    0 (const int)
0:22              Constant:
0:22                1 (const int)
0:22            Sequence
0:22              Constant:
0:22                0 (const int)
0:22              Constant:
0:22                1 (const int)
0:22              Constant:
0:22                2 (const int)
0:22          Constant:
0:22            0 (const uint)
0:24      move second child to first child ( temp 4-component vector of float)
0:24        f: direct index for structure ( temp 4-component vector of float)
0:24          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:24            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:24              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:24              Constant:
0:24                0 (const uint)
0:24            direct index ( temp uint)
0:24              'dti' ( in 3-component vector of uint)
0:24              Constant:
0:24                0 (const int)
0:24          Constant:
0:24            2 (const int)
0:24        subgroupQuadBroadcast ( temp 4-component vector of float)
0:24          f: direct index for structure ( temp 4-component vector of float)
0:24            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:24              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:24                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:24                Constant:
0:24                  0 (const uint)
0:24              direct index ( temp uint)
0:24                'dti' ( in 3-component vector of uint)
0:24                Constant:
0:24                  0 (const int)
0:24            Constant:
0:24              2 (const int)
0:24          Constant:
0:24            0 (const uint)
0:25      move second child to first child ( temp float)
0:25        direct index ( temp float)
0:25          f: direct index for structure ( temp 4-component vector of float)
0:25            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:25              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:25                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:25                Constant:
0:25                  0 (const uint)
0:25              direct index ( temp uint)
0:25                'dti' ( in 3-component vector of uint)
0:25                Constant:
0:25                  0 (const int)
0:25            Constant:
0:25              2 (const int)
0:25          Constant:
0:25            0 (const int)
0:25        subgroupQuadBroadcast ( temp float)
0:25          direct index ( temp float)
0:25            f: direct index for structure ( temp 4-component vector of float)
0:25              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:25                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:25                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:25                  Constant:
0:25                    0 (const uint)
0:25                direct index ( temp uint)
0:25                  'dti' ( in 3-component vector of uint)
0:25                  Constant:
0:25                    0 (const int)
0:25              Constant:
0:25                2 (const int)
0:25            Constant:
0:25              0 (const int)
0:25          Constant:
0:25            0 (const uint)
0:26      move second child to first child ( temp 2-component vector of float)
0:26        vector swizzle ( temp 2-component vector of float)
0:26          f: direct index for structure ( temp 4-component vector of float)
0:26            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:26              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:26                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:26                Constant:
0:26                  0 (const uint)
0:26              direct index ( temp uint)
0:26                'dti' ( in 3-component vector of uint)
0:26                Constant:
0:26                  0 (const int)
0:26            Constant:
0:26              2 (const int)
0:26          Sequence
0:26            Constant:
0:26              0 (const int)
0:26            Constant:
0:26              1 (const int)
0:26        subgroupQuadBroadcast ( temp 2-component vector of float)
0:26          vector swizzle ( temp 2-component vector of float)
0:26            f: direct index for structure ( temp 4-component vector of float)
0:26              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:26                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:26                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:26                  Constant:
0:26                    0 (const uint)
0:26                direct index ( temp uint)
0:26                  'dti' ( in 3-component vector of uint)
0:26                  Constant:
0:26                    0 (const int)
0:26              Constant:
0:26                2 (const int)
0:26            Sequence
0:26              Constant:
0:26                0 (const int)
0:26              Constant:
0:26                1 (const int)
0:26          Constant:
0:26            0 (const uint)
0:27      move second child to first child ( temp 3-component vector of float)
0:27        vector swizzle ( temp 3-component vector of float)
0:27          f: direct index for structure ( temp 4-component vector of float)
0:27            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:27              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:27                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:27                Constant:
0:27                  0 (const uint)
0:27              direct index ( temp uint)
0:27                'dti' ( in 3-component vector of uint)
0:27                Constant:
0:27                  0 (const int)
0:27            Constant:
0:27              2 (const int)
0:27          Sequence
0:27            Constant:
0:27              0 (const int)
0:27            Constant:
0:27              1 (const int)
0:27            Constant:
0:27              2 (const int)
0:27        subgroupQuadBroadcast ( temp 3-component vector of float)
0:27          vector swizzle ( temp 3-component vector of float)
0:27            f: direct index for structure ( temp 4-component vector of float)
0:27              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:27                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:27                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:27                  Constant:
0:27                    0 (const uint)
0:27                direct index ( temp uint)
0:27                  'dti' ( in 3-component vector of uint)
0:27                  Constant:
0:27                    0 (const int)
0:27              Constant:
0:27                2 (const int)
0:27            Sequence
0:27              Constant:
0:27                0 (const int)
0:27              Constant:
0:27                1 (const int)
0:27              Constant:
0:27                2 (const int)
0:27          Constant:
0:27            0 (const uint)
0:29      move second child to first child ( temp 4-component vector of double)
0:29        d: direct index for structure ( temp 4-component vector of double)
0:29          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:29            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:29              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:29              Constant:
0:29                0 (const uint)
0:29            direct index ( temp uint)
0:29              'dti' ( in 3-component vector of uint)
0:29              Constant:
0:29                0 (const int)
0:29          Constant:
0:29            3 (const int)
0:29        subgroupQuadBroadcast ( temp 4-component vector of double)
0:29          d: direct index for structure ( temp 4-component vector of double)
0:29            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:29              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:29                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:29                Constant:
0:29                  0 (const uint)
0:29              direct index ( temp uint)
0:29                'dti' ( in 3-component vector of uint)
0:29                Constant:
0:29                  0 (const int)
0:29            Constant:
0:29              3 (const int)
0:29          Constant:
0:29            0 (const uint)
0:30      move second child to first child ( temp double)
0:30        direct index ( temp double)
0:30          d: direct index for structure ( temp 4-component vector of double)
0:30            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:30              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:30                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:30                Constant:
0:30                  0 (const uint)
0:30              direct index ( temp uint)
0:30                'dti' ( in 3-component vector of uint)
0:30                Constant:
0:30                  0 (const int)
0:30            Constant:
0:30              3 (const int)
0:30          Constant:
0:30            0 (const int)
0:30        subgroupQuadBroadcast ( temp double)
0:30          direct index ( temp double)
0:30            d: direct index for structure ( temp 4-component vector of double)
0:30              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:30                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:30                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:30                  Constant:
0:30                    0 (const uint)
0:30                direct index ( temp uint)
0:30                  'dti' ( in 3-component vector of uint)
0:30                  Constant:
0:30                    0 (const int)
0:30              Constant:
0:30                3 (const int)
0:30            Constant:
0:30              0 (const int)
0:30          Constant:
0:30            0 (const uint)
0:31      move second child to first child ( temp 2-component vector of double)
0:31        vector swizzle ( temp 2-component vector of double)
0:31          d: direct index for structure ( temp 4-component vector of double)
0:31            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:31              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:31                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:31                Constant:
0:31                  0 (const uint)
0:31              direct index ( temp uint)
0:31                'dti' ( in 3-component vector of uint)
0:31                Constant:
0:31                  0 (const int)
0:31            Constant:
0:31              3 (const int)
0:31          Sequence
0:31            Constant:
0:31              0 (const int)
0:31            Constant:
0:31              1 (const int)
0:31        subgroupQuadBroadcast ( temp 2-component vector of double)
0:31          vector swizzle ( temp 2-component vector of double)
0:31            d: direct index for structure ( temp 4-component vector of double)
0:31              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:31                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:31                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:31                  Constant:
0:31                    0 (const uint)
0:31                direct index ( temp uint)
0:31                  'dti' ( in 3-component vector of uint)
0:31                  Constant:
0:31                    0 (const int)
0:31              Constant:
0:31                3 (const int)
0:31            Sequence
0:31              Constant:
0:31                0 (const int)
0:31              Constant:
0:31                1 (const int)
0:31          Constant:
0:31            0 (const uint)
0:32      move second child to first child ( temp 3-component vector of double)
0:32        vector swizzle ( temp 3-component vector of double)
0:32          d: direct index for structure ( temp 4-component vector of double)
0:32            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:32              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:32                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:32                Constant:
0:32                  0 (const uint)
0:32              direct index ( temp uint)
0:32                'dti' ( in 3-component vector of uint)
0:32                Constant:
0:32                  0 (const int)
0:32            Constant:
0:32              3 (const int)
0:32          Sequence
0:32            Constant:
0:32              0 (const int)
0:32            Constant:
0:32              1 (const int)
0:32            Constant:
0:32              2 (const int)
0:32        subgroupQuadBroadcast ( temp 3-component vector of double)
0:32          vector swizzle ( temp 3-component vector of double)
0:32            d: direct index for structure ( temp 4-component vector of double)
0:32              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:32                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:32                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:32                  Constant:
0:32                    0 (const uint)
0:32                direct index ( temp uint)
0:32                  'dti' ( in 3-component vector of uint)
0:32                  Constant:
0:32                    0 (const int)
0:32              Constant:
0:32                3 (const int)
0:32            Sequence
0:32              Constant:
0:32                0 (const int)
0:32              Constant:
0:32                1 (const int)
0:32              Constant:
0:32                2 (const int)
0:32          Constant:
0:32            0 (const uint)
0:34      move second child to first child ( temp 4-component vector of uint)
0:34        u: direct index for structure ( temp 4-component vector of uint)
0:34          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:34            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:34              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:34              Constant:
0:34                0 (const uint)
0:34            direct index ( temp uint)
0:34              'dti' ( in 3-component vector of uint)
0:34              Constant:
0:34                0 (const int)
0:34          Constant:
0:34            0 (const int)
0:34        subgroupQuadBroadcast ( temp 4-component vector of uint)
0:34          u: direct index for structure ( temp 4-component vector of uint)
0:34            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:34              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:34                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:34                Constant:
0:34                  0 (const uint)
0:34              direct index ( temp uint)
0:34                'dti' ( in 3-component vector of uint)
0:34                Constant:
0:34                  0 (const int)
0:34            Constant:
0:34              0 (const int)
0:34          Constant:
0:34            1 (const uint)
0:35      move second child to first child ( temp uint)
0:35        direct index ( temp uint)
0:35          u: direct index for structure ( temp 4-component vector of uint)
0:35            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:35              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:35                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:35                Constant:
0:35                  0 (const uint)
0:35              direct index ( temp uint)
0:35                'dti' ( in 3-component vector of uint)
0:35                Constant:
0:35                  0 (const int)
0:35            Constant:
0:35              0 (const int)
0:35          Constant:
0:35            0 (const int)
0:35        subgroupQuadBroadcast ( temp uint)
0:35          direct index ( temp uint)
0:35            u: direct index for structure ( temp 4-component vector of uint)
0:35              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:35                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:35                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:35                  Constant:
0:35                    0 (const uint)
0:35                direct index ( temp uint)
0:35                  'dti' ( in 3-component vector of uint)
0:35                  Constant:
0:35                    0 (const int)
0:35              Constant:
0:35                0 (const int)
0:35            Constant:
0:35              0 (const int)
0:35          Constant:
0:35            1 (const uint)
0:36      move second child to first child ( temp 2-component vector of uint)
0:36        vector swizzle ( temp 2-component vector of uint)
0:36          u: direct index for structure ( temp 4-component vector of uint)
0:36            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:36              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:36                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:36                Constant:
0:36                  0 (const uint)
0:36              direct index ( temp uint)
0:36                'dti' ( in 3-component vector of uint)
0:36                Constant:
0:36                  0 (const int)
0:36            Constant:
0:36              0 (const int)
0:36          Sequence
0:36            Constant:
0:36              0 (const int)
0:36            Constant:
0:36              1 (const int)
0:36        subgroupQuadBroadcast ( temp 2-component vector of uint)
0:36          vector swizzle ( temp 2-component vector of uint)
0:36            u: direct index for structure ( temp 4-component vector of uint)
0:36              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:36                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:36                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:36                  Constant:
0:36                    0 (const uint)
0:36                direct index ( temp uint)
0:36                  'dti' ( in 3-component vector of uint)
0:36                  Constant:
0:36                    0 (const int)
0:36              Constant:
0:36                0 (const int)
0:36            Sequence
0:36              Constant:
0:36                0 (const int)
0:36              Constant:
0:36                1 (const int)
0:36          Constant:
0:36            1 (const uint)
0:37      move second child to first child ( temp 3-component vector of uint)
0:37        vector swizzle ( temp 3-component vector of uint)
0:37          u: direct index for structure ( temp 4-component vector of uint)
0:37            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:37              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:37                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:37                Constant:
0:37                  0 (const uint)
0:37              direct index ( temp uint)
0:37                'dti' ( in 3-component vector of uint)
0:37                Constant:
0:37                  0 (const int)
0:37            Constant:
0:37              0 (const int)
0:37          Sequence
0:37            Constant:
0:37              0 (const int)
0:37            Constant:
0:37              1 (const int)
0:37            Constant:
0:37              2 (const int)
0:37        subgroupQuadBroadcast ( temp 3-component vector of uint)
0:37          vector swizzle ( temp 3-component vector of uint)
0:37            u: direct index for structure ( temp 4-component vector of uint)
0:37              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:37                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:37                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:37                  Constant:
0:37                    0 (const uint)
0:37                direct index ( temp uint)
0:37                  'dti' ( in 3-component vector of uint)
0:37                  Constant:
0:37                    0 (const int)
0:37              Constant:
0:37                0 (const int)
0:37            Sequence
0:37              Constant:
0:37                0 (const int)
0:37              Constant:
0:37                1 (const int)
0:37              Constant:
0:37                2 (const int)
0:37          Constant:
0:37            1 (const uint)
0:39      move second child to first child ( temp 4-component vector of int)
0:39        i: direct index for structure ( temp 4-component vector of int)
0:39          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:39            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:39              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:39              Constant:
0:39                0 (const uint)
0:39            direct index ( temp uint)
0:39              'dti' ( in 3-component vector of uint)
0:39              Constant:
0:39                0 (const int)
0:39          Constant:
0:39            1 (const int)
0:39        subgroupQuadBroadcast ( temp 4-component vector of int)
0:39          i: direct index for structure ( temp 4-component vector of int)
0:39            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:39              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:39                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:39                Constant:
0:39                  0 (const uint)
0:39              direct index ( temp uint)
0:39                'dti' ( in 3-component vector of uint)
0:39                Constant:
0:39                  0 (const int)
0:39            Constant:
0:39              1 (const int)
0:39          Constant:
0:39            1 (const uint)
0:40      move second child to first child ( temp int)
0:40        direct index ( temp int)
0:40          i: direct index for structure ( temp 4-component vector of int)
0:40            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:40              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:40                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:40                Constant:
0:40                  0 (const uint)
0:40              direct index ( temp uint)
0:40                'dti' ( in 3-component vector of uint)
0:40                Constant:
0:40                  0 (const int)
0:40            Constant:
0:40              1 (const int)
0:40          Constant:
0:40            0 (const int)
0:40        subgroupQuadBroadcast ( temp int)
0:40          direct index ( temp int)
0:40            i: direct index for structure ( temp 4-component vector of int)
0:40              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:40                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:40                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:40                  Constant:
0:40                    0 (const uint)
0:40                direct index ( temp uint)
0:40                  'dti' ( in 3-component vector of uint)
0:40                  Constant:
0:40                    0 (const int)
0:40              Constant:
0:40                1 (const int)
0:40            Constant:
0:40              0 (const int)
0:40          Constant:
0:40            1 (const uint)
0:41      move second child to first child ( temp 2-component vector of int)
0:41        vector swizzle ( temp 2-component vector of int)
0:41          i: direct index for structure ( temp 4-component vector of int)
0:41            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:41              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:41                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:41                Constant:
0:41                  0 (const uint)
0:41              direct index ( temp uint)
0:41                'dti' ( in 3-component vector of uint)
0:41                Constant:
0:41                  0 (const int)
0:41            Constant:
0:41              1 (const int)
0:41          Sequence
0:41            Constant:
0:41              0 (const int)
0:41            Constant:
0:41              1 (const int)
0:41        subgroupQuadBroadcast ( temp 2-component vector of int)
0:41          vector swizzle ( temp 2-component vector of int)
0:41            i: direct index for structure ( temp 4-component vector of int)
0:41              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:41                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:41                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:41                  Constant:
0:41                    0 (const uint)
0:41                direct index ( temp uint)
0:41                  'dti' ( in 3-component vector of uint)
0:41                  Constant:
0:41                    0 (const int)
0:41              Constant:
0:41                1 (const int)
0:41            Sequence
0:41              Constant:
0:41                0 (const int)
0:41              Constant:
0:41                1 (const int)
0:41          Constant:
0:41            1 (const uint)
0:42      move second child to first child ( temp 3-component vector of int)
0:42        vector swizzle ( temp 3-component vector of int)
0:42          i: direct index for structure ( temp 4-component vector of int)
0:42            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:42              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:42                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:42                Constant:
0:42                  0 (const uint)
0:42              direct index ( temp uint)
0:42                'dti' ( in 3-component vector of uint)
0:42                Constant:
0:42                  0 (const int)
0:42            Constant:
0:42              1 (const int)
0:42          Sequence
0:42            Constant:
0:42              0 (const int)
0:42            Constant:
0:42              1 (const int)
0:42            Constant:
0:42              2 (const int)
0:42        subgroupQuadBroadcast ( temp 3-component vector of int)
0:42          vector swizzle ( temp 3-component vector of int)
0:42            i: direct index for structure ( temp 4-component vector of int)
0:42              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:42                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:42                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:42                  Constant:
0:42                    0 (const uint)
0:42                direct index ( temp uint)
0:42                  'dti' ( in 3-component vector of uint)
0:42                  Constant:
0:42                    0 (const int)
0:42              Constant:
0:42                1 (const int)
0:42            Sequence
0:42              Constant:
0:42                0 (const int)
0:42              Constant:
0:42                1 (const int)
0:42              Constant:
0:42                2 (const int)
0:42          Constant:
0:42            1 (const uint)
0:44      move second child to first child ( temp 4-component vector of float)
0:44        f: direct index for structure ( temp 4-component vector of float)
0:44          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:44            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:44              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:44              Constant:
0:44                0 (const uint)
0:44            direct index ( temp uint)
0:44              'dti' ( in 3-component vector of uint)
0:44              Constant:
0:44                0 (const int)
0:44          Constant:
0:44            2 (const int)
0:44        subgroupQuadBroadcast ( temp 4-component vector of float)
0:44          f: direct index for structure ( temp 4-component vector of float)
0:44            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:44              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:44                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:44                Constant:
0:44                  0 (const uint)
0:44              direct index ( temp uint)
0:44                'dti' ( in 3-component vector of uint)
0:44                Constant:
0:44                  0 (const int)
0:44            Constant:
0:44              2 (const int)
0:44          Constant:
0:44            1 (const uint)
0:45      move second child to first child ( temp float)
0:45        direct index ( temp float)
0:45          f: direct index for structure ( temp 4-component vector of float)
0:45            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:45              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:45                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:45                Constant:
0:45                  0 (const uint)
0:45              direct index ( temp uint)
0:45                'dti' ( in 3-component vector of uint)
0:45                Constant:
0:45                  0 (const int)
0:45            Constant:
0:45              2 (const int)
0:45          Constant:
0:45            0 (const int)
0:45        subgroupQuadBroadcast ( temp float)
0:45          direct index ( temp float)
0:45            f: direct index for structure ( temp 4-component vector of float)
0:45              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:45                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:45                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:45                  Constant:
0:45                    0 (const uint)
0:45                direct index ( temp uint)
0:45                  'dti' ( in 3-component vector of uint)
0:45                  Constant:
0:45                    0 (const int)
0:45              Constant:
0:45                2 (const int)
0:45            Constant:
0:45              0 (const int)
0:45          Constant:
0:45            1 (const uint)
0:46      move second child to first child ( temp 2-component vector of float)
0:46        vector swizzle ( temp 2-component vector of float)
0:46          f: direct index for structure ( temp 4-component vector of float)
0:46            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:46              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:46                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:46                Constant:
0:46                  0 (const uint)
0:46              direct index ( temp uint)
0:46                'dti' ( in 3-component vector of uint)
0:46                Constant:
0:46                  0 (const int)
0:46            Constant:
0:46              2 (const int)
0:46          Sequence
0:46            Constant:
0:46              0 (const int)
0:46            Constant:
0:46              1 (const int)
0:46        subgroupQuadBroadcast ( temp 2-component vector of float)
0:46          vector swizzle ( temp 2-component vector of float)
0:46            f: direct index for structure ( temp 4-component vector of float)
0:46              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:46                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:46                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:46                  Constant:
0:46                    0 (const uint)
0:46                direct index ( temp uint)
0:46                  'dti' ( in 3-component vector of uint)
0:46                  Constant:
0:46                    0 (const int)
0:46              Constant:
0:46                2 (const int)
0:46            Sequence
0:46              Constant:
0:46                0 (const int)
0:46              Constant:
0:46                1 (const int)
0:46          Constant:
0:46            1 (const uint)
0:47      move second child to first child ( temp 3-component vector of float)
0:47        vector swizzle ( temp 3-component vector of float)
0:47          f: direct index for structure ( temp 4-component vector of float)
0:47            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:47              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:47                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:47                Constant:
0:47                  0 (const uint)
0:47              direct index ( temp uint)
0:47                'dti' ( in 3-component vector of uint)
0:47                Constant:
0:47                  0 (const int)
0:47            Constant:
0:47              2 (const int)
0:47          Sequence
0:47            Constant:
0:47              0 (const int)
0:47            Constant:
0:47              1 (const int)
0:47            Constant:
0:47              2 (const int)
0:47        subgroupQuadBroadcast ( temp 3-component vector of float)
0:47          vector swizzle ( temp 3-component vector of float)
0:47            f: direct index for structure ( temp 4-component vector of float)
0:47              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:47                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:47                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:47                  Constant:
0:47                    0 (const uint)
0:47                direct index ( temp uint)
0:47                  'dti' ( in 3-component vector of uint)
0:47                  Constant:
0:47                    0 (const int)
0:47              Constant:
0:47                2 (const int)
0:47            Sequence
0:47              Constant:
0:47                0 (const int)
0:47              Constant:
0:47                1 (const int)
0:47              Constant:
0:47                2 (const int)
0:47          Constant:
0:47            1 (const uint)
0:49      move second child to first child ( temp 4-component vector of double)
0:49        d: direct index for structure ( temp 4-component vector of double)
0:49          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:49            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:49              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:49              Constant:
0:49                0 (const uint)
0:49            direct index ( temp uint)
0:49              'dti' ( in 3-component vector of uint)
0:49              Constant:
0:49                0 (const int)
0:49          Constant:
0:49            3 (const int)
0:49        subgroupQuadBroadcast ( temp 4-component vector of double)
0:49          d: direct index for structure ( temp 4-component vector of double)
0:49            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:49              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:49                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:49                Constant:
0:49                  0 (const uint)
0:49              direct index ( temp uint)
0:49                'dti' ( in 3-component vector of uint)
0:49                Constant:
0:49                  0 (const int)
0:49            Constant:
0:49              3 (const int)
0:49          Constant:
0:49            1 (const uint)
0:50      move second child to first child ( temp double)
0:50        direct index ( temp double)
0:50          d: direct index for structure ( temp 4-component vector of double)
0:50            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:50              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:50                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:50                Constant:
0:50                  0 (const uint)
0:50              direct index ( temp uint)
0:50                'dti' ( in 3-component vector of uint)
0:50                Constant:
0:50                  0 (const int)
0:50            Constant:
0:50              3 (const int)
0:50          Constant:
0:50            0 (const int)
0:50        subgroupQuadBroadcast ( temp double)
0:50          direct index ( temp double)
0:50            d: direct index for structure ( temp 4-component vector of double)
0:50              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:50                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:50                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:50                  Constant:
0:50                    0 (const uint)
0:50                direct index ( temp uint)
0:50                  'dti' ( in 3-component vector of uint)
0:50                  Constant:
0:50                    0 (const int)
0:50              Constant:
0:50                3 (const int)
0:50            Constant:
0:50              0 (const int)
0:50          Constant:
0:50            1 (const uint)
0:51      move second child to first child ( temp 2-component vector of double)
0:51        vector swizzle ( temp 2-component vector of double)
0:51          d: direct index for structure ( temp 4-component vector of double)
0:51            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:51              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:51                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:51                Constant:
0:51                  0 (const uint)
0:51              direct index ( temp uint)
0:51                'dti' ( in 3-component vector of uint)
0:51                Constant:
0:51                  0 (const int)
0:51            Constant:
0:51              3 (const int)
0:51          Sequence
0:51            Constant:
0:51              0 (const int)
0:51            Constant:
0:51              1 (const int)
0:51        subgroupQuadBroadcast ( temp 2-component vector of double)
0:51          vector swizzle ( temp 2-component vector of double)
0:51            d: direct index for structure ( temp 4-component vector of double)
0:51              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:51                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:51                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:51                  Constant:
0:51                    0 (const uint)
0:51                direct index ( temp uint)
0:51                  'dti' ( in 3-component vector of uint)
0:51                  Constant:
0:51                    0 (const int)
0:51              Constant:
0:51                3 (const int)
0:51            Sequence
0:51              Constant:
0:51                0 (const int)
0:51              Constant:
0:51                1 (const int)
0:51          Constant:
0:51            1 (const uint)
0:52      move second child to first child ( temp 3-component vector of double)
0:52        vector swizzle ( temp 3-component vector of double)
0:52          d: direct index for structure ( temp 4-component vector of double)
0:52            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:52              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:52                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:52                Constant:
0:52                  0 (const uint)
0:52              direct index ( temp uint)
0:52                'dti' ( in 3-component vector of uint)
0:52                Constant:
0:52                  0 (const int)
0:52            Constant:
0:52              3 (const int)
0:52          Sequence
0:52            Constant:
0:52              0 (const int)
0:52            Constant:
0:52              1 (const int)
0:52            Constant:
0:52              2 (const int)
0:52        subgroupQuadBroadcast ( temp 3-component vector of double)
0:52          vector swizzle ( temp 3-component vector of double)
0:52            d: direct index for structure ( temp 4-component vector of double)
0:52              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:52                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:52                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:52                  Constant:
0:52                    0 (const uint)
0:52                direct index ( temp uint)
0:52                  'dti' ( in 3-component vector of uint)
0:52                  Constant:
0:52                    0 (const int)
0:52              Constant:
0:52                3 (const int)
0:52            Sequence
0:52              Constant:
0:52                0 (const int)
0:52              Constant:
0:52                1 (const int)
0:52              Constant:
0:52                2 (const int)
0:52          Constant:
0:52            1 (const uint)
0:54      move second child to first child ( temp 4-component vector of uint)
0:54        u: direct index for structure ( temp 4-component vector of uint)
0:54          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:54            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:54              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:54              Constant:
0:54                0 (const uint)
0:54            direct index ( temp uint)
0:54              'dti' ( in 3-component vector of uint)
0:54              Constant:
0:54                0 (const int)
0:54          Constant:
0:54            0 (const int)
0:54        subgroupQuadBroadcast ( temp 4-component vector of uint)
0:54          u: direct index for structure ( temp 4-component vector of uint)
0:54            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:54              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:54                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:54                Constant:
0:54                  0 (const uint)
0:54              direct index ( temp uint)
0:54                'dti' ( in 3-component vector of uint)
0:54                Constant:
0:54                  0 (const int)
0:54            Constant:
0:54              0 (const int)
0:54          Constant:
0:54            2 (const uint)
0:55      move second child to first child ( temp uint)
0:55        direct index ( temp uint)
0:55          u: direct index for structure ( temp 4-component vector of uint)
0:55            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:55              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:55                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:55                Constant:
0:55                  0 (const uint)
0:55              direct index ( temp uint)
0:55                'dti' ( in 3-component vector of uint)
0:55                Constant:
0:55                  0 (const int)
0:55            Constant:
0:55              0 (const int)
0:55          Constant:
0:55            0 (const int)
0:55        subgroupQuadBroadcast ( temp uint)
0:55          direct index ( temp uint)
0:55            u: direct index for structure ( temp 4-component vector of uint)
0:55              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:55                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:55                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:55                  Constant:
0:55                    0 (const uint)
0:55                direct index ( temp uint)
0:55                  'dti' ( in 3-component vector of uint)
0:55                  Constant:
0:55                    0 (const int)
0:55              Constant:
0:55                0 (const int)
0:55            Constant:
0:55              0 (const int)
0:55          Constant:
0:55            2 (const uint)
0:56      move second child to first child ( temp 2-component vector of uint)
0:56        vector swizzle ( temp 2-component vector of uint)
0:56          u: direct index for structure ( temp 4-component vector of uint)
0:56            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:56              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:56                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:56                Constant:
0:56                  0 (const uint)
0:56              direct index ( temp uint)
0:56                'dti' ( in 3-component vector of uint)
0:56                Constant:
0:56                  0 (const int)
0:56            Constant:
0:56              0 (const int)
0:56          Sequence
0:56            Constant:
0:56              0 (const int)
0:56            Constant:
0:56              1 (const int)
0:56        subgroupQuadBroadcast ( temp 2-component vector of uint)
0:56          vector swizzle ( temp 2-component vector of uint)
0:56            u: direct index for structure ( temp 4-component vector of uint)
0:56              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:56                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:56                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:56                  Constant:
0:56                    0 (const uint)
0:56                direct index ( temp uint)
0:56                  'dti' ( in 3-component vector of uint)
0:56                  Constant:
0:56                    0 (const int)
0:56              Constant:
0:56                0 (const int)
0:56            Sequence
0:56              Constant:
0:56                0 (const int)
0:56              Constant:
0:56                1 (const int)
0:56          Constant:
0:56            2 (const uint)
0:57      move second child to first child ( temp 3-component vector of uint)
0:57        vector swizzle ( temp 3-component vector of uint)
0:57          u: direct index for structure ( temp 4-component vector of uint)
0:57            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:57              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:57                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:57                Constant:
0:57                  0 (const uint)
0:57              direct index ( temp uint)
0:57                'dti' ( in 3-component vector of uint)
0:57                Constant:
0:57                  0 (const int)
0:57            Constant:
0:57              0 (const int)
0:57          Sequence
0:57            Constant:
0:57              0 (const int)
0:57            Constant:
0:57              1 (const int)
0:57            Constant:
0:57              2 (const int)
0:57        subgroupQuadBroadcast ( temp 3-component vector of uint)
0:57          vector swizzle ( temp 3-component vector of uint)
0:57            u: direct index for structure ( temp 4-component vector of uint)
0:57              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:57                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:57                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:57                  Constant:
0:57                    0 (const uint)
0:57                direct index ( temp uint)
0:57                  'dti' ( in 3-component vector of uint)
0:57                  Constant:
0:57                    0 (const int)
0:57              Constant:
0:57                0 (const int)
0:57            Sequence
0:57              Constant:
0:57                0 (const int)
0:57              Constant:
0:57                1 (const int)
0:57              Constant:
0:57                2 (const int)
0:57          Constant:
0:57            2 (const uint)
0:59      move second child to first child ( temp 4-component vector of int)
0:59        i: direct index for structure ( temp 4-component vector of int)
0:59          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:59            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:59              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:59              Constant:
0:59                0 (const uint)
0:59            direct index ( temp uint)
0:59              'dti' ( in 3-component vector of uint)
0:59              Constant:
0:59                0 (const int)
0:59          Constant:
0:59            1 (const int)
0:59        subgroupQuadBroadcast ( temp 4-component vector of int)
0:59          i: direct index for structure ( temp 4-component vector of int)
0:59            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:59              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:59                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:59                Constant:
0:59                  0 (const uint)
0:59              direct index ( temp uint)
0:59                'dti' ( in 3-component vector of uint)
0:59                Constant:
0:59                  0 (const int)
0:59            Constant:
0:59              1 (const int)
0:59          Constant:
0:59            2 (const uint)
0:60      move second child to first child ( temp int)
0:60        direct index ( temp int)
0:60          i: direct index for structure ( temp 4-component vector of int)
0:60            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:60              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:60                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:60                Constant:
0:60                  0 (const uint)
0:60              direct index ( temp uint)
0:60                'dti' ( in 3-component vector of uint)
0:60                Constant:
0:60                  0 (const int)
0:60            Constant:
0:60              1 (const int)
0:60          Constant:
0:60            0 (const int)
0:60        subgroupQuadBroadcast ( temp int)
0:60          direct index ( temp int)
0:60            i: direct index for structure ( temp 4-component vector of int)
0:60              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:60                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:60                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:60                  Constant:
0:60                    0 (const uint)
0:60                direct index ( temp uint)
0:60                  'dti' ( in 3-component vector of uint)
0:60                  Constant:
0:60                    0 (const int)
0:60              Constant:
0:60                1 (const int)
0:60            Constant:
0:60              0 (const int)
0:60          Constant:
0:60            2 (const uint)
0:61      move second child to first child ( temp 2-component vector of int)
0:61        vector swizzle ( temp 2-component vector of int)
0:61          i: direct index for structure ( temp 4-component vector of int)
0:61            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:61              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:61                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:61                Constant:
0:61                  0 (const uint)
0:61              direct index ( temp uint)
0:61                'dti' ( in 3-component vector of uint)
0:61                Constant:
0:61                  0 (const int)
0:61            Constant:
0:61              1 (const int)
0:61          Sequence
0:61            Constant:
0:61              0 (const int)
0:61            Constant:
0:61              1 (const int)
0:61        subgroupQuadBroadcast ( temp 2-component vector of int)
0:61          vector swizzle ( temp 2-component vector of int)
0:61            i: direct index for structure ( temp 4-component vector of int)
0:61              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:61                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:61                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:61                  Constant:
0:61                    0 (const uint)
0:61                direct index ( temp uint)
0:61                  'dti' ( in 3-component vector of uint)
0:61                  Constant:
0:61                    0 (const int)
0:61              Constant:
0:61                1 (const int)
0:61            Sequence
0:61              Constant:
0:61                0 (const int)
0:61              Constant:
0:61                1 (const int)
0:61          Constant:
0:61            2 (const uint)
0:62      move second child to first child ( temp 3-component vector of int)
0:62        vector swizzle ( temp 3-component vector of int)
0:62          i: direct index for structure ( temp 4-component vector of int)
0:62            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:62              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:62                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:62                Constant:
0:62                  0 (const uint)
0:62              direct index ( temp uint)
0:62                'dti' ( in 3-component vector of uint)
0:62                Constant:
0:62                  0 (const int)
0:62            Constant:
0:62              1 (const int)
0:62          Sequence
0:62            Constant:
0:62              0 (const int)
0:62            Constant:
0:62              1 (const int)
0:62            Constant:
0:62              2 (const int)
0:62        subgroupQuadBroadcast ( temp 3-component vector of int)
0:62          vector swizzle ( temp 3-component vector of int)
0:62            i: direct index for structure ( temp 4-component vector of int)
0:62              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:62                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:62                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:62                  Constant:
0:62                    0 (const uint)
0:62                direct index ( temp uint)
0:62                  'dti' ( in 3-component vector of uint)
0:62                  Constant:
0:62                    0 (const int)
0:62              Constant:
0:62                1 (const int)
0:62            Sequence
0:62              Constant:
0:62                0 (const int)
0:62              Constant:
0:62                1 (const int)
0:62              Constant:
0:62                2 (const int)
0:62          Constant:
0:62            2 (const uint)
0:64      move second child to first child ( temp 4-component vector of float)
0:64        f: direct index for structure ( temp 4-component vector of float)
0:64          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:64            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:64              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:64              Constant:
0:64                0 (const uint)
0:64            direct index ( temp uint)
0:64              'dti' ( in 3-component vector of uint)
0:64              Constant:
0:64                0 (const int)
0:64          Constant:
0:64            2 (const int)
0:64        subgroupQuadBroadcast ( temp 4-component vector of float)
0:64          f: direct index for structure ( temp 4-component vector of float)
0:64            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:64              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:64                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:64                Constant:
0:64                  0 (const uint)
0:64              direct index ( temp uint)
0:64                'dti' ( in 3-component vector of uint)
0:64                Constant:
0:64                  0 (const int)
0:64            Constant:
0:64              2 (const int)
0:64          Constant:
0:64            2 (const uint)
0:65      move second child to first child ( temp float)
0:65        direct index ( temp float)
0:65          f: direct index for structure ( temp 4-component vector of float)
0:65            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:65              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:65                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:65                Constant:
0:65                  0 (const uint)
0:65              direct index ( temp uint)
0:65                'dti' ( in 3-component vector of uint)
0:65                Constant:
0:65                  0 (const int)
0:65            Constant:
0:65              2 (const int)
0:65          Constant:
0:65            0 (const int)
0:65        subgroupQuadBroadcast ( temp float)
0:65          direct index ( temp float)
0:65            f: direct index for structure ( temp 4-component vector of float)
0:65              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:65                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:65                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:65                  Constant:
0:65                    0 (const uint)
0:65                direct index ( temp uint)
0:65                  'dti' ( in 3-component vector of uint)
0:65                  Constant:
0:65                    0 (const int)
0:65              Constant:
0:65                2 (const int)
0:65            Constant:
0:65              0 (const int)
0:65          Constant:
0:65            2 (const uint)
0:66      move second child to first child ( temp 2-component vector of float)
0:66        vector swizzle ( temp 2-component vector of float)
0:66          f: direct index for structure ( temp 4-component vector of float)
0:66            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:66              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:66                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:66                Constant:
0:66                  0 (const uint)
0:66              direct index ( temp uint)
0:66                'dti' ( in 3-component vector of uint)
0:66                Constant:
0:66                  0 (const int)
0:66            Constant:
0:66              2 (const int)
0:66          Sequence
0:66            Constant:
0:66              0 (const int)
0:66            Constant:
0:66              1 (const int)
0:66        subgroupQuadBroadcast ( temp 2-component vector of float)
0:66          vector swizzle ( temp 2-component vector of float)
0:66            f: direct index for structure ( temp 4-component vector of float)
0:66              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:66                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:66                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:66                  Constant:
0:66                    0 (const uint)
0:66                direct index ( temp uint)
0:66                  'dti' ( in 3-component vector of uint)
0:66                  Constant:
0:66                    0 (const int)
0:66              Constant:
0:66                2 (const int)
0:66            Sequence
0:66              Constant:
0:66                0 (const int)
0:66              Constant:
0:66                1 (const int)
0:66          Constant:
0:66            2 (const uint)
0:67      move second child to first child ( temp 3-component vector of float)
0:67        vector swizzle ( temp 3-component vector of float)
0:67          f: direct index for structure ( temp 4-component vector of float)
0:67            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:67              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:67                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:67                Constant:
0:67                  0 (const uint)
0:67              direct index ( temp uint)
0:67                'dti' ( in 3-component vector of uint)
0:67                Constant:
0:67                  0 (const int)
0:67            Constant:
0:67              2 (const int)
0:67          Sequence
0:67            Constant:
0:67              0 (const int)
0:67            Constant:
0:67              1 (const int)
0:67            Constant:
0:67              2 (const int)
0:67        subgroupQuadBroadcast ( temp 3-component vector of float)
0:67          vector swizzle ( temp 3-component vector of float)
0:67            f: direct index for structure ( temp 4-component vector of float)
0:67              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:67                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:67                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:67                  Constant:
0:67                    0 (const uint)
0:67                direct index ( temp uint)
0:67                  'dti' ( in 3-component vector of uint)
0:67                  Constant:
0:67                    0 (const int)
0:67              Constant:
0:67                2 (const int)
0:67            Sequence
0:67              Constant:
0:67                0 (const int)
0:67              Constant:
0:67                1 (const int)
0:67              Constant:
0:67                2 (const int)
0:67          Constant:
0:67            2 (const uint)
0:69      move second child to first child ( temp 4-component vector of double)
0:69        d: direct index for structure ( temp 4-component vector of double)
0:69          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:69            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:69              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:69              Constant:
0:69                0 (const uint)
0:69            direct index ( temp uint)
0:69              'dti' ( in 3-component vector of uint)
0:69              Constant:
0:69                0 (const int)
0:69          Constant:
0:69            3 (const int)
0:69        subgroupQuadBroadcast ( temp 4-component vector of double)
0:69          d: direct index for structure ( temp 4-component vector of double)
0:69            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:69              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:69                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:69                Constant:
0:69                  0 (const uint)
0:69              direct index ( temp uint)
0:69                'dti' ( in 3-component vector of uint)
0:69                Constant:
0:69                  0 (const int)
0:69            Constant:
0:69              3 (const int)
0:69          Constant:
0:69            2 (const uint)
0:70      move second child to first child ( temp double)
0:70        direct index ( temp double)
0:70          d: direct index for structure ( temp 4-component vector of double)
0:70            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:70              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:70                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:70                Constant:
0:70                  0 (const uint)
0:70              direct index ( temp uint)
0:70                'dti' ( in 3-component vector of uint)
0:70                Constant:
0:70                  0 (const int)
0:70            Constant:
0:70              3 (const int)
0:70          Constant:
0:70            0 (const int)
0:70        subgroupQuadBroadcast ( temp double)
0:70          direct index ( temp double)
0:70            d: direct index for structure ( temp 4-component vector of double)
0:70              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:70                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:70                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:70                  Constant:
0:70                    0 (const uint)
0:70                direct index ( temp uint)
0:70                  'dti' ( in 3-component vector of uint)
0:70                  Constant:
0:70                    0 (const int)
0:70              Constant:
0:70                3 (const int)
0:70            Constant:
0:70              0 (const int)
0:70          Constant:
0:70            2 (const uint)
0:71      move second child to first child ( temp 2-component vector of double)
0:71        vector swizzle ( temp 2-component vector of double)
0:71          d: direct index for structure ( temp 4-component vector of double)
0:71            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:71              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:71                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:71                Constant:
0:71                  0 (const uint)
0:71              direct index ( temp uint)
0:71                'dti' ( in 3-component vector of uint)
0:71                Constant:
0:71                  0 (const int)
0:71            Constant:
0:71              3 (const int)
0:71          Sequence
0:71            Constant:
0:71              0 (const int)
0:71            Constant:
0:71              1 (const int)
0:71        subgroupQuadBroadcast ( temp 2-component vector of double)
0:71          vector swizzle ( temp 2-component vector of double)
0:71            d: direct index for structure ( temp 4-component vector of double)
0:71              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:71                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:71                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:71                  Constant:
0:71                    0 (const uint)
0:71                direct index ( temp uint)
0:71                  'dti' ( in 3-component vector of uint)
0:71                  Constant:
0:71                    0 (const int)
0:71              Constant:
0:71                3 (const int)
0:71            Sequence
0:71              Constant:
0:71                0 (const int)
0:71              Constant:
0:71                1 (const int)
0:71          Constant:
0:71            2 (const uint)
0:72      move second child to first child ( temp 3-component vector of double)
0:72        vector swizzle ( temp 3-component vector of double)
0:72          d: direct index for structure ( temp 4-component vector of double)
0:72            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:72              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:72                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:72                Constant:
0:72                  0 (const uint)
0:72              direct index ( temp uint)
0:72                'dti' ( in 3-component vector of uint)
0:72                Constant:
0:72                  0 (const int)
0:72            Constant:
0:72              3 (const int)
0:72          Sequence
0:72            Constant:
0:72              0 (const int)
0:72            Constant:
0:72              1 (const int)
0:72            Constant:
0:72              2 (const int)
0:72        subgroupQuadBroadcast ( temp 3-component vector of double)
0:72          vector swizzle ( temp 3-component vector of double)
0:72            d: direct index for structure ( temp 4-component vector of double)
0:72              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:72                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:72                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:72                  Constant:
0:72                    0 (const uint)
0:72                direct index ( temp uint)
0:72                  'dti' ( in 3-component vector of uint)
0:72                  Constant:
0:72                    0 (const int)
0:72              Constant:
0:72                3 (const int)
0:72            Sequence
0:72              Constant:
0:72                0 (const int)
0:72              Constant:
0:72                1 (const int)
0:72              Constant:
0:72                2 (const int)
0:72          Constant:
0:72            2 (const uint)
0:74      move second child to first child ( temp 4-component vector of uint)
0:74        u: direct index for structure ( temp 4-component vector of uint)
0:74          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:74            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:74              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:74              Constant:
0:74                0 (const uint)
0:74            direct index ( temp uint)
0:74              'dti' ( in 3-component vector of uint)
0:74              Constant:
0:74                0 (const int)
0:74          Constant:
0:74            0 (const int)
0:74        subgroupQuadBroadcast ( temp 4-component vector of uint)
0:74          u: direct index for structure ( temp 4-component vector of uint)
0:74            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:74              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:74                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:74                Constant:
0:74                  0 (const uint)
0:74              direct index ( temp uint)
0:74                'dti' ( in 3-component vector of uint)
0:74                Constant:
0:74                  0 (const int)
0:74            Constant:
0:74              0 (const int)
0:74          Constant:
0:74            3 (const uint)
0:75      move second child to first child ( temp uint)
0:75        direct index ( temp uint)
0:75          u: direct index for structure ( temp 4-component vector of uint)
0:75            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:75              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:75                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:75                Constant:
0:75                  0 (const uint)
0:75              direct index ( temp uint)
0:75                'dti' ( in 3-component vector of uint)
0:75                Constant:
0:75                  0 (const int)
0:75            Constant:
0:75              0 (const int)
0:75          Constant:
0:75            0 (const int)
0:75        subgroupQuadBroadcast ( temp uint)
0:75          direct index ( temp uint)
0:75            u: direct index for structure ( temp 4-component vector of uint)
0:75              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:75                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:75                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:75                  Constant:
0:75                    0 (const uint)
0:75                direct index ( temp uint)
0:75                  'dti' ( in 3-component vector of uint)
0:75                  Constant:
0:75                    0 (const int)
0:75              Constant:
0:75                0 (const int)
0:75            Constant:
0:75              0 (const int)
0:75          Constant:
0:75            3 (const uint)
0:76      move second child to first child ( temp 2-component vector of uint)
0:76        vector swizzle ( temp 2-component vector of uint)
0:76          u: direct index for structure ( temp 4-component vector of uint)
0:76            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:76              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:76                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:76                Constant:
0:76                  0 (const uint)
0:76              direct index ( temp uint)
0:76                'dti' ( in 3-component vector of uint)
0:76                Constant:
0:76                  0 (const int)
0:76            Constant:
0:76              0 (const int)
0:76          Sequence
0:76            Constant:
0:76              0 (const int)
0:76            Constant:
0:76              1 (const int)
0:76        subgroupQuadBroadcast ( temp 2-component vector of uint)
0:76          vector swizzle ( temp 2-component vector of uint)
0:76            u: direct index for structure ( temp 4-component vector of uint)
0:76              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:76                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:76                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:76                  Constant:
0:76                    0 (const uint)
0:76                direct index ( temp uint)
0:76                  'dti' ( in 3-component vector of uint)
0:76                  Constant:
0:76                    0 (const int)
0:76              Constant:
0:76                0 (const int)
0:76            Sequence
0:76              Constant:
0:76                0 (const int)
0:76              Constant:
0:76                1 (const int)
0:76          Constant:
0:76            3 (const uint)
0:77      move second child to first child ( temp 3-component vector of uint)
0:77        vector swizzle ( temp 3-component vector of uint)
0:77          u: direct index for structure ( temp 4-component vector of uint)
0:77            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:77              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:77                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:77                Constant:
0:77                  0 (const uint)
0:77              direct index ( temp uint)
0:77                'dti' ( in 3-component vector of uint)
0:77                Constant:
0:77                  0 (const int)
0:77            Constant:
0:77              0 (const int)
0:77          Sequence
0:77            Constant:
0:77              0 (const int)
0:77            Constant:
0:77              1 (const int)
0:77            Constant:
0:77              2 (const int)
0:77        subgroupQuadBroadcast ( temp 3-component vector of uint)
0:77          vector swizzle ( temp 3-component vector of uint)
0:77            u: direct index for structure ( temp 4-component vector of uint)
0:77              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:77                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:77                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:77                  Constant:
0:77                    0 (const uint)
0:77                direct index ( temp uint)
0:77                  'dti' ( in 3-component vector of uint)
0:77                  Constant:
0:77                    0 (const int)
0:77              Constant:
0:77                0 (const int)
0:77            Sequence
0:77              Constant:
0:77                0 (const int)
0:77              Constant:
0:77                1 (const int)
0:77              Constant:
0:77                2 (const int)
0:77          Constant:
0:77            3 (const uint)
0:79      move second child to first child ( temp 4-component vector of int)
0:79        i: direct index for structure ( temp 4-component vector of int)
0:79          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:79            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:79              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:79              Constant:
0:79                0 (const uint)
0:79            direct index ( temp uint)
0:79              'dti' ( in 3-component vector of uint)
0:79              Constant:
0:79                0 (const int)
0:79          Constant:
0:79            1 (const int)
0:79        subgroupQuadBroadcast ( temp 4-component vector of int)
0:79          i: direct index for structure ( temp 4-component vector of int)
0:79            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:79              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:79                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:79                Constant:
0:79                  0 (const uint)
0:79              direct index ( temp uint)
0:79                'dti' ( in 3-component vector of uint)
0:79                Constant:
0:79                  0 (const int)
0:79            Constant:
0:79              1 (const int)
0:79          Constant:
0:79            3 (const uint)
0:80      move second child to first child ( temp int)
0:80        direct index ( temp int)
0:80          i: direct index for structure ( temp 4-component vector of int)
0:80            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:80              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:80                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:80                Constant:
0:80                  0 (const uint)
0:80              direct index ( temp uint)
0:80                'dti' ( in 3-component vector of uint)
0:80                Constant:
0:80                  0 (const int)
0:80            Constant:
0:80              1 (const int)
0:80          Constant:
0:80            0 (const int)
0:80        subgroupQuadBroadcast ( temp int)
0:80          direct index ( temp int)
0:80            i: direct index for structure ( temp 4-component vector of int)
0:80              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:80                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:80                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:80                  Constant:
0:80                    0 (const uint)
0:80                direct index ( temp uint)
0:80                  'dti' ( in 3-component vector of uint)
0:80                  Constant:
0:80                    0 (const int)
0:80              Constant:
0:80                1 (const int)
0:80            Constant:
0:80              0 (const int)
0:80          Constant:
0:80            3 (const uint)
0:81      move second child to first child ( temp 2-component vector of int)
0:81        vector swizzle ( temp 2-component vector of int)
0:81          i: direct index for structure ( temp 4-component vector of int)
0:81            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:81              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:81                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:81                Constant:
0:81                  0 (const uint)
0:81              direct index ( temp uint)
0:81                'dti' ( in 3-component vector of uint)
0:81                Constant:
0:81                  0 (const int)
0:81            Constant:
0:81              1 (const int)
0:81          Sequence
0:81            Constant:
0:81              0 (const int)
0:81            Constant:
0:81              1 (const int)
0:81        subgroupQuadBroadcast ( temp 2-component vector of int)
0:81          vector swizzle ( temp 2-component vector of int)
0:81            i: direct index for structure ( temp 4-component vector of int)
0:81              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:81                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:81                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:81                  Constant:
0:81                    0 (const uint)
0:81                direct index ( temp uint)
0:81                  'dti' ( in 3-component vector of uint)
0:81                  Constant:
0:81                    0 (const int)
0:81              Constant:
0:81                1 (const int)
0:81            Sequence
0:81              Constant:
0:81                0 (const int)
0:81              Constant:
0:81                1 (const int)
0:81          Constant:
0:81            3 (const uint)
0:82      move second child to first child ( temp 3-component vector of int)
0:82        vector swizzle ( temp 3-component vector of int)
0:82          i: direct index for structure ( temp 4-component vector of int)
0:82            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:82              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:82                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:82                Constant:
0:82                  0 (const uint)
0:82              direct index ( temp uint)
0:82                'dti' ( in 3-component vector of uint)
0:82                Constant:
0:82                  0 (const int)
0:82            Constant:
0:82              1 (const int)
0:82          Sequence
0:82            Constant:
0:82              0 (const int)
0:82            Constant:
0:82              1 (const int)
0:82            Constant:
0:82              2 (const int)
0:82        subgroupQuadBroadcast ( temp 3-component vector of int)
0:82          vector swizzle ( temp 3-component vector of int)
0:82            i: direct index for structure ( temp 4-component vector of int)
0:82              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:82                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:82                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:82                  Constant:
0:82                    0 (const uint)
0:82                direct index ( temp uint)
0:82                  'dti' ( in 3-component vector of uint)
0:82                  Constant:
0:82                    0 (const int)
0:82              Constant:
0:82                1 (const int)
0:82            Sequence
0:82              Constant:
0:82                0 (const int)
0:82              Constant:
0:82                1 (const int)
0:82              Constant:
0:82                2 (const int)
0:82          Constant:
0:82            3 (const uint)
0:84      move second child to first child ( temp 4-component vector of float)
0:84        f: direct index for structure ( temp 4-component vector of float)
0:84          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:84            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:84              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:84              Constant:
0:84                0 (const uint)
0:84            direct index ( temp uint)
0:84              'dti' ( in 3-component vector of uint)
0:84              Constant:
0:84                0 (const int)
0:84          Constant:
0:84            2 (const int)
0:84        subgroupQuadBroadcast ( temp 4-component vector of float)
0:84          f: direct index for structure ( temp 4-component vector of float)
0:84            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:84              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:84                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:84                Constant:
0:84                  0 (const uint)
0:84              direct index ( temp uint)
0:84                'dti' ( in 3-component vector of uint)
0:84                Constant:
0:84                  0 (const int)
0:84            Constant:
0:84              2 (const int)
0:84          Constant:
0:84            3 (const uint)
0:85      move second child to first child ( temp float)
0:85        direct index ( temp float)
0:85          f: direct index for structure ( temp 4-component vector of float)
0:85            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:85              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:85                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:85                Constant:
0:85                  0 (const uint)
0:85              direct index ( temp uint)
0:85                'dti' ( in 3-component vector of uint)
0:85                Constant:
0:85                  0 (const int)
0:85            Constant:
0:85              2 (const int)
0:85          Constant:
0:85            0 (const int)
0:85        subgroupQuadBroadcast ( temp float)
0:85          direct index ( temp float)
0:85            f: direct index for structure ( temp 4-component vector of float)
0:85              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:85                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:85                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:85                  Constant:
0:85                    0 (const uint)
0:85                direct index ( temp uint)
0:85                  'dti' ( in 3-component vector of uint)
0:85                  Constant:
0:85                    0 (const int)
0:85              Constant:
0:85                2 (const int)
0:85            Constant:
0:85              0 (const int)
0:85          Constant:
0:85            3 (const uint)
0:86      move second child to first child ( temp 2-component vector of float)
0:86        vector swizzle ( temp 2-component vector of float)
0:86          f: direct index for structure ( temp 4-component vector of float)
0:86            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:86              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:86                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:86                Constant:
0:86                  0 (const uint)
0:86              direct index ( temp uint)
0:86                'dti' ( in 3-component vector of uint)
0:86                Constant:
0:86                  0 (const int)
0:86            Constant:
0:86              2 (const int)
0:86          Sequence
0:86            Constant:
0:86              0 (const int)
0:86            Constant:
0:86              1 (const int)
0:86        subgroupQuadBroadcast ( temp 2-component vector of float)
0:86          vector swizzle ( temp 2-component vector of float)
0:86            f: direct index for structure ( temp 4-component vector of float)
0:86              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:86                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:86                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:86                  Constant:
0:86                    0 (const uint)
0:86                direct index ( temp uint)
0:86                  'dti' ( in 3-component vector of uint)
0:86                  Constant:
0:86                    0 (const int)
0:86              Constant:
0:86                2 (const int)
0:86            Sequence
0:86              Constant:
0:86                0 (const int)
0:86              Constant:
0:86                1 (const int)
0:86          Constant:
0:86            3 (const uint)
0:87      move second child to first child ( temp 3-component vector of float)
0:87        vector swizzle ( temp 3-component vector of float)
0:87          f: direct index for structure ( temp 4-component vector of float)
0:87            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:87              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:87                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:87                Constant:
0:87                  0 (const uint)
0:87              direct index ( temp uint)
0:87                'dti' ( in 3-component vector of uint)
0:87                Constant:
0:87                  0 (const int)
0:87            Constant:
0:87              2 (const int)
0:87          Sequence
0:87            Constant:
0:87              0 (const int)
0:87            Constant:
0:87              1 (const int)
0:87            Constant:
0:87              2 (const int)
0:87        subgroupQuadBroadcast ( temp 3-component vector of float)
0:87          vector swizzle ( temp 3-component vector of float)
0:87            f: direct index for structure ( temp 4-component vector of float)
0:87              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:87                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:87                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:87                  Constant:
0:87                    0 (const uint)
0:87                direct index ( temp uint)
0:87                  'dti' ( in 3-component vector of uint)
0:87                  Constant:
0:87                    0 (const int)
0:87              Constant:
0:87                2 (const int)
0:87            Sequence
0:87              Constant:
0:87                0 (const int)
0:87              Constant:
0:87                1 (const int)
0:87              Constant:
0:87                2 (const int)
0:87          Constant:
0:87            3 (const uint)
0:89      move second child to first child ( temp 4-component vector of double)
0:89        d: direct index for structure ( temp 4-component vector of double)
0:89          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:89            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:89              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:89              Constant:
0:89                0 (const uint)
0:89            direct index ( temp uint)
0:89              'dti' ( in 3-component vector of uint)
0:89              Constant:
0:89                0 (const int)
0:89          Constant:
0:89            3 (const int)
0:89        subgroupQuadBroadcast ( temp 4-component vector of double)
0:89          d: direct index for structure ( temp 4-component vector of double)
0:89            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:89              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:89                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:89                Constant:
0:89                  0 (const uint)
0:89              direct index ( temp uint)
0:89                'dti' ( in 3-component vector of uint)
0:89                Constant:
0:89                  0 (const int)
0:89            Constant:
0:89              3 (const int)
0:89          Constant:
0:89            3 (const uint)
0:90      move second child to first child ( temp double)
0:90        direct index ( temp double)
0:90          d: direct index for structure ( temp 4-component vector of double)
0:90            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:90              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:90                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:90                Constant:
0:90                  0 (const uint)
0:90              direct index ( temp uint)
0:90                'dti' ( in 3-component vector of uint)
0:90                Constant:
0:90                  0 (const int)
0:90            Constant:
0:90              3 (const int)
0:90          Constant:
0:90            0 (const int)
0:90        subgroupQuadBroadcast ( temp double)
0:90          direct index ( temp double)
0:90            d: direct index for structure ( temp 4-component vector of double)
0:90              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:90                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:90                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:90                  Constant:
0:90                    0 (const uint)
0:90                direct index ( temp uint)
0:90                  'dti' ( in 3-component vector of uint)
0:90                  Constant:
0:90                    0 (const int)
0:90              Constant:
0:90                3 (const int)
0:90            Constant:
0:90              0 (const int)
0:90          Constant:
0:90            3 (const uint)
0:91      move second child to first child ( temp 2-component vector of double)
0:91        vector swizzle ( temp 2-component vector of double)
0:91          d: direct index for structure ( temp 4-component vector of double)
0:91            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:91              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:91                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:91                Constant:
0:91                  0 (const uint)
0:91              direct index ( temp uint)
0:91                'dti' ( in 3-component vector of uint)
0:91                Constant:
0:91                  0 (const int)
0:91            Constant:
0:91              3 (const int)
0:91          Sequence
0:91            Constant:
0:91              0 (const int)
0:91            Constant:
0:91              1 (const int)
0:91        subgroupQuadBroadcast ( temp 2-component vector of double)
0:91          vector swizzle ( temp 2-component vector of double)
0:91            d: direct index for structure ( temp 4-component vector of double)
0:91              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:91                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:91                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:91                  Constant:
0:91                    0 (const uint)
0:91                direct index ( temp uint)
0:91                  'dti' ( in 3-component vector of uint)
0:91                  Constant:
0:91                    0 (const int)
0:91              Constant:
0:91                3 (const int)
0:91            Sequence
0:91              Constant:
0:91                0 (const int)
0:91              Constant:
0:91                1 (const int)
0:91          Constant:
0:91            3 (const uint)
0:92      move second child to first child ( temp 3-component vector of double)
0:92        vector swizzle ( temp 3-component vector of double)
0:92          d: direct index for structure ( temp 4-component vector of double)
0:92            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:92              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:92                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:92                Constant:
0:92                  0 (const uint)
0:92              direct index ( temp uint)
0:92                'dti' ( in 3-component vector of uint)
0:92                Constant:
0:92                  0 (const int)
0:92            Constant:
0:92              3 (const int)
0:92          Sequence
0:92            Constant:
0:92              0 (const int)
0:92            Constant:
0:92              1 (const int)
0:92            Constant:
0:92              2 (const int)
0:92        subgroupQuadBroadcast ( temp 3-component vector of double)
0:92          vector swizzle ( temp 3-component vector of double)
0:92            d: direct index for structure ( temp 4-component vector of double)
0:92              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:92                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:92                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:92                  Constant:
0:92                    0 (const uint)
0:92                direct index ( temp uint)
0:92                  'dti' ( in 3-component vector of uint)
0:92                  Constant:
0:92                    0 (const int)
0:92              Constant:
0:92                3 (const int)
0:92            Sequence
0:92              Constant:
0:92                0 (const int)
0:92              Constant:
0:92                1 (const int)
0:92              Constant:
0:92                2 (const int)
0:92          Constant:
0:92            3 (const uint)
0:94      move second child to first child ( temp 4-component vector of uint)
0:94        u: direct index for structure ( temp 4-component vector of uint)
0:94          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:94            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:94              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:94              Constant:
0:94                0 (const uint)
0:94            direct index ( temp uint)
0:94              'dti' ( in 3-component vector of uint)
0:94              Constant:
0:94                0 (const int)
0:94          Constant:
0:94            0 (const int)
0:94        subgroupQuadSwapHorizontal ( temp 4-component vector of uint)
0:94          u: direct index for structure ( temp 4-component vector of uint)
0:94            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:94              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:94                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:94                Constant:
0:94                  0 (const uint)
0:94              direct index ( temp uint)
0:94                'dti' ( in 3-component vector of uint)
0:94                Constant:
0:94                  0 (const int)
0:94            Constant:
0:94              0 (const int)
0:95      move second child to first child ( temp uint)
0:95        direct index ( temp uint)
0:95          u: direct index for structure ( temp 4-component vector of uint)
0:95            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:95              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:95                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:95                Constant:
0:95                  0 (const uint)
0:95              direct index ( temp uint)
0:95                'dti' ( in 3-component vector of uint)
0:95                Constant:
0:95                  0 (const int)
0:95            Constant:
0:95              0 (const int)
0:95          Constant:
0:95            0 (const int)
0:95        subgroupQuadSwapHorizontal ( temp uint)
0:95          direct index ( temp uint)
0:95            u: direct index for structure ( temp 4-component vector of uint)
0:95              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:95                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:95                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:95                  Constant:
0:95                    0 (const uint)
0:95                direct index ( temp uint)
0:95                  'dti' ( in 3-component vector of uint)
0:95                  Constant:
0:95                    0 (const int)
0:95              Constant:
0:95                0 (const int)
0:95            Constant:
0:95              0 (const int)
0:96      move second child to first child ( temp 2-component vector of uint)
0:96        vector swizzle ( temp 2-component vector of uint)
0:96          u: direct index for structure ( temp 4-component vector of uint)
0:96            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:96              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:96                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:96                Constant:
0:96                  0 (const uint)
0:96              direct index ( temp uint)
0:96                'dti' ( in 3-component vector of uint)
0:96                Constant:
0:96                  0 (const int)
0:96            Constant:
0:96              0 (const int)
0:96          Sequence
0:96            Constant:
0:96              0 (const int)
0:96            Constant:
0:96              1 (const int)
0:96        subgroupQuadSwapHorizontal ( temp 2-component vector of uint)
0:96          vector swizzle ( temp 2-component vector of uint)
0:96            u: direct index for structure ( temp 4-component vector of uint)
0:96              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:96                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:96                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:96                  Constant:
0:96                    0 (const uint)
0:96                direct index ( temp uint)
0:96                  'dti' ( in 3-component vector of uint)
0:96                  Constant:
0:96                    0 (const int)
0:96              Constant:
0:96                0 (const int)
0:96            Sequence
0:96              Constant:
0:96                0 (const int)
0:96              Constant:
0:96                1 (const int)
0:97      move second child to first child ( temp 3-component vector of uint)
0:97        vector swizzle ( temp 3-component vector of uint)
0:97          u: direct index for structure ( temp 4-component vector of uint)
0:97            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:97              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:97                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:97                Constant:
0:97                  0 (const uint)
0:97              direct index ( temp uint)
0:97                'dti' ( in 3-component vector of uint)
0:97                Constant:
0:97                  0 (const int)
0:97            Constant:
0:97              0 (const int)
0:97          Sequence
0:97            Constant:
0:97              0 (const int)
0:97            Constant:
0:97              1 (const int)
0:97            Constant:
0:97              2 (const int)
0:97        subgroupQuadSwapHorizontal ( temp 3-component vector of uint)
0:97          vector swizzle ( temp 3-component vector of uint)
0:97            u: direct index for structure ( temp 4-component vector of uint)
0:97              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:97                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:97                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:97                  Constant:
0:97                    0 (const uint)
0:97                direct index ( temp uint)
0:97                  'dti' ( in 3-component vector of uint)
0:97                  Constant:
0:97                    0 (const int)
0:97              Constant:
0:97                0 (const int)
0:97            Sequence
0:97              Constant:
0:97                0 (const int)
0:97              Constant:
0:97                1 (const int)
0:97              Constant:
0:97                2 (const int)
0:99      move second child to first child ( temp 4-component vector of int)
0:99        i: direct index for structure ( temp 4-component vector of int)
0:99          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:99            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:99              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:99              Constant:
0:99                0 (const uint)
0:99            direct index ( temp uint)
0:99              'dti' ( in 3-component vector of uint)
0:99              Constant:
0:99                0 (const int)
0:99          Constant:
0:99            1 (const int)
0:99        subgroupQuadSwapHorizontal ( temp 4-component vector of int)
0:99          i: direct index for structure ( temp 4-component vector of int)
0:99            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:99              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:99                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:99                Constant:
0:99                  0 (const uint)
0:99              direct index ( temp uint)
0:99                'dti' ( in 3-component vector of uint)
0:99                Constant:
0:99                  0 (const int)
0:99            Constant:
0:99              1 (const int)
0:100      move second child to first child ( temp int)
0:100        direct index ( temp int)
0:100          i: direct index for structure ( temp 4-component vector of int)
0:100            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:100              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:100                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:100                Constant:
0:100                  0 (const uint)
0:100              direct index ( temp uint)
0:100                'dti' ( in 3-component vector of uint)
0:100                Constant:
0:100                  0 (const int)
0:100            Constant:
0:100              1 (const int)
0:100          Constant:
0:100            0 (const int)
0:100        subgroupQuadSwapHorizontal ( temp int)
0:100          direct index ( temp int)
0:100            i: direct index for structure ( temp 4-component vector of int)
0:100              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:100                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:100                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:100                  Constant:
0:100                    0 (const uint)
0:100                direct index ( temp uint)
0:100                  'dti' ( in 3-component vector of uint)
0:100                  Constant:
0:100                    0 (const int)
0:100              Constant:
0:100                1 (const int)
0:100            Constant:
0:100              0 (const int)
0:101      move second child to first child ( temp 2-component vector of int)
0:101        vector swizzle ( temp 2-component vector of int)
0:101          i: direct index for structure ( temp 4-component vector of int)
0:101            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:101              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:101                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:101                Constant:
0:101                  0 (const uint)
0:101              direct index ( temp uint)
0:101                'dti' ( in 3-component vector of uint)
0:101                Constant:
0:101                  0 (const int)
0:101            Constant:
0:101              1 (const int)
0:101          Sequence
0:101            Constant:
0:101              0 (const int)
0:101            Constant:
0:101              1 (const int)
0:101        subgroupQuadSwapHorizontal ( temp 2-component vector of int)
0:101          vector swizzle ( temp 2-component vector of int)
0:101            i: direct index for structure ( temp 4-component vector of int)
0:101              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:101                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:101                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:101                  Constant:
0:101                    0 (const uint)
0:101                direct index ( temp uint)
0:101                  'dti' ( in 3-component vector of uint)
0:101                  Constant:
0:101                    0 (const int)
0:101              Constant:
0:101                1 (const int)
0:101            Sequence
0:101              Constant:
0:101                0 (const int)
0:101              Constant:
0:101                1 (const int)
0:102      move second child to first child ( temp 3-component vector of int)
0:102        vector swizzle ( temp 3-component vector of int)
0:102          i: direct index for structure ( temp 4-component vector of int)
0:102            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:102              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:102                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:102                Constant:
0:102                  0 (const uint)
0:102              direct index ( temp uint)
0:102                'dti' ( in 3-component vector of uint)
0:102                Constant:
0:102                  0 (const int)
0:102            Constant:
0:102              1 (const int)
0:102          Sequence
0:102            Constant:
0:102              0 (const int)
0:102            Constant:
0:102              1 (const int)
0:102            Constant:
0:102              2 (const int)
0:102        subgroupQuadSwapHorizontal ( temp 3-component vector of int)
0:102          vector swizzle ( temp 3-component vector of int)
0:102            i: direct index for structure ( temp 4-component vector of int)
0:102              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:102                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:102                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:102                  Constant:
0:102                    0 (const uint)
0:102                direct index ( temp uint)
0:102                  'dti' ( in 3-component vector of uint)
0:102                  Constant:
0:102                    0 (const int)
0:102              Constant:
0:102                1 (const int)
0:102            Sequence
0:102              Constant:
0:102                0 (const int)
0:102              Constant:
0:102                1 (const int)
0:102              Constant:
0:102                2 (const int)
0:104      move second child to first child ( temp 4-component vector of float)
0:104        f: direct index for structure ( temp 4-component vector of float)
0:104          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:104            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:104              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:104              Constant:
0:104                0 (const uint)
0:104            direct index ( temp uint)
0:104              'dti' ( in 3-component vector of uint)
0:104              Constant:
0:104                0 (const int)
0:104          Constant:
0:104            2 (const int)
0:104        subgroupQuadSwapHorizontal ( temp 4-component vector of float)
0:104          f: direct index for structure ( temp 4-component vector of float)
0:104            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:104              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:104                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:104                Constant:
0:104                  0 (const uint)
0:104              direct index ( temp uint)
0:104                'dti' ( in 3-component vector of uint)
0:104                Constant:
0:104                  0 (const int)
0:104            Constant:
0:104              2 (const int)
0:105      move second child to first child ( temp float)
0:105        direct index ( temp float)
0:105          f: direct index for structure ( temp 4-component vector of float)
0:105            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:105              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:105                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:105                Constant:
0:105                  0 (const uint)
0:105              direct index ( temp uint)
0:105                'dti' ( in 3-component vector of uint)
0:105                Constant:
0:105                  0 (const int)
0:105            Constant:
0:105              2 (const int)
0:105          Constant:
0:105            0 (const int)
0:105        subgroupQuadSwapHorizontal ( temp float)
0:105          direct index ( temp float)
0:105            f: direct index for structure ( temp 4-component vector of float)
0:105              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:105                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:105                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:105                  Constant:
0:105                    0 (const uint)
0:105                direct index ( temp uint)
0:105                  'dti' ( in 3-component vector of uint)
0:105                  Constant:
0:105                    0 (const int)
0:105              Constant:
0:105                2 (const int)
0:105            Constant:
0:105              0 (const int)
0:106      move second child to first child ( temp 2-component vector of float)
0:106        vector swizzle ( temp 2-component vector of float)
0:106          f: direct index for structure ( temp 4-component vector of float)
0:106            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:106              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:106                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:106                Constant:
0:106                  0 (const uint)
0:106              direct index ( temp uint)
0:106                'dti' ( in 3-component vector of uint)
0:106                Constant:
0:106                  0 (const int)
0:106            Constant:
0:106              2 (const int)
0:106          Sequence
0:106            Constant:
0:106              0 (const int)
0:106            Constant:
0:106              1 (const int)
0:106        subgroupQuadSwapHorizontal ( temp 2-component vector of float)
0:106          vector swizzle ( temp 2-component vector of float)
0:106            f: direct index for structure ( temp 4-component vector of float)
0:106              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:106                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:106                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:106                  Constant:
0:106                    0 (const uint)
0:106                direct index ( temp uint)
0:106                  'dti' ( in 3-component vector of uint)
0:106                  Constant:
0:106                    0 (const int)
0:106              Constant:
0:106                2 (const int)
0:106            Sequence
0:106              Constant:
0:106                0 (const int)
0:106              Constant:
0:106                1 (const int)
0:107      move second child to first child ( temp 3-component vector of float)
0:107        vector swizzle ( temp 3-component vector of float)
0:107          f: direct index for structure ( temp 4-component vector of float)
0:107            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:107              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:107                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:107                Constant:
0:107                  0 (const uint)
0:107              direct index ( temp uint)
0:107                'dti' ( in 3-component vector of uint)
0:107                Constant:
0:107                  0 (const int)
0:107            Constant:
0:107              2 (const int)
0:107          Sequence
0:107            Constant:
0:107              0 (const int)
0:107            Constant:
0:107              1 (const int)
0:107            Constant:
0:107              2 (const int)
0:107        subgroupQuadSwapHorizontal ( temp 3-component vector of float)
0:107          vector swizzle ( temp 3-component vector of float)
0:107            f: direct index for structure ( temp 4-component vector of float)
0:107              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:107                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:107                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:107                  Constant:
0:107                    0 (const uint)
0:107                direct index ( temp uint)
0:107                  'dti' ( in 3-component vector of uint)
0:107                  Constant:
0:107                    0 (const int)
0:107              Constant:
0:107                2 (const int)
0:107            Sequence
0:107              Constant:
0:107                0 (const int)
0:107              Constant:
0:107                1 (const int)
0:107              Constant:
0:107                2 (const int)
0:109      move second child to first child ( temp 4-component vector of double)
0:109        d: direct index for structure ( temp 4-component vector of double)
0:109          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:109            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:109              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:109              Constant:
0:109                0 (const uint)
0:109            direct index ( temp uint)
0:109              'dti' ( in 3-component vector of uint)
0:109              Constant:
0:109                0 (const int)
0:109          Constant:
0:109            3 (const int)
0:109        subgroupQuadSwapHorizontal ( temp 4-component vector of double)
0:109          d: direct index for structure ( temp 4-component vector of double)
0:109            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:109              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:109                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:109                Constant:
0:109                  0 (const uint)
0:109              direct index ( temp uint)
0:109                'dti' ( in 3-component vector of uint)
0:109                Constant:
0:109                  0 (const int)
0:109            Constant:
0:109              3 (const int)
0:110      move second child to first child ( temp double)
0:110        direct index ( temp double)
0:110          d: direct index for structure ( temp 4-component vector of double)
0:110            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:110              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:110                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:110                Constant:
0:110                  0 (const uint)
0:110              direct index ( temp uint)
0:110                'dti' ( in 3-component vector of uint)
0:110                Constant:
0:110                  0 (const int)
0:110            Constant:
0:110              3 (const int)
0:110          Constant:
0:110            0 (const int)
0:110        subgroupQuadSwapHorizontal ( temp double)
0:110          direct index ( temp double)
0:110            d: direct index for structure ( temp 4-component vector of double)
0:110              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:110                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:110                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:110                  Constant:
0:110                    0 (const uint)
0:110                direct index ( temp uint)
0:110                  'dti' ( in 3-component vector of uint)
0:110                  Constant:
0:110                    0 (const int)
0:110              Constant:
0:110                3 (const int)
0:110            Constant:
0:110              0 (const int)
0:111      move second child to first child ( temp 2-component vector of double)
0:111        vector swizzle ( temp 2-component vector of double)
0:111          d: direct index for structure ( temp 4-component vector of double)
0:111            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:111              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:111                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:111                Constant:
0:111                  0 (const uint)
0:111              direct index ( temp uint)
0:111                'dti' ( in 3-component vector of uint)
0:111                Constant:
0:111                  0 (const int)
0:111            Constant:
0:111              3 (const int)
0:111          Sequence
0:111            Constant:
0:111              0 (const int)
0:111            Constant:
0:111              1 (const int)
0:111        subgroupQuadSwapHorizontal ( temp 2-component vector of double)
0:111          vector swizzle ( temp 2-component vector of double)
0:111            d: direct index for structure ( temp 4-component vector of double)
0:111              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:111                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:111                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:111                  Constant:
0:111                    0 (const uint)
0:111                direct index ( temp uint)
0:111                  'dti' ( in 3-component vector of uint)
0:111                  Constant:
0:111                    0 (const int)
0:111              Constant:
0:111                3 (const int)
0:111            Sequence
0:111              Constant:
0:111                0 (const int)
0:111              Constant:
0:111                1 (const int)
0:112      move second child to first child ( temp 3-component vector of double)
0:112        vector swizzle ( temp 3-component vector of double)
0:112          d: direct index for structure ( temp 4-component vector of double)
0:112            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:112              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:112                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:112                Constant:
0:112                  0 (const uint)
0:112              direct index ( temp uint)
0:112                'dti' ( in 3-component vector of uint)
0:112                Constant:
0:112                  0 (const int)
0:112            Constant:
0:112              3 (const int)
0:112          Sequence
0:112            Constant:
0:112              0 (const int)
0:112            Constant:
0:112              1 (const int)
0:112            Constant:
0:112              2 (const int)
0:112        subgroupQuadSwapHorizontal ( temp 3-component vector of double)
0:112          vector swizzle ( temp 3-component vector of double)
0:112            d: direct index for structure ( temp 4-component vector of double)
0:112              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:112                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:112                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:112                  Constant:
0:112                    0 (const uint)
0:112                direct index ( temp uint)
0:112                  'dti' ( in 3-component vector of uint)
0:112                  Constant:
0:112                    0 (const int)
0:112              Constant:
0:112                3 (const int)
0:112            Sequence
0:112              Constant:
0:112                0 (const int)
0:112              Constant:
0:112                1 (const int)
0:112              Constant:
0:112                2 (const int)
0:114      move second child to first child ( temp 4-component vector of uint)
0:114        u: direct index for structure ( temp 4-component vector of uint)
0:114          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:114            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:114              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:114              Constant:
0:114                0 (const uint)
0:114            direct index ( temp uint)
0:114              'dti' ( in 3-component vector of uint)
0:114              Constant:
0:114                0 (const int)
0:114          Constant:
0:114            0 (const int)
0:114        subgroupQuadSwapVertical ( temp 4-component vector of uint)
0:114          u: direct index for structure ( temp 4-component vector of uint)
0:114            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:114              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:114                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:114                Constant:
0:114                  0 (const uint)
0:114              direct index ( temp uint)
0:114                'dti' ( in 3-component vector of uint)
0:114                Constant:
0:114                  0 (const int)
0:114            Constant:
0:114              0 (const int)
0:115      move second child to first child ( temp uint)
0:115        direct index ( temp uint)
0:115          u: direct index for structure ( temp 4-component vector of uint)
0:115            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:115              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:115                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:115                Constant:
0:115                  0 (const uint)
0:115              direct index ( temp uint)
0:115                'dti' ( in 3-component vector of uint)
0:115                Constant:
0:115                  0 (const int)
0:115            Constant:
0:115              0 (const int)
0:115          Constant:
0:115            0 (const int)
0:115        subgroupQuadSwapVertical ( temp uint)
0:115          direct index ( temp uint)
0:115            u: direct index for structure ( temp 4-component vector of uint)
0:115              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:115                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:115                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:115                  Constant:
0:115                    0 (const uint)
0:115                direct index ( temp uint)
0:115                  'dti' ( in 3-component vector of uint)
0:115                  Constant:
0:115                    0 (const int)
0:115              Constant:
0:115                0 (const int)
0:115            Constant:
0:115              0 (const int)
0:116      move second child to first child ( temp 2-component vector of uint)
0:116        vector swizzle ( temp 2-component vector of uint)
0:116          u: direct index for structure ( temp 4-component vector of uint)
0:116            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:116              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:116                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:116                Constant:
0:116                  0 (const uint)
0:116              direct index ( temp uint)
0:116                'dti' ( in 3-component vector of uint)
0:116                Constant:
0:116                  0 (const int)
0:116            Constant:
0:116              0 (const int)
0:116          Sequence
0:116            Constant:
0:116              0 (const int)
0:116            Constant:
0:116              1 (const int)
0:116        subgroupQuadSwapVertical ( temp 2-component vector of uint)
0:116          vector swizzle ( temp 2-component vector of uint)
0:116            u: direct index for structure ( temp 4-component vector of uint)
0:116              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:116                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:116                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:116                  Constant:
0:116                    0 (const uint)
0:116                direct index ( temp uint)
0:116                  'dti' ( in 3-component vector of uint)
0:116                  Constant:
0:116                    0 (const int)
0:116              Constant:
0:116                0 (const int)
0:116            Sequence
0:116              Constant:
0:116                0 (const int)
0:116              Constant:
0:116                1 (const int)
0:117      move second child to first child ( temp 3-component vector of uint)
0:117        vector swizzle ( temp 3-component vector of uint)
0:117          u: direct index for structure ( temp 4-component vector of uint)
0:117            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:117              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:117                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:117                Constant:
0:117                  0 (const uint)
0:117              direct index ( temp uint)
0:117                'dti' ( in 3-component vector of uint)
0:117                Constant:
0:117                  0 (const int)
0:117            Constant:
0:117              0 (const int)
0:117          Sequence
0:117            Constant:
0:117              0 (const int)
0:117            Constant:
0:117              1 (const int)
0:117            Constant:
0:117              2 (const int)
0:117        subgroupQuadSwapVertical ( temp 3-component vector of uint)
0:117          vector swizzle ( temp 3-component vector of uint)
0:117            u: direct index for structure ( temp 4-component vector of uint)
0:117              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:117                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:117                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:117                  Constant:
0:117                    0 (const uint)
0:117                direct index ( temp uint)
0:117                  'dti' ( in 3-component vector of uint)
0:117                  Constant:
0:117                    0 (const int)
0:117              Constant:
0:117                0 (const int)
0:117            Sequence
0:117              Constant:
0:117                0 (const int)
0:117              Constant:
0:117                1 (const int)
0:117              Constant:
0:117                2 (const int)
0:119      move second child to first child ( temp 4-component vector of int)
0:119        i: direct index for structure ( temp 4-component vector of int)
0:119          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:119            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:119              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:119              Constant:
0:119                0 (const uint)
0:119            direct index ( temp uint)
0:119              'dti' ( in 3-component vector of uint)
0:119              Constant:
0:119                0 (const int)
0:119          Constant:
0:119            1 (const int)
0:119        subgroupQuadSwapVertical ( temp 4-component vector of int)
0:119          i: direct index for structure ( temp 4-component vector of int)
0:119            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:119              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:119                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:119                Constant:
0:119                  0 (const uint)
0:119              direct index ( temp uint)
0:119                'dti' ( in 3-component vector of uint)
0:119                Constant:
0:119                  0 (const int)
0:119            Constant:
0:119              1 (const int)
0:120      move second child to first child ( temp int)
0:120        direct index ( temp int)
0:120          i: direct index for structure ( temp 4-component vector of int)
0:120            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:120              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:120                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:120                Constant:
0:120                  0 (const uint)
0:120              direct index ( temp uint)
0:120                'dti' ( in 3-component vector of uint)
0:120                Constant:
0:120                  0 (const int)
0:120            Constant:
0:120              1 (const int)
0:120          Constant:
0:120            0 (const int)
0:120        subgroupQuadSwapVertical ( temp int)
0:120          direct index ( temp int)
0:120            i: direct index for structure ( temp 4-component vector of int)
0:120              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:120                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:120                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:120                  Constant:
0:120                    0 (const uint)
0:120                direct index ( temp uint)
0:120                  'dti' ( in 3-component vector of uint)
0:120                  Constant:
0:120                    0 (const int)
0:120              Constant:
0:120                1 (const int)
0:120            Constant:
0:120              0 (const int)
0:121      move second child to first child ( temp 2-component vector of int)
0:121        vector swizzle ( temp 2-component vector of int)
0:121          i: direct index for structure ( temp 4-component vector of int)
0:121            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:121              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:121                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:121                Constant:
0:121                  0 (const uint)
0:121              direct index ( temp uint)
0:121                'dti' ( in 3-component vector of uint)
0:121                Constant:
0:121                  0 (const int)
0:121            Constant:
0:121              1 (const int)
0:121          Sequence
0:121            Constant:
0:121              0 (const int)
0:121            Constant:
0:121              1 (const int)
0:121        subgroupQuadSwapVertical ( temp 2-component vector of int)
0:121          vector swizzle ( temp 2-component vector of int)
0:121            i: direct index for structure ( temp 4-component vector of int)
0:121              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:121                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:121                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:121                  Constant:
0:121                    0 (const uint)
0:121                direct index ( temp uint)
0:121                  'dti' ( in 3-component vector of uint)
0:121                  Constant:
0:121                    0 (const int)
0:121              Constant:
0:121                1 (const int)
0:121            Sequence
0:121              Constant:
0:121                0 (const int)
0:121              Constant:
0:121                1 (const int)
0:122      move second child to first child ( temp 3-component vector of int)
0:122        vector swizzle ( temp 3-component vector of int)
0:122          i: direct index for structure ( temp 4-component vector of int)
0:122            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:122              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:122                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:122                Constant:
0:122                  0 (const uint)
0:122              direct index ( temp uint)
0:122                'dti' ( in 3-component vector of uint)
0:122                Constant:
0:122                  0 (const int)
0:122            Constant:
0:122              1 (const int)
0:122          Sequence
0:122            Constant:
0:122              0 (const int)
0:122            Constant:
0:122              1 (const int)
0:122            Constant:
0:122              2 (const int)
0:122        subgroupQuadSwapVertical ( temp 3-component vector of int)
0:122          vector swizzle ( temp 3-component vector of int)
0:122            i: direct index for structure ( temp 4-component vector of int)
0:122              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:122                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:122                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:122                  Constant:
0:122                    0 (const uint)
0:122                direct index ( temp uint)
0:122                  'dti' ( in 3-component vector of uint)
0:122                  Constant:
0:122                    0 (const int)
0:122              Constant:
0:122                1 (const int)
0:122            Sequence
0:122              Constant:
0:122                0 (const int)
0:122              Constant:
0:122                1 (const int)
0:122              Constant:
0:122                2 (const int)
0:124      move second child to first child ( temp 4-component vector of float)
0:124        f: direct index for structure ( temp 4-component vector of float)
0:124          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:124            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:124              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:124              Constant:
0:124                0 (const uint)
0:124            direct index ( temp uint)
0:124              'dti' ( in 3-component vector of uint)
0:124              Constant:
0:124                0 (const int)
0:124          Constant:
0:124            2 (const int)
0:124        subgroupQuadSwapVertical ( temp 4-component vector of float)
0:124          f: direct index for structure ( temp 4-component vector of float)
0:124            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:124              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:124                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:124                Constant:
0:124                  0 (const uint)
0:124              direct index ( temp uint)
0:124                'dti' ( in 3-component vector of uint)
0:124                Constant:
0:124                  0 (const int)
0:124            Constant:
0:124              2 (const int)
0:125      move second child to first child ( temp float)
0:125        direct index ( temp float)
0:125          f: direct index for structure ( temp 4-component vector of float)
0:125            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:125              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:125                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:125                Constant:
0:125                  0 (const uint)
0:125              direct index ( temp uint)
0:125                'dti' ( in 3-component vector of uint)
0:125                Constant:
0:125                  0 (const int)
0:125            Constant:
0:125              2 (const int)
0:125          Constant:
0:125            0 (const int)
0:125        subgroupQuadSwapVertical ( temp float)
0:125          direct index ( temp float)
0:125            f: direct index for structure ( temp 4-component vector of float)
0:125              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:125                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:125                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:125                  Constant:
0:125                    0 (const uint)
0:125                direct index ( temp uint)
0:125                  'dti' ( in 3-component vector of uint)
0:125                  Constant:
0:125                    0 (const int)
0:125              Constant:
0:125                2 (const int)
0:125            Constant:
0:125              0 (const int)
0:126      move second child to first child ( temp 2-component vector of float)
0:126        vector swizzle ( temp 2-component vector of float)
0:126          f: direct index for structure ( temp 4-component vector of float)
0:126            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:126              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:126                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:126                Constant:
0:126                  0 (const uint)
0:126              direct index ( temp uint)
0:126                'dti' ( in 3-component vector of uint)
0:126                Constant:
0:126                  0 (const int)
0:126            Constant:
0:126              2 (const int)
0:126          Sequence
0:126            Constant:
0:126              0 (const int)
0:126            Constant:
0:126              1 (const int)
0:126        subgroupQuadSwapVertical ( temp 2-component vector of float)
0:126          vector swizzle ( temp 2-component vector of float)
0:126            f: direct index for structure ( temp 4-component vector of float)
0:126              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:126                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:126                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:126                  Constant:
0:126                    0 (const uint)
0:126                direct index ( temp uint)
0:126                  'dti' ( in 3-component vector of uint)
0:126                  Constant:
0:126                    0 (const int)
0:126              Constant:
0:126                2 (const int)
0:126            Sequence
0:126              Constant:
0:126                0 (const int)
0:126              Constant:
0:126                1 (const int)
0:127      move second child to first child ( temp 3-component vector of float)
0:127        vector swizzle ( temp 3-component vector of float)
0:127          f: direct index for structure ( temp 4-component vector of float)
0:127            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:127              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:127                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:127                Constant:
0:127                  0 (const uint)
0:127              direct index ( temp uint)
0:127                'dti' ( in 3-component vector of uint)
0:127                Constant:
0:127                  0 (const int)
0:127            Constant:
0:127              2 (const int)
0:127          Sequence
0:127            Constant:
0:127              0 (const int)
0:127            Constant:
0:127              1 (const int)
0:127            Constant:
0:127              2 (const int)
0:127        subgroupQuadSwapVertical ( temp 3-component vector of float)
0:127          vector swizzle ( temp 3-component vector of float)
0:127            f: direct index for structure ( temp 4-component vector of float)
0:127              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:127                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:127                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:127                  Constant:
0:127                    0 (const uint)
0:127                direct index ( temp uint)
0:127                  'dti' ( in 3-component vector of uint)
0:127                  Constant:
0:127                    0 (const int)
0:127              Constant:
0:127                2 (const int)
0:127            Sequence
0:127              Constant:
0:127                0 (const int)
0:127              Constant:
0:127                1 (const int)
0:127              Constant:
0:127                2 (const int)
0:129      move second child to first child ( temp 4-component vector of double)
0:129        d: direct index for structure ( temp 4-component vector of double)
0:129          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:129            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:129              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:129              Constant:
0:129                0 (const uint)
0:129            direct index ( temp uint)
0:129              'dti' ( in 3-component vector of uint)
0:129              Constant:
0:129                0 (const int)
0:129          Constant:
0:129            3 (const int)
0:129        subgroupQuadSwapVertical ( temp 4-component vector of double)
0:129          d: direct index for structure ( temp 4-component vector of double)
0:129            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:129              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:129                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:129                Constant:
0:129                  0 (const uint)
0:129              direct index ( temp uint)
0:129                'dti' ( in 3-component vector of uint)
0:129                Constant:
0:129                  0 (const int)
0:129            Constant:
0:129              3 (const int)
0:130      move second child to first child ( temp double)
0:130        direct index ( temp double)
0:130          d: direct index for structure ( temp 4-component vector of double)
0:130            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:130              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:130                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:130                Constant:
0:130                  0 (const uint)
0:130              direct index ( temp uint)
0:130                'dti' ( in 3-component vector of uint)
0:130                Constant:
0:130                  0 (const int)
0:130            Constant:
0:130              3 (const int)
0:130          Constant:
0:130            0 (const int)
0:130        subgroupQuadSwapVertical ( temp double)
0:130          direct index ( temp double)
0:130            d: direct index for structure ( temp 4-component vector of double)
0:130              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:130                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:130                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:130                  Constant:
0:130                    0 (const uint)
0:130                direct index ( temp uint)
0:130                  'dti' ( in 3-component vector of uint)
0:130                  Constant:
0:130                    0 (const int)
0:130              Constant:
0:130                3 (const int)
0:130            Constant:
0:130              0 (const int)
0:131      move second child to first child ( temp 2-component vector of double)
0:131        vector swizzle ( temp 2-component vector of double)
0:131          d: direct index for structure ( temp 4-component vector of double)
0:131            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:131              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:131                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:131                Constant:
0:131                  0 (const uint)
0:131              direct index ( temp uint)
0:131                'dti' ( in 3-component vector of uint)
0:131                Constant:
0:131                  0 (const int)
0:131            Constant:
0:131              3 (const int)
0:131          Sequence
0:131            Constant:
0:131              0 (const int)
0:131            Constant:
0:131              1 (const int)
0:131        subgroupQuadSwapVertical ( temp 2-component vector of double)
0:131          vector swizzle ( temp 2-component vector of double)
0:131            d: direct index for structure ( temp 4-component vector of double)
0:131              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:131                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:131                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:131                  Constant:
0:131                    0 (const uint)
0:131                direct index ( temp uint)
0:131                  'dti' ( in 3-component vector of uint)
0:131                  Constant:
0:131                    0 (const int)
0:131              Constant:
0:131                3 (const int)
0:131            Sequence
0:131              Constant:
0:131                0 (const int)
0:131              Constant:
0:131                1 (const int)
0:132      move second child to first child ( temp 3-component vector of double)
0:132        vector swizzle ( temp 3-component vector of double)
0:132          d: direct index for structure ( temp 4-component vector of double)
0:132            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:132              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:132                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:132                Constant:
0:132                  0 (const uint)
0:132              direct index ( temp uint)
0:132                'dti' ( in 3-component vector of uint)
0:132                Constant:
0:132                  0 (const int)
0:132            Constant:
0:132              3 (const int)
0:132          Sequence
0:132            Constant:
0:132              0 (const int)
0:132            Constant:
0:132              1 (const int)
0:132            Constant:
0:132              2 (const int)
0:132        subgroupQuadSwapVertical ( temp 3-component vector of double)
0:132          vector swizzle ( temp 3-component vector of double)
0:132            d: direct index for structure ( temp 4-component vector of double)
0:132              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:132                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:132                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:132                  Constant:
0:132                    0 (const uint)
0:132                direct index ( temp uint)
0:132                  'dti' ( in 3-component vector of uint)
0:132                  Constant:
0:132                    0 (const int)
0:132              Constant:
0:132                3 (const int)
0:132            Sequence
0:132              Constant:
0:132                0 (const int)
0:132              Constant:
0:132                1 (const int)
0:132              Constant:
0:132                2 (const int)
0:13  Function Definition: CSMain( ( temp void)
0:13    Function Parameters: 
0:?     Sequence
0:13      move second child to first child ( temp 3-component vector of uint)
0:?         'dti' ( temp 3-component vector of uint)
0:?         'dti' ( in 3-component vector of uint GlobalInvocationID)
0:13      Function Call: @CSMain(vu3; ( temp void)
0:?         'dti' ( temp 3-component vector of uint)
0:?   Linker Objects
0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:?     'dti' ( in 3-component vector of uint GlobalInvocationID)


Linked compute stage:


Shader version: 500
local_size = (32, 16, 1)
0:? Sequence
0:13  Function Definition: @CSMain(vu3; ( temp void)
0:13    Function Parameters: 
0:13      'dti' ( in 3-component vector of uint)
0:?     Sequence
0:14      move second child to first child ( temp 4-component vector of uint)
0:14        u: direct index for structure ( temp 4-component vector of uint)
0:14          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:14            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:14              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:14              Constant:
0:14                0 (const uint)
0:14            direct index ( temp uint)
0:14              'dti' ( in 3-component vector of uint)
0:14              Constant:
0:14                0 (const int)
0:14          Constant:
0:14            0 (const int)
0:14        subgroupQuadBroadcast ( temp 4-component vector of uint)
0:14          u: direct index for structure ( temp 4-component vector of uint)
0:14            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:14              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:14                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:14                Constant:
0:14                  0 (const uint)
0:14              direct index ( temp uint)
0:14                'dti' ( in 3-component vector of uint)
0:14                Constant:
0:14                  0 (const int)
0:14            Constant:
0:14              0 (const int)
0:14          Constant:
0:14            0 (const uint)
0:15      move second child to first child ( temp uint)
0:15        direct index ( temp uint)
0:15          u: direct index for structure ( temp 4-component vector of uint)
0:15            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:15              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:15                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:15                Constant:
0:15                  0 (const uint)
0:15              direct index ( temp uint)
0:15                'dti' ( in 3-component vector of uint)
0:15                Constant:
0:15                  0 (const int)
0:15            Constant:
0:15              0 (const int)
0:15          Constant:
0:15            0 (const int)
0:15        subgroupQuadBroadcast ( temp uint)
0:15          direct index ( temp uint)
0:15            u: direct index for structure ( temp 4-component vector of uint)
0:15              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:15                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:15                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:15                  Constant:
0:15                    0 (const uint)
0:15                direct index ( temp uint)
0:15                  'dti' ( in 3-component vector of uint)
0:15                  Constant:
0:15                    0 (const int)
0:15              Constant:
0:15                0 (const int)
0:15            Constant:
0:15              0 (const int)
0:15          Constant:
0:15            0 (const uint)
0:16      move second child to first child ( temp 2-component vector of uint)
0:16        vector swizzle ( temp 2-component vector of uint)
0:16          u: direct index for structure ( temp 4-component vector of uint)
0:16            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:16              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:16                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:16                Constant:
0:16                  0 (const uint)
0:16              direct index ( temp uint)
0:16                'dti' ( in 3-component vector of uint)
0:16                Constant:
0:16                  0 (const int)
0:16            Constant:
0:16              0 (const int)
0:16          Sequence
0:16            Constant:
0:16              0 (const int)
0:16            Constant:
0:16              1 (const int)
0:16        subgroupQuadBroadcast ( temp 2-component vector of uint)
0:16          vector swizzle ( temp 2-component vector of uint)
0:16            u: direct index for structure ( temp 4-component vector of uint)
0:16              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:16                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:16                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:16                  Constant:
0:16                    0 (const uint)
0:16                direct index ( temp uint)
0:16                  'dti' ( in 3-component vector of uint)
0:16                  Constant:
0:16                    0 (const int)
0:16              Constant:
0:16                0 (const int)
0:16            Sequence
0:16              Constant:
0:16                0 (const int)
0:16              Constant:
0:16                1 (const int)
0:16          Constant:
0:16            0 (const uint)
0:17      move second child to first child ( temp 3-component vector of uint)
0:17        vector swizzle ( temp 3-component vector of uint)
0:17          u: direct index for structure ( temp 4-component vector of uint)
0:17            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:17              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:17                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:17                Constant:
0:17                  0 (const uint)
0:17              direct index ( temp uint)
0:17                'dti' ( in 3-component vector of uint)
0:17                Constant:
0:17                  0 (const int)
0:17            Constant:
0:17              0 (const int)
0:17          Sequence
0:17            Constant:
0:17              0 (const int)
0:17            Constant:
0:17              1 (const int)
0:17            Constant:
0:17              2 (const int)
0:17        subgroupQuadBroadcast ( temp 3-component vector of uint)
0:17          vector swizzle ( temp 3-component vector of uint)
0:17            u: direct index for structure ( temp 4-component vector of uint)
0:17              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:17                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:17                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:17                  Constant:
0:17                    0 (const uint)
0:17                direct index ( temp uint)
0:17                  'dti' ( in 3-component vector of uint)
0:17                  Constant:
0:17                    0 (const int)
0:17              Constant:
0:17                0 (const int)
0:17            Sequence
0:17              Constant:
0:17                0 (const int)
0:17              Constant:
0:17                1 (const int)
0:17              Constant:
0:17                2 (const int)
0:17          Constant:
0:17            0 (const uint)
0:19      move second child to first child ( temp 4-component vector of int)
0:19        i: direct index for structure ( temp 4-component vector of int)
0:19          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:19            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:19              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:19              Constant:
0:19                0 (const uint)
0:19            direct index ( temp uint)
0:19              'dti' ( in 3-component vector of uint)
0:19              Constant:
0:19                0 (const int)
0:19          Constant:
0:19            1 (const int)
0:19        subgroupQuadBroadcast ( temp 4-component vector of int)
0:19          i: direct index for structure ( temp 4-component vector of int)
0:19            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:19              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:19                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:19                Constant:
0:19                  0 (const uint)
0:19              direct index ( temp uint)
0:19                'dti' ( in 3-component vector of uint)
0:19                Constant:
0:19                  0 (const int)
0:19            Constant:
0:19              1 (const int)
0:19          Constant:
0:19            0 (const uint)
0:20      move second child to first child ( temp int)
0:20        direct index ( temp int)
0:20          i: direct index for structure ( temp 4-component vector of int)
0:20            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:20              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:20                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:20                Constant:
0:20                  0 (const uint)
0:20              direct index ( temp uint)
0:20                'dti' ( in 3-component vector of uint)
0:20                Constant:
0:20                  0 (const int)
0:20            Constant:
0:20              1 (const int)
0:20          Constant:
0:20            0 (const int)
0:20        subgroupQuadBroadcast ( temp int)
0:20          direct index ( temp int)
0:20            i: direct index for structure ( temp 4-component vector of int)
0:20              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:20                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:20                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:20                  Constant:
0:20                    0 (const uint)
0:20                direct index ( temp uint)
0:20                  'dti' ( in 3-component vector of uint)
0:20                  Constant:
0:20                    0 (const int)
0:20              Constant:
0:20                1 (const int)
0:20            Constant:
0:20              0 (const int)
0:20          Constant:
0:20            0 (const uint)
0:21      move second child to first child ( temp 2-component vector of int)
0:21        vector swizzle ( temp 2-component vector of int)
0:21          i: direct index for structure ( temp 4-component vector of int)
0:21            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:21              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:21                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:21                Constant:
0:21                  0 (const uint)
0:21              direct index ( temp uint)
0:21                'dti' ( in 3-component vector of uint)
0:21                Constant:
0:21                  0 (const int)
0:21            Constant:
0:21              1 (const int)
0:21          Sequence
0:21            Constant:
0:21              0 (const int)
0:21            Constant:
0:21              1 (const int)
0:21        subgroupQuadBroadcast ( temp 2-component vector of int)
0:21          vector swizzle ( temp 2-component vector of int)
0:21            i: direct index for structure ( temp 4-component vector of int)
0:21              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:21                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:21                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:21                  Constant:
0:21                    0 (const uint)
0:21                direct index ( temp uint)
0:21                  'dti' ( in 3-component vector of uint)
0:21                  Constant:
0:21                    0 (const int)
0:21              Constant:
0:21                1 (const int)
0:21            Sequence
0:21              Constant:
0:21                0 (const int)
0:21              Constant:
0:21                1 (const int)
0:21          Constant:
0:21            0 (const uint)
0:22      move second child to first child ( temp 3-component vector of int)
0:22        vector swizzle ( temp 3-component vector of int)
0:22          i: direct index for structure ( temp 4-component vector of int)
0:22            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:22              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:22                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:22                Constant:
0:22                  0 (const uint)
0:22              direct index ( temp uint)
0:22                'dti' ( in 3-component vector of uint)
0:22                Constant:
0:22                  0 (const int)
0:22            Constant:
0:22              1 (const int)
0:22          Sequence
0:22            Constant:
0:22              0 (const int)
0:22            Constant:
0:22              1 (const int)
0:22            Constant:
0:22              2 (const int)
0:22        subgroupQuadBroadcast ( temp 3-component vector of int)
0:22          vector swizzle ( temp 3-component vector of int)
0:22            i: direct index for structure ( temp 4-component vector of int)
0:22              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:22                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:22                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:22                  Constant:
0:22                    0 (const uint)
0:22                direct index ( temp uint)
0:22                  'dti' ( in 3-component vector of uint)
0:22                  Constant:
0:22                    0 (const int)
0:22              Constant:
0:22                1 (const int)
0:22            Sequence
0:22              Constant:
0:22                0 (const int)
0:22              Constant:
0:22                1 (const int)
0:22              Constant:
0:22                2 (const int)
0:22          Constant:
0:22            0 (const uint)
0:24      move second child to first child ( temp 4-component vector of float)
0:24        f: direct index for structure ( temp 4-component vector of float)
0:24          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:24            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:24              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:24              Constant:
0:24                0 (const uint)
0:24            direct index ( temp uint)
0:24              'dti' ( in 3-component vector of uint)
0:24              Constant:
0:24                0 (const int)
0:24          Constant:
0:24            2 (const int)
0:24        subgroupQuadBroadcast ( temp 4-component vector of float)
0:24          f: direct index for structure ( temp 4-component vector of float)
0:24            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:24              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:24                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:24                Constant:
0:24                  0 (const uint)
0:24              direct index ( temp uint)
0:24                'dti' ( in 3-component vector of uint)
0:24                Constant:
0:24                  0 (const int)
0:24            Constant:
0:24              2 (const int)
0:24          Constant:
0:24            0 (const uint)
0:25      move second child to first child ( temp float)
0:25        direct index ( temp float)
0:25          f: direct index for structure ( temp 4-component vector of float)
0:25            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:25              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:25                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:25                Constant:
0:25                  0 (const uint)
0:25              direct index ( temp uint)
0:25                'dti' ( in 3-component vector of uint)
0:25                Constant:
0:25                  0 (const int)
0:25            Constant:
0:25              2 (const int)
0:25          Constant:
0:25            0 (const int)
0:25        subgroupQuadBroadcast ( temp float)
0:25          direct index ( temp float)
0:25            f: direct index for structure ( temp 4-component vector of float)
0:25              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:25                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:25                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:25                  Constant:
0:25                    0 (const uint)
0:25                direct index ( temp uint)
0:25                  'dti' ( in 3-component vector of uint)
0:25                  Constant:
0:25                    0 (const int)
0:25              Constant:
0:25                2 (const int)
0:25            Constant:
0:25              0 (const int)
0:25          Constant:
0:25            0 (const uint)
0:26      move second child to first child ( temp 2-component vector of float)
0:26        vector swizzle ( temp 2-component vector of float)
0:26          f: direct index for structure ( temp 4-component vector of float)
0:26            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:26              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:26                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:26                Constant:
0:26                  0 (const uint)
0:26              direct index ( temp uint)
0:26                'dti' ( in 3-component vector of uint)
0:26                Constant:
0:26                  0 (const int)
0:26            Constant:
0:26              2 (const int)
0:26          Sequence
0:26            Constant:
0:26              0 (const int)
0:26            Constant:
0:26              1 (const int)
0:26        subgroupQuadBroadcast ( temp 2-component vector of float)
0:26          vector swizzle ( temp 2-component vector of float)
0:26            f: direct index for structure ( temp 4-component vector of float)
0:26              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:26                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:26                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:26                  Constant:
0:26                    0 (const uint)
0:26                direct index ( temp uint)
0:26                  'dti' ( in 3-component vector of uint)
0:26                  Constant:
0:26                    0 (const int)
0:26              Constant:
0:26                2 (const int)
0:26            Sequence
0:26              Constant:
0:26                0 (const int)
0:26              Constant:
0:26                1 (const int)
0:26          Constant:
0:26            0 (const uint)
0:27      move second child to first child ( temp 3-component vector of float)
0:27        vector swizzle ( temp 3-component vector of float)
0:27          f: direct index for structure ( temp 4-component vector of float)
0:27            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:27              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:27                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:27                Constant:
0:27                  0 (const uint)
0:27              direct index ( temp uint)
0:27                'dti' ( in 3-component vector of uint)
0:27                Constant:
0:27                  0 (const int)
0:27            Constant:
0:27              2 (const int)
0:27          Sequence
0:27            Constant:
0:27              0 (const int)
0:27            Constant:
0:27              1 (const int)
0:27            Constant:
0:27              2 (const int)
0:27        subgroupQuadBroadcast ( temp 3-component vector of float)
0:27          vector swizzle ( temp 3-component vector of float)
0:27            f: direct index for structure ( temp 4-component vector of float)
0:27              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:27                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:27                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:27                  Constant:
0:27                    0 (const uint)
0:27                direct index ( temp uint)
0:27                  'dti' ( in 3-component vector of uint)
0:27                  Constant:
0:27                    0 (const int)
0:27              Constant:
0:27                2 (const int)
0:27            Sequence
0:27              Constant:
0:27                0 (const int)
0:27              Constant:
0:27                1 (const int)
0:27              Constant:
0:27                2 (const int)
0:27          Constant:
0:27            0 (const uint)
0:29      move second child to first child ( temp 4-component vector of double)
0:29        d: direct index for structure ( temp 4-component vector of double)
0:29          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:29            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:29              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:29              Constant:
0:29                0 (const uint)
0:29            direct index ( temp uint)
0:29              'dti' ( in 3-component vector of uint)
0:29              Constant:
0:29                0 (const int)
0:29          Constant:
0:29            3 (const int)
0:29        subgroupQuadBroadcast ( temp 4-component vector of double)
0:29          d: direct index for structure ( temp 4-component vector of double)
0:29            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:29              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:29                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:29                Constant:
0:29                  0 (const uint)
0:29              direct index ( temp uint)
0:29                'dti' ( in 3-component vector of uint)
0:29                Constant:
0:29                  0 (const int)
0:29            Constant:
0:29              3 (const int)
0:29          Constant:
0:29            0 (const uint)
0:30      move second child to first child ( temp double)
0:30        direct index ( temp double)
0:30          d: direct index for structure ( temp 4-component vector of double)
0:30            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:30              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:30                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:30                Constant:
0:30                  0 (const uint)
0:30              direct index ( temp uint)
0:30                'dti' ( in 3-component vector of uint)
0:30                Constant:
0:30                  0 (const int)
0:30            Constant:
0:30              3 (const int)
0:30          Constant:
0:30            0 (const int)
0:30        subgroupQuadBroadcast ( temp double)
0:30          direct index ( temp double)
0:30            d: direct index for structure ( temp 4-component vector of double)
0:30              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:30                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:30                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:30                  Constant:
0:30                    0 (const uint)
0:30                direct index ( temp uint)
0:30                  'dti' ( in 3-component vector of uint)
0:30                  Constant:
0:30                    0 (const int)
0:30              Constant:
0:30                3 (const int)
0:30            Constant:
0:30              0 (const int)
0:30          Constant:
0:30            0 (const uint)
0:31      move second child to first child ( temp 2-component vector of double)
0:31        vector swizzle ( temp 2-component vector of double)
0:31          d: direct index for structure ( temp 4-component vector of double)
0:31            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:31              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:31                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:31                Constant:
0:31                  0 (const uint)
0:31              direct index ( temp uint)
0:31                'dti' ( in 3-component vector of uint)
0:31                Constant:
0:31                  0 (const int)
0:31            Constant:
0:31              3 (const int)
0:31          Sequence
0:31            Constant:
0:31              0 (const int)
0:31            Constant:
0:31              1 (const int)
0:31        subgroupQuadBroadcast ( temp 2-component vector of double)
0:31          vector swizzle ( temp 2-component vector of double)
0:31            d: direct index for structure ( temp 4-component vector of double)
0:31              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:31                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:31                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:31                  Constant:
0:31                    0 (const uint)
0:31                direct index ( temp uint)
0:31                  'dti' ( in 3-component vector of uint)
0:31                  Constant:
0:31                    0 (const int)
0:31              Constant:
0:31                3 (const int)
0:31            Sequence
0:31              Constant:
0:31                0 (const int)
0:31              Constant:
0:31                1 (const int)
0:31          Constant:
0:31            0 (const uint)
0:32      move second child to first child ( temp 3-component vector of double)
0:32        vector swizzle ( temp 3-component vector of double)
0:32          d: direct index for structure ( temp 4-component vector of double)
0:32            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:32              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:32                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:32                Constant:
0:32                  0 (const uint)
0:32              direct index ( temp uint)
0:32                'dti' ( in 3-component vector of uint)
0:32                Constant:
0:32                  0 (const int)
0:32            Constant:
0:32              3 (const int)
0:32          Sequence
0:32            Constant:
0:32              0 (const int)
0:32            Constant:
0:32              1 (const int)
0:32            Constant:
0:32              2 (const int)
0:32        subgroupQuadBroadcast ( temp 3-component vector of double)
0:32          vector swizzle ( temp 3-component vector of double)
0:32            d: direct index for structure ( temp 4-component vector of double)
0:32              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:32                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:32                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:32                  Constant:
0:32                    0 (const uint)
0:32                direct index ( temp uint)
0:32                  'dti' ( in 3-component vector of uint)
0:32                  Constant:
0:32                    0 (const int)
0:32              Constant:
0:32                3 (const int)
0:32            Sequence
0:32              Constant:
0:32                0 (const int)
0:32              Constant:
0:32                1 (const int)
0:32              Constant:
0:32                2 (const int)
0:32          Constant:
0:32            0 (const uint)
0:34      move second child to first child ( temp 4-component vector of uint)
0:34        u: direct index for structure ( temp 4-component vector of uint)
0:34          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:34            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:34              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:34              Constant:
0:34                0 (const uint)
0:34            direct index ( temp uint)
0:34              'dti' ( in 3-component vector of uint)
0:34              Constant:
0:34                0 (const int)
0:34          Constant:
0:34            0 (const int)
0:34        subgroupQuadBroadcast ( temp 4-component vector of uint)
0:34          u: direct index for structure ( temp 4-component vector of uint)
0:34            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:34              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:34                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:34                Constant:
0:34                  0 (const uint)
0:34              direct index ( temp uint)
0:34                'dti' ( in 3-component vector of uint)
0:34                Constant:
0:34                  0 (const int)
0:34            Constant:
0:34              0 (const int)
0:34          Constant:
0:34            1 (const uint)
0:35      move second child to first child ( temp uint)
0:35        direct index ( temp uint)
0:35          u: direct index for structure ( temp 4-component vector of uint)
0:35            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:35              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:35                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:35                Constant:
0:35                  0 (const uint)
0:35              direct index ( temp uint)
0:35                'dti' ( in 3-component vector of uint)
0:35                Constant:
0:35                  0 (const int)
0:35            Constant:
0:35              0 (const int)
0:35          Constant:
0:35            0 (const int)
0:35        subgroupQuadBroadcast ( temp uint)
0:35          direct index ( temp uint)
0:35            u: direct index for structure ( temp 4-component vector of uint)
0:35              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:35                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:35                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:35                  Constant:
0:35                    0 (const uint)
0:35                direct index ( temp uint)
0:35                  'dti' ( in 3-component vector of uint)
0:35                  Constant:
0:35                    0 (const int)
0:35              Constant:
0:35                0 (const int)
0:35            Constant:
0:35              0 (const int)
0:35          Constant:
0:35            1 (const uint)
0:36      move second child to first child ( temp 2-component vector of uint)
0:36        vector swizzle ( temp 2-component vector of uint)
0:36          u: direct index for structure ( temp 4-component vector of uint)
0:36            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:36              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:36                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:36                Constant:
0:36                  0 (const uint)
0:36              direct index ( temp uint)
0:36                'dti' ( in 3-component vector of uint)
0:36                Constant:
0:36                  0 (const int)
0:36            Constant:
0:36              0 (const int)
0:36          Sequence
0:36            Constant:
0:36              0 (const int)
0:36            Constant:
0:36              1 (const int)
0:36        subgroupQuadBroadcast ( temp 2-component vector of uint)
0:36          vector swizzle ( temp 2-component vector of uint)
0:36            u: direct index for structure ( temp 4-component vector of uint)
0:36              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:36                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:36                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:36                  Constant:
0:36                    0 (const uint)
0:36                direct index ( temp uint)
0:36                  'dti' ( in 3-component vector of uint)
0:36                  Constant:
0:36                    0 (const int)
0:36              Constant:
0:36                0 (const int)
0:36            Sequence
0:36              Constant:
0:36                0 (const int)
0:36              Constant:
0:36                1 (const int)
0:36          Constant:
0:36            1 (const uint)
0:37      move second child to first child ( temp 3-component vector of uint)
0:37        vector swizzle ( temp 3-component vector of uint)
0:37          u: direct index for structure ( temp 4-component vector of uint)
0:37            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:37              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:37                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:37                Constant:
0:37                  0 (const uint)
0:37              direct index ( temp uint)
0:37                'dti' ( in 3-component vector of uint)
0:37                Constant:
0:37                  0 (const int)
0:37            Constant:
0:37              0 (const int)
0:37          Sequence
0:37            Constant:
0:37              0 (const int)
0:37            Constant:
0:37              1 (const int)
0:37            Constant:
0:37              2 (const int)
0:37        subgroupQuadBroadcast ( temp 3-component vector of uint)
0:37          vector swizzle ( temp 3-component vector of uint)
0:37            u: direct index for structure ( temp 4-component vector of uint)
0:37              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:37                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:37                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:37                  Constant:
0:37                    0 (const uint)
0:37                direct index ( temp uint)
0:37                  'dti' ( in 3-component vector of uint)
0:37                  Constant:
0:37                    0 (const int)
0:37              Constant:
0:37                0 (const int)
0:37            Sequence
0:37              Constant:
0:37                0 (const int)
0:37              Constant:
0:37                1 (const int)
0:37              Constant:
0:37                2 (const int)
0:37          Constant:
0:37            1 (const uint)
0:39      move second child to first child ( temp 4-component vector of int)
0:39        i: direct index for structure ( temp 4-component vector of int)
0:39          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:39            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:39              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:39              Constant:
0:39                0 (const uint)
0:39            direct index ( temp uint)
0:39              'dti' ( in 3-component vector of uint)
0:39              Constant:
0:39                0 (const int)
0:39          Constant:
0:39            1 (const int)
0:39        subgroupQuadBroadcast ( temp 4-component vector of int)
0:39          i: direct index for structure ( temp 4-component vector of int)
0:39            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:39              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:39                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:39                Constant:
0:39                  0 (const uint)
0:39              direct index ( temp uint)
0:39                'dti' ( in 3-component vector of uint)
0:39                Constant:
0:39                  0 (const int)
0:39            Constant:
0:39              1 (const int)
0:39          Constant:
0:39            1 (const uint)
0:40      move second child to first child ( temp int)
0:40        direct index ( temp int)
0:40          i: direct index for structure ( temp 4-component vector of int)
0:40            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:40              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:40                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:40                Constant:
0:40                  0 (const uint)
0:40              direct index ( temp uint)
0:40                'dti' ( in 3-component vector of uint)
0:40                Constant:
0:40                  0 (const int)
0:40            Constant:
0:40              1 (const int)
0:40          Constant:
0:40            0 (const int)
0:40        subgroupQuadBroadcast ( temp int)
0:40          direct index ( temp int)
0:40            i: direct index for structure ( temp 4-component vector of int)
0:40              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:40                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:40                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:40                  Constant:
0:40                    0 (const uint)
0:40                direct index ( temp uint)
0:40                  'dti' ( in 3-component vector of uint)
0:40                  Constant:
0:40                    0 (const int)
0:40              Constant:
0:40                1 (const int)
0:40            Constant:
0:40              0 (const int)
0:40          Constant:
0:40            1 (const uint)
0:41      move second child to first child ( temp 2-component vector of int)
0:41        vector swizzle ( temp 2-component vector of int)
0:41          i: direct index for structure ( temp 4-component vector of int)
0:41            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:41              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:41                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:41                Constant:
0:41                  0 (const uint)
0:41              direct index ( temp uint)
0:41                'dti' ( in 3-component vector of uint)
0:41                Constant:
0:41                  0 (const int)
0:41            Constant:
0:41              1 (const int)
0:41          Sequence
0:41            Constant:
0:41              0 (const int)
0:41            Constant:
0:41              1 (const int)
0:41        subgroupQuadBroadcast ( temp 2-component vector of int)
0:41          vector swizzle ( temp 2-component vector of int)
0:41            i: direct index for structure ( temp 4-component vector of int)
0:41              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:41                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:41                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:41                  Constant:
0:41                    0 (const uint)
0:41                direct index ( temp uint)
0:41                  'dti' ( in 3-component vector of uint)
0:41                  Constant:
0:41                    0 (const int)
0:41              Constant:
0:41                1 (const int)
0:41            Sequence
0:41              Constant:
0:41                0 (const int)
0:41              Constant:
0:41                1 (const int)
0:41          Constant:
0:41            1 (const uint)
0:42      move second child to first child ( temp 3-component vector of int)
0:42        vector swizzle ( temp 3-component vector of int)
0:42          i: direct index for structure ( temp 4-component vector of int)
0:42            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:42              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:42                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:42                Constant:
0:42                  0 (const uint)
0:42              direct index ( temp uint)
0:42                'dti' ( in 3-component vector of uint)
0:42                Constant:
0:42                  0 (const int)
0:42            Constant:
0:42              1 (const int)
0:42          Sequence
0:42            Constant:
0:42              0 (const int)
0:42            Constant:
0:42              1 (const int)
0:42            Constant:
0:42              2 (const int)
0:42        subgroupQuadBroadcast ( temp 3-component vector of int)
0:42          vector swizzle ( temp 3-component vector of int)
0:42            i: direct index for structure ( temp 4-component vector of int)
0:42              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:42                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:42                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:42                  Constant:
0:42                    0 (const uint)
0:42                direct index ( temp uint)
0:42                  'dti' ( in 3-component vector of uint)
0:42                  Constant:
0:42                    0 (const int)
0:42              Constant:
0:42                1 (const int)
0:42            Sequence
0:42              Constant:
0:42                0 (const int)
0:42              Constant:
0:42                1 (const int)
0:42              Constant:
0:42                2 (const int)
0:42          Constant:
0:42            1 (const uint)
0:44      move second child to first child ( temp 4-component vector of float)
0:44        f: direct index for structure ( temp 4-component vector of float)
0:44          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:44            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:44              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:44              Constant:
0:44                0 (const uint)
0:44            direct index ( temp uint)
0:44              'dti' ( in 3-component vector of uint)
0:44              Constant:
0:44                0 (const int)
0:44          Constant:
0:44            2 (const int)
0:44        subgroupQuadBroadcast ( temp 4-component vector of float)
0:44          f: direct index for structure ( temp 4-component vector of float)
0:44            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:44              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:44                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:44                Constant:
0:44                  0 (const uint)
0:44              direct index ( temp uint)
0:44                'dti' ( in 3-component vector of uint)
0:44                Constant:
0:44                  0 (const int)
0:44            Constant:
0:44              2 (const int)
0:44          Constant:
0:44            1 (const uint)
0:45      move second child to first child ( temp float)
0:45        direct index ( temp float)
0:45          f: direct index for structure ( temp 4-component vector of float)
0:45            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:45              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:45                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:45                Constant:
0:45                  0 (const uint)
0:45              direct index ( temp uint)
0:45                'dti' ( in 3-component vector of uint)
0:45                Constant:
0:45                  0 (const int)
0:45            Constant:
0:45              2 (const int)
0:45          Constant:
0:45            0 (const int)
0:45        subgroupQuadBroadcast ( temp float)
0:45          direct index ( temp float)
0:45            f: direct index for structure ( temp 4-component vector of float)
0:45              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:45                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:45                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:45                  Constant:
0:45                    0 (const uint)
0:45                direct index ( temp uint)
0:45                  'dti' ( in 3-component vector of uint)
0:45                  Constant:
0:45                    0 (const int)
0:45              Constant:
0:45                2 (const int)
0:45            Constant:
0:45              0 (const int)
0:45          Constant:
0:45            1 (const uint)
0:46      move second child to first child ( temp 2-component vector of float)
0:46        vector swizzle ( temp 2-component vector of float)
0:46          f: direct index for structure ( temp 4-component vector of float)
0:46            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:46              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:46                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:46                Constant:
0:46                  0 (const uint)
0:46              direct index ( temp uint)
0:46                'dti' ( in 3-component vector of uint)
0:46                Constant:
0:46                  0 (const int)
0:46            Constant:
0:46              2 (const int)
0:46          Sequence
0:46            Constant:
0:46              0 (const int)
0:46            Constant:
0:46              1 (const int)
0:46        subgroupQuadBroadcast ( temp 2-component vector of float)
0:46          vector swizzle ( temp 2-component vector of float)
0:46            f: direct index for structure ( temp 4-component vector of float)
0:46              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:46                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:46                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:46                  Constant:
0:46                    0 (const uint)
0:46                direct index ( temp uint)
0:46                  'dti' ( in 3-component vector of uint)
0:46                  Constant:
0:46                    0 (const int)
0:46              Constant:
0:46                2 (const int)
0:46            Sequence
0:46              Constant:
0:46                0 (const int)
0:46              Constant:
0:46                1 (const int)
0:46          Constant:
0:46            1 (const uint)
0:47      move second child to first child ( temp 3-component vector of float)
0:47        vector swizzle ( temp 3-component vector of float)
0:47          f: direct index for structure ( temp 4-component vector of float)
0:47            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:47              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:47                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:47                Constant:
0:47                  0 (const uint)
0:47              direct index ( temp uint)
0:47                'dti' ( in 3-component vector of uint)
0:47                Constant:
0:47                  0 (const int)
0:47            Constant:
0:47              2 (const int)
0:47          Sequence
0:47            Constant:
0:47              0 (const int)
0:47            Constant:
0:47              1 (const int)
0:47            Constant:
0:47              2 (const int)
0:47        subgroupQuadBroadcast ( temp 3-component vector of float)
0:47          vector swizzle ( temp 3-component vector of float)
0:47            f: direct index for structure ( temp 4-component vector of float)
0:47              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:47                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:47                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:47                  Constant:
0:47                    0 (const uint)
0:47                direct index ( temp uint)
0:47                  'dti' ( in 3-component vector of uint)
0:47                  Constant:
0:47                    0 (const int)
0:47              Constant:
0:47                2 (const int)
0:47            Sequence
0:47              Constant:
0:47                0 (const int)
0:47              Constant:
0:47                1 (const int)
0:47              Constant:
0:47                2 (const int)
0:47          Constant:
0:47            1 (const uint)
0:49      move second child to first child ( temp 4-component vector of double)
0:49        d: direct index for structure ( temp 4-component vector of double)
0:49          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:49            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:49              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:49              Constant:
0:49                0 (const uint)
0:49            direct index ( temp uint)
0:49              'dti' ( in 3-component vector of uint)
0:49              Constant:
0:49                0 (const int)
0:49          Constant:
0:49            3 (const int)
0:49        subgroupQuadBroadcast ( temp 4-component vector of double)
0:49          d: direct index for structure ( temp 4-component vector of double)
0:49            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:49              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:49                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:49                Constant:
0:49                  0 (const uint)
0:49              direct index ( temp uint)
0:49                'dti' ( in 3-component vector of uint)
0:49                Constant:
0:49                  0 (const int)
0:49            Constant:
0:49              3 (const int)
0:49          Constant:
0:49            1 (const uint)
0:50      move second child to first child ( temp double)
0:50        direct index ( temp double)
0:50          d: direct index for structure ( temp 4-component vector of double)
0:50            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:50              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:50                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:50                Constant:
0:50                  0 (const uint)
0:50              direct index ( temp uint)
0:50                'dti' ( in 3-component vector of uint)
0:50                Constant:
0:50                  0 (const int)
0:50            Constant:
0:50              3 (const int)
0:50          Constant:
0:50            0 (const int)
0:50        subgroupQuadBroadcast ( temp double)
0:50          direct index ( temp double)
0:50            d: direct index for structure ( temp 4-component vector of double)
0:50              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:50                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:50                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:50                  Constant:
0:50                    0 (const uint)
0:50                direct index ( temp uint)
0:50                  'dti' ( in 3-component vector of uint)
0:50                  Constant:
0:50                    0 (const int)
0:50              Constant:
0:50                3 (const int)
0:50            Constant:
0:50              0 (const int)
0:50          Constant:
0:50            1 (const uint)
0:51      move second child to first child ( temp 2-component vector of double)
0:51        vector swizzle ( temp 2-component vector of double)
0:51          d: direct index for structure ( temp 4-component vector of double)
0:51            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:51              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:51                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:51                Constant:
0:51                  0 (const uint)
0:51              direct index ( temp uint)
0:51                'dti' ( in 3-component vector of uint)
0:51                Constant:
0:51                  0 (const int)
0:51            Constant:
0:51              3 (const int)
0:51          Sequence
0:51            Constant:
0:51              0 (const int)
0:51            Constant:
0:51              1 (const int)
0:51        subgroupQuadBroadcast ( temp 2-component vector of double)
0:51          vector swizzle ( temp 2-component vector of double)
0:51            d: direct index for structure ( temp 4-component vector of double)
0:51              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:51                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:51                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:51                  Constant:
0:51                    0 (const uint)
0:51                direct index ( temp uint)
0:51                  'dti' ( in 3-component vector of uint)
0:51                  Constant:
0:51                    0 (const int)
0:51              Constant:
0:51                3 (const int)
0:51            Sequence
0:51              Constant:
0:51                0 (const int)
0:51              Constant:
0:51                1 (const int)
0:51          Constant:
0:51            1 (const uint)
0:52      move second child to first child ( temp 3-component vector of double)
0:52        vector swizzle ( temp 3-component vector of double)
0:52          d: direct index for structure ( temp 4-component vector of double)
0:52            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:52              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:52                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:52                Constant:
0:52                  0 (const uint)
0:52              direct index ( temp uint)
0:52                'dti' ( in 3-component vector of uint)
0:52                Constant:
0:52                  0 (const int)
0:52            Constant:
0:52              3 (const int)
0:52          Sequence
0:52            Constant:
0:52              0 (const int)
0:52            Constant:
0:52              1 (const int)
0:52            Constant:
0:52              2 (const int)
0:52        subgroupQuadBroadcast ( temp 3-component vector of double)
0:52          vector swizzle ( temp 3-component vector of double)
0:52            d: direct index for structure ( temp 4-component vector of double)
0:52              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:52                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:52                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:52                  Constant:
0:52                    0 (const uint)
0:52                direct index ( temp uint)
0:52                  'dti' ( in 3-component vector of uint)
0:52                  Constant:
0:52                    0 (const int)
0:52              Constant:
0:52                3 (const int)
0:52            Sequence
0:52              Constant:
0:52                0 (const int)
0:52              Constant:
0:52                1 (const int)
0:52              Constant:
0:52                2 (const int)
0:52          Constant:
0:52            1 (const uint)
0:54      move second child to first child ( temp 4-component vector of uint)
0:54        u: direct index for structure ( temp 4-component vector of uint)
0:54          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:54            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:54              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:54              Constant:
0:54                0 (const uint)
0:54            direct index ( temp uint)
0:54              'dti' ( in 3-component vector of uint)
0:54              Constant:
0:54                0 (const int)
0:54          Constant:
0:54            0 (const int)
0:54        subgroupQuadBroadcast ( temp 4-component vector of uint)
0:54          u: direct index for structure ( temp 4-component vector of uint)
0:54            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:54              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:54                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:54                Constant:
0:54                  0 (const uint)
0:54              direct index ( temp uint)
0:54                'dti' ( in 3-component vector of uint)
0:54                Constant:
0:54                  0 (const int)
0:54            Constant:
0:54              0 (const int)
0:54          Constant:
0:54            2 (const uint)
0:55      move second child to first child ( temp uint)
0:55        direct index ( temp uint)
0:55          u: direct index for structure ( temp 4-component vector of uint)
0:55            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:55              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:55                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:55                Constant:
0:55                  0 (const uint)
0:55              direct index ( temp uint)
0:55                'dti' ( in 3-component vector of uint)
0:55                Constant:
0:55                  0 (const int)
0:55            Constant:
0:55              0 (const int)
0:55          Constant:
0:55            0 (const int)
0:55        subgroupQuadBroadcast ( temp uint)
0:55          direct index ( temp uint)
0:55            u: direct index for structure ( temp 4-component vector of uint)
0:55              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:55                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:55                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:55                  Constant:
0:55                    0 (const uint)
0:55                direct index ( temp uint)
0:55                  'dti' ( in 3-component vector of uint)
0:55                  Constant:
0:55                    0 (const int)
0:55              Constant:
0:55                0 (const int)
0:55            Constant:
0:55              0 (const int)
0:55          Constant:
0:55            2 (const uint)
0:56      move second child to first child ( temp 2-component vector of uint)
0:56        vector swizzle ( temp 2-component vector of uint)
0:56          u: direct index for structure ( temp 4-component vector of uint)
0:56            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:56              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:56                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:56                Constant:
0:56                  0 (const uint)
0:56              direct index ( temp uint)
0:56                'dti' ( in 3-component vector of uint)
0:56                Constant:
0:56                  0 (const int)
0:56            Constant:
0:56              0 (const int)
0:56          Sequence
0:56            Constant:
0:56              0 (const int)
0:56            Constant:
0:56              1 (const int)
0:56        subgroupQuadBroadcast ( temp 2-component vector of uint)
0:56          vector swizzle ( temp 2-component vector of uint)
0:56            u: direct index for structure ( temp 4-component vector of uint)
0:56              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:56                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:56                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:56                  Constant:
0:56                    0 (const uint)
0:56                direct index ( temp uint)
0:56                  'dti' ( in 3-component vector of uint)
0:56                  Constant:
0:56                    0 (const int)
0:56              Constant:
0:56                0 (const int)
0:56            Sequence
0:56              Constant:
0:56                0 (const int)
0:56              Constant:
0:56                1 (const int)
0:56          Constant:
0:56            2 (const uint)
0:57      move second child to first child ( temp 3-component vector of uint)
0:57        vector swizzle ( temp 3-component vector of uint)
0:57          u: direct index for structure ( temp 4-component vector of uint)
0:57            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:57              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:57                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:57                Constant:
0:57                  0 (const uint)
0:57              direct index ( temp uint)
0:57                'dti' ( in 3-component vector of uint)
0:57                Constant:
0:57                  0 (const int)
0:57            Constant:
0:57              0 (const int)
0:57          Sequence
0:57            Constant:
0:57              0 (const int)
0:57            Constant:
0:57              1 (const int)
0:57            Constant:
0:57              2 (const int)
0:57        subgroupQuadBroadcast ( temp 3-component vector of uint)
0:57          vector swizzle ( temp 3-component vector of uint)
0:57            u: direct index for structure ( temp 4-component vector of uint)
0:57              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:57                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:57                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:57                  Constant:
0:57                    0 (const uint)
0:57                direct index ( temp uint)
0:57                  'dti' ( in 3-component vector of uint)
0:57                  Constant:
0:57                    0 (const int)
0:57              Constant:
0:57                0 (const int)
0:57            Sequence
0:57              Constant:
0:57                0 (const int)
0:57              Constant:
0:57                1 (const int)
0:57              Constant:
0:57                2 (const int)
0:57          Constant:
0:57            2 (const uint)
0:59      move second child to first child ( temp 4-component vector of int)
0:59        i: direct index for structure ( temp 4-component vector of int)
0:59          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:59            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:59              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:59              Constant:
0:59                0 (const uint)
0:59            direct index ( temp uint)
0:59              'dti' ( in 3-component vector of uint)
0:59              Constant:
0:59                0 (const int)
0:59          Constant:
0:59            1 (const int)
0:59        subgroupQuadBroadcast ( temp 4-component vector of int)
0:59          i: direct index for structure ( temp 4-component vector of int)
0:59            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:59              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:59                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:59                Constant:
0:59                  0 (const uint)
0:59              direct index ( temp uint)
0:59                'dti' ( in 3-component vector of uint)
0:59                Constant:
0:59                  0 (const int)
0:59            Constant:
0:59              1 (const int)
0:59          Constant:
0:59            2 (const uint)
0:60      move second child to first child ( temp int)
0:60        direct index ( temp int)
0:60          i: direct index for structure ( temp 4-component vector of int)
0:60            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:60              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:60                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:60                Constant:
0:60                  0 (const uint)
0:60              direct index ( temp uint)
0:60                'dti' ( in 3-component vector of uint)
0:60                Constant:
0:60                  0 (const int)
0:60            Constant:
0:60              1 (const int)
0:60          Constant:
0:60            0 (const int)
0:60        subgroupQuadBroadcast ( temp int)
0:60          direct index ( temp int)
0:60            i: direct index for structure ( temp 4-component vector of int)
0:60              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:60                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:60                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:60                  Constant:
0:60                    0 (const uint)
0:60                direct index ( temp uint)
0:60                  'dti' ( in 3-component vector of uint)
0:60                  Constant:
0:60                    0 (const int)
0:60              Constant:
0:60                1 (const int)
0:60            Constant:
0:60              0 (const int)
0:60          Constant:
0:60            2 (const uint)
0:61      move second child to first child ( temp 2-component vector of int)
0:61        vector swizzle ( temp 2-component vector of int)
0:61          i: direct index for structure ( temp 4-component vector of int)
0:61            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:61              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:61                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:61                Constant:
0:61                  0 (const uint)
0:61              direct index ( temp uint)
0:61                'dti' ( in 3-component vector of uint)
0:61                Constant:
0:61                  0 (const int)
0:61            Constant:
0:61              1 (const int)
0:61          Sequence
0:61            Constant:
0:61              0 (const int)
0:61            Constant:
0:61              1 (const int)
0:61        subgroupQuadBroadcast ( temp 2-component vector of int)
0:61          vector swizzle ( temp 2-component vector of int)
0:61            i: direct index for structure ( temp 4-component vector of int)
0:61              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:61                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:61                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:61                  Constant:
0:61                    0 (const uint)
0:61                direct index ( temp uint)
0:61                  'dti' ( in 3-component vector of uint)
0:61                  Constant:
0:61                    0 (const int)
0:61              Constant:
0:61                1 (const int)
0:61            Sequence
0:61              Constant:
0:61                0 (const int)
0:61              Constant:
0:61                1 (const int)
0:61          Constant:
0:61            2 (const uint)
0:62      move second child to first child ( temp 3-component vector of int)
0:62        vector swizzle ( temp 3-component vector of int)
0:62          i: direct index for structure ( temp 4-component vector of int)
0:62            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:62              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:62                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:62                Constant:
0:62                  0 (const uint)
0:62              direct index ( temp uint)
0:62                'dti' ( in 3-component vector of uint)
0:62                Constant:
0:62                  0 (const int)
0:62            Constant:
0:62              1 (const int)
0:62          Sequence
0:62            Constant:
0:62              0 (const int)
0:62            Constant:
0:62              1 (const int)
0:62            Constant:
0:62              2 (const int)
0:62        subgroupQuadBroadcast ( temp 3-component vector of int)
0:62          vector swizzle ( temp 3-component vector of int)
0:62            i: direct index for structure ( temp 4-component vector of int)
0:62              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:62                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:62                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:62                  Constant:
0:62                    0 (const uint)
0:62                direct index ( temp uint)
0:62                  'dti' ( in 3-component vector of uint)
0:62                  Constant:
0:62                    0 (const int)
0:62              Constant:
0:62                1 (const int)
0:62            Sequence
0:62              Constant:
0:62                0 (const int)
0:62              Constant:
0:62                1 (const int)
0:62              Constant:
0:62                2 (const int)
0:62          Constant:
0:62            2 (const uint)
0:64      move second child to first child ( temp 4-component vector of float)
0:64        f: direct index for structure ( temp 4-component vector of float)
0:64          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:64            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:64              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:64              Constant:
0:64                0 (const uint)
0:64            direct index ( temp uint)
0:64              'dti' ( in 3-component vector of uint)
0:64              Constant:
0:64                0 (const int)
0:64          Constant:
0:64            2 (const int)
0:64        subgroupQuadBroadcast ( temp 4-component vector of float)
0:64          f: direct index for structure ( temp 4-component vector of float)
0:64            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:64              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:64                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:64                Constant:
0:64                  0 (const uint)
0:64              direct index ( temp uint)
0:64                'dti' ( in 3-component vector of uint)
0:64                Constant:
0:64                  0 (const int)
0:64            Constant:
0:64              2 (const int)
0:64          Constant:
0:64            2 (const uint)
0:65      move second child to first child ( temp float)
0:65        direct index ( temp float)
0:65          f: direct index for structure ( temp 4-component vector of float)
0:65            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:65              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:65                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:65                Constant:
0:65                  0 (const uint)
0:65              direct index ( temp uint)
0:65                'dti' ( in 3-component vector of uint)
0:65                Constant:
0:65                  0 (const int)
0:65            Constant:
0:65              2 (const int)
0:65          Constant:
0:65            0 (const int)
0:65        subgroupQuadBroadcast ( temp float)
0:65          direct index ( temp float)
0:65            f: direct index for structure ( temp 4-component vector of float)
0:65              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:65                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:65                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:65                  Constant:
0:65                    0 (const uint)
0:65                direct index ( temp uint)
0:65                  'dti' ( in 3-component vector of uint)
0:65                  Constant:
0:65                    0 (const int)
0:65              Constant:
0:65                2 (const int)
0:65            Constant:
0:65              0 (const int)
0:65          Constant:
0:65            2 (const uint)
0:66      move second child to first child ( temp 2-component vector of float)
0:66        vector swizzle ( temp 2-component vector of float)
0:66          f: direct index for structure ( temp 4-component vector of float)
0:66            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:66              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:66                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:66                Constant:
0:66                  0 (const uint)
0:66              direct index ( temp uint)
0:66                'dti' ( in 3-component vector of uint)
0:66                Constant:
0:66                  0 (const int)
0:66            Constant:
0:66              2 (const int)
0:66          Sequence
0:66            Constant:
0:66              0 (const int)
0:66            Constant:
0:66              1 (const int)
0:66        subgroupQuadBroadcast ( temp 2-component vector of float)
0:66          vector swizzle ( temp 2-component vector of float)
0:66            f: direct index for structure ( temp 4-component vector of float)
0:66              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:66                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:66                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:66                  Constant:
0:66                    0 (const uint)
0:66                direct index ( temp uint)
0:66                  'dti' ( in 3-component vector of uint)
0:66                  Constant:
0:66                    0 (const int)
0:66              Constant:
0:66                2 (const int)
0:66            Sequence
0:66              Constant:
0:66                0 (const int)
0:66              Constant:
0:66                1 (const int)
0:66          Constant:
0:66            2 (const uint)
0:67      move second child to first child ( temp 3-component vector of float)
0:67        vector swizzle ( temp 3-component vector of float)
0:67          f: direct index for structure ( temp 4-component vector of float)
0:67            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:67              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:67                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:67                Constant:
0:67                  0 (const uint)
0:67              direct index ( temp uint)
0:67                'dti' ( in 3-component vector of uint)
0:67                Constant:
0:67                  0 (const int)
0:67            Constant:
0:67              2 (const int)
0:67          Sequence
0:67            Constant:
0:67              0 (const int)
0:67            Constant:
0:67              1 (const int)
0:67            Constant:
0:67              2 (const int)
0:67        subgroupQuadBroadcast ( temp 3-component vector of float)
0:67          vector swizzle ( temp 3-component vector of float)
0:67            f: direct index for structure ( temp 4-component vector of float)
0:67              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:67                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:67                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:67                  Constant:
0:67                    0 (const uint)
0:67                direct index ( temp uint)
0:67                  'dti' ( in 3-component vector of uint)
0:67                  Constant:
0:67                    0 (const int)
0:67              Constant:
0:67                2 (const int)
0:67            Sequence
0:67              Constant:
0:67                0 (const int)
0:67              Constant:
0:67                1 (const int)
0:67              Constant:
0:67                2 (const int)
0:67          Constant:
0:67            2 (const uint)
0:69      move second child to first child ( temp 4-component vector of double)
0:69        d: direct index for structure ( temp 4-component vector of double)
0:69          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:69            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:69              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:69              Constant:
0:69                0 (const uint)
0:69            direct index ( temp uint)
0:69              'dti' ( in 3-component vector of uint)
0:69              Constant:
0:69                0 (const int)
0:69          Constant:
0:69            3 (const int)
0:69        subgroupQuadBroadcast ( temp 4-component vector of double)
0:69          d: direct index for structure ( temp 4-component vector of double)
0:69            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:69              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:69                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:69                Constant:
0:69                  0 (const uint)
0:69              direct index ( temp uint)
0:69                'dti' ( in 3-component vector of uint)
0:69                Constant:
0:69                  0 (const int)
0:69            Constant:
0:69              3 (const int)
0:69          Constant:
0:69            2 (const uint)
0:70      move second child to first child ( temp double)
0:70        direct index ( temp double)
0:70          d: direct index for structure ( temp 4-component vector of double)
0:70            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:70              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:70                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:70                Constant:
0:70                  0 (const uint)
0:70              direct index ( temp uint)
0:70                'dti' ( in 3-component vector of uint)
0:70                Constant:
0:70                  0 (const int)
0:70            Constant:
0:70              3 (const int)
0:70          Constant:
0:70            0 (const int)
0:70        subgroupQuadBroadcast ( temp double)
0:70          direct index ( temp double)
0:70            d: direct index for structure ( temp 4-component vector of double)
0:70              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:70                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:70                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:70                  Constant:
0:70                    0 (const uint)
0:70                direct index ( temp uint)
0:70                  'dti' ( in 3-component vector of uint)
0:70                  Constant:
0:70                    0 (const int)
0:70              Constant:
0:70                3 (const int)
0:70            Constant:
0:70              0 (const int)
0:70          Constant:
0:70            2 (const uint)
0:71      move second child to first child ( temp 2-component vector of double)
0:71        vector swizzle ( temp 2-component vector of double)
0:71          d: direct index for structure ( temp 4-component vector of double)
0:71            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:71              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:71                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:71                Constant:
0:71                  0 (const uint)
0:71              direct index ( temp uint)
0:71                'dti' ( in 3-component vector of uint)
0:71                Constant:
0:71                  0 (const int)
0:71            Constant:
0:71              3 (const int)
0:71          Sequence
0:71            Constant:
0:71              0 (const int)
0:71            Constant:
0:71              1 (const int)
0:71        subgroupQuadBroadcast ( temp 2-component vector of double)
0:71          vector swizzle ( temp 2-component vector of double)
0:71            d: direct index for structure ( temp 4-component vector of double)
0:71              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:71                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:71                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:71                  Constant:
0:71                    0 (const uint)
0:71                direct index ( temp uint)
0:71                  'dti' ( in 3-component vector of uint)
0:71                  Constant:
0:71                    0 (const int)
0:71              Constant:
0:71                3 (const int)
0:71            Sequence
0:71              Constant:
0:71                0 (const int)
0:71              Constant:
0:71                1 (const int)
0:71          Constant:
0:71            2 (const uint)
0:72      move second child to first child ( temp 3-component vector of double)
0:72        vector swizzle ( temp 3-component vector of double)
0:72          d: direct index for structure ( temp 4-component vector of double)
0:72            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:72              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:72                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:72                Constant:
0:72                  0 (const uint)
0:72              direct index ( temp uint)
0:72                'dti' ( in 3-component vector of uint)
0:72                Constant:
0:72                  0 (const int)
0:72            Constant:
0:72              3 (const int)
0:72          Sequence
0:72            Constant:
0:72              0 (const int)
0:72            Constant:
0:72              1 (const int)
0:72            Constant:
0:72              2 (const int)
0:72        subgroupQuadBroadcast ( temp 3-component vector of double)
0:72          vector swizzle ( temp 3-component vector of double)
0:72            d: direct index for structure ( temp 4-component vector of double)
0:72              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:72                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:72                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:72                  Constant:
0:72                    0 (const uint)
0:72                direct index ( temp uint)
0:72                  'dti' ( in 3-component vector of uint)
0:72                  Constant:
0:72                    0 (const int)
0:72              Constant:
0:72                3 (const int)
0:72            Sequence
0:72              Constant:
0:72                0 (const int)
0:72              Constant:
0:72                1 (const int)
0:72              Constant:
0:72                2 (const int)
0:72          Constant:
0:72            2 (const uint)
0:74      move second child to first child ( temp 4-component vector of uint)
0:74        u: direct index for structure ( temp 4-component vector of uint)
0:74          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:74            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:74              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:74              Constant:
0:74                0 (const uint)
0:74            direct index ( temp uint)
0:74              'dti' ( in 3-component vector of uint)
0:74              Constant:
0:74                0 (const int)
0:74          Constant:
0:74            0 (const int)
0:74        subgroupQuadBroadcast ( temp 4-component vector of uint)
0:74          u: direct index for structure ( temp 4-component vector of uint)
0:74            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:74              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:74                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:74                Constant:
0:74                  0 (const uint)
0:74              direct index ( temp uint)
0:74                'dti' ( in 3-component vector of uint)
0:74                Constant:
0:74                  0 (const int)
0:74            Constant:
0:74              0 (const int)
0:74          Constant:
0:74            3 (const uint)
0:75      move second child to first child ( temp uint)
0:75        direct index ( temp uint)
0:75          u: direct index for structure ( temp 4-component vector of uint)
0:75            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:75              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:75                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:75                Constant:
0:75                  0 (const uint)
0:75              direct index ( temp uint)
0:75                'dti' ( in 3-component vector of uint)
0:75                Constant:
0:75                  0 (const int)
0:75            Constant:
0:75              0 (const int)
0:75          Constant:
0:75            0 (const int)
0:75        subgroupQuadBroadcast ( temp uint)
0:75          direct index ( temp uint)
0:75            u: direct index for structure ( temp 4-component vector of uint)
0:75              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:75                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:75                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:75                  Constant:
0:75                    0 (const uint)
0:75                direct index ( temp uint)
0:75                  'dti' ( in 3-component vector of uint)
0:75                  Constant:
0:75                    0 (const int)
0:75              Constant:
0:75                0 (const int)
0:75            Constant:
0:75              0 (const int)
0:75          Constant:
0:75            3 (const uint)
0:76      move second child to first child ( temp 2-component vector of uint)
0:76        vector swizzle ( temp 2-component vector of uint)
0:76          u: direct index for structure ( temp 4-component vector of uint)
0:76            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:76              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:76                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:76                Constant:
0:76                  0 (const uint)
0:76              direct index ( temp uint)
0:76                'dti' ( in 3-component vector of uint)
0:76                Constant:
0:76                  0 (const int)
0:76            Constant:
0:76              0 (const int)
0:76          Sequence
0:76            Constant:
0:76              0 (const int)
0:76            Constant:
0:76              1 (const int)
0:76        subgroupQuadBroadcast ( temp 2-component vector of uint)
0:76          vector swizzle ( temp 2-component vector of uint)
0:76            u: direct index for structure ( temp 4-component vector of uint)
0:76              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:76                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:76                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:76                  Constant:
0:76                    0 (const uint)
0:76                direct index ( temp uint)
0:76                  'dti' ( in 3-component vector of uint)
0:76                  Constant:
0:76                    0 (const int)
0:76              Constant:
0:76                0 (const int)
0:76            Sequence
0:76              Constant:
0:76                0 (const int)
0:76              Constant:
0:76                1 (const int)
0:76          Constant:
0:76            3 (const uint)
0:77      move second child to first child ( temp 3-component vector of uint)
0:77        vector swizzle ( temp 3-component vector of uint)
0:77          u: direct index for structure ( temp 4-component vector of uint)
0:77            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:77              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:77                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:77                Constant:
0:77                  0 (const uint)
0:77              direct index ( temp uint)
0:77                'dti' ( in 3-component vector of uint)
0:77                Constant:
0:77                  0 (const int)
0:77            Constant:
0:77              0 (const int)
0:77          Sequence
0:77            Constant:
0:77              0 (const int)
0:77            Constant:
0:77              1 (const int)
0:77            Constant:
0:77              2 (const int)
0:77        subgroupQuadBroadcast ( temp 3-component vector of uint)
0:77          vector swizzle ( temp 3-component vector of uint)
0:77            u: direct index for structure ( temp 4-component vector of uint)
0:77              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:77                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:77                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:77                  Constant:
0:77                    0 (const uint)
0:77                direct index ( temp uint)
0:77                  'dti' ( in 3-component vector of uint)
0:77                  Constant:
0:77                    0 (const int)
0:77              Constant:
0:77                0 (const int)
0:77            Sequence
0:77              Constant:
0:77                0 (const int)
0:77              Constant:
0:77                1 (const int)
0:77              Constant:
0:77                2 (const int)
0:77          Constant:
0:77            3 (const uint)
0:79      move second child to first child ( temp 4-component vector of int)
0:79        i: direct index for structure ( temp 4-component vector of int)
0:79          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:79            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:79              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:79              Constant:
0:79                0 (const uint)
0:79            direct index ( temp uint)
0:79              'dti' ( in 3-component vector of uint)
0:79              Constant:
0:79                0 (const int)
0:79          Constant:
0:79            1 (const int)
0:79        subgroupQuadBroadcast ( temp 4-component vector of int)
0:79          i: direct index for structure ( temp 4-component vector of int)
0:79            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:79              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:79                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:79                Constant:
0:79                  0 (const uint)
0:79              direct index ( temp uint)
0:79                'dti' ( in 3-component vector of uint)
0:79                Constant:
0:79                  0 (const int)
0:79            Constant:
0:79              1 (const int)
0:79          Constant:
0:79            3 (const uint)
0:80      move second child to first child ( temp int)
0:80        direct index ( temp int)
0:80          i: direct index for structure ( temp 4-component vector of int)
0:80            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:80              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:80                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:80                Constant:
0:80                  0 (const uint)
0:80              direct index ( temp uint)
0:80                'dti' ( in 3-component vector of uint)
0:80                Constant:
0:80                  0 (const int)
0:80            Constant:
0:80              1 (const int)
0:80          Constant:
0:80            0 (const int)
0:80        subgroupQuadBroadcast ( temp int)
0:80          direct index ( temp int)
0:80            i: direct index for structure ( temp 4-component vector of int)
0:80              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:80                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:80                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:80                  Constant:
0:80                    0 (const uint)
0:80                direct index ( temp uint)
0:80                  'dti' ( in 3-component vector of uint)
0:80                  Constant:
0:80                    0 (const int)
0:80              Constant:
0:80                1 (const int)
0:80            Constant:
0:80              0 (const int)
0:80          Constant:
0:80            3 (const uint)
0:81      move second child to first child ( temp 2-component vector of int)
0:81        vector swizzle ( temp 2-component vector of int)
0:81          i: direct index for structure ( temp 4-component vector of int)
0:81            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:81              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:81                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:81                Constant:
0:81                  0 (const uint)
0:81              direct index ( temp uint)
0:81                'dti' ( in 3-component vector of uint)
0:81                Constant:
0:81                  0 (const int)
0:81            Constant:
0:81              1 (const int)
0:81          Sequence
0:81            Constant:
0:81              0 (const int)
0:81            Constant:
0:81              1 (const int)
0:81        subgroupQuadBroadcast ( temp 2-component vector of int)
0:81          vector swizzle ( temp 2-component vector of int)
0:81            i: direct index for structure ( temp 4-component vector of int)
0:81              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:81                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:81                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:81                  Constant:
0:81                    0 (const uint)
0:81                direct index ( temp uint)
0:81                  'dti' ( in 3-component vector of uint)
0:81                  Constant:
0:81                    0 (const int)
0:81              Constant:
0:81                1 (const int)
0:81            Sequence
0:81              Constant:
0:81                0 (const int)
0:81              Constant:
0:81                1 (const int)
0:81          Constant:
0:81            3 (const uint)
0:82      move second child to first child ( temp 3-component vector of int)
0:82        vector swizzle ( temp 3-component vector of int)
0:82          i: direct index for structure ( temp 4-component vector of int)
0:82            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:82              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:82                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:82                Constant:
0:82                  0 (const uint)
0:82              direct index ( temp uint)
0:82                'dti' ( in 3-component vector of uint)
0:82                Constant:
0:82                  0 (const int)
0:82            Constant:
0:82              1 (const int)
0:82          Sequence
0:82            Constant:
0:82              0 (const int)
0:82            Constant:
0:82              1 (const int)
0:82            Constant:
0:82              2 (const int)
0:82        subgroupQuadBroadcast ( temp 3-component vector of int)
0:82          vector swizzle ( temp 3-component vector of int)
0:82            i: direct index for structure ( temp 4-component vector of int)
0:82              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:82                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:82                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:82                  Constant:
0:82                    0 (const uint)
0:82                direct index ( temp uint)
0:82                  'dti' ( in 3-component vector of uint)
0:82                  Constant:
0:82                    0 (const int)
0:82              Constant:
0:82                1 (const int)
0:82            Sequence
0:82              Constant:
0:82                0 (const int)
0:82              Constant:
0:82                1 (const int)
0:82              Constant:
0:82                2 (const int)
0:82          Constant:
0:82            3 (const uint)
0:84      move second child to first child ( temp 4-component vector of float)
0:84        f: direct index for structure ( temp 4-component vector of float)
0:84          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:84            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:84              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:84              Constant:
0:84                0 (const uint)
0:84            direct index ( temp uint)
0:84              'dti' ( in 3-component vector of uint)
0:84              Constant:
0:84                0 (const int)
0:84          Constant:
0:84            2 (const int)
0:84        subgroupQuadBroadcast ( temp 4-component vector of float)
0:84          f: direct index for structure ( temp 4-component vector of float)
0:84            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:84              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:84                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:84                Constant:
0:84                  0 (const uint)
0:84              direct index ( temp uint)
0:84                'dti' ( in 3-component vector of uint)
0:84                Constant:
0:84                  0 (const int)
0:84            Constant:
0:84              2 (const int)
0:84          Constant:
0:84            3 (const uint)
0:85      move second child to first child ( temp float)
0:85        direct index ( temp float)
0:85          f: direct index for structure ( temp 4-component vector of float)
0:85            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:85              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:85                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:85                Constant:
0:85                  0 (const uint)
0:85              direct index ( temp uint)
0:85                'dti' ( in 3-component vector of uint)
0:85                Constant:
0:85                  0 (const int)
0:85            Constant:
0:85              2 (const int)
0:85          Constant:
0:85            0 (const int)
0:85        subgroupQuadBroadcast ( temp float)
0:85          direct index ( temp float)
0:85            f: direct index for structure ( temp 4-component vector of float)
0:85              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:85                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:85                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:85                  Constant:
0:85                    0 (const uint)
0:85                direct index ( temp uint)
0:85                  'dti' ( in 3-component vector of uint)
0:85                  Constant:
0:85                    0 (const int)
0:85              Constant:
0:85                2 (const int)
0:85            Constant:
0:85              0 (const int)
0:85          Constant:
0:85            3 (const uint)
0:86      move second child to first child ( temp 2-component vector of float)
0:86        vector swizzle ( temp 2-component vector of float)
0:86          f: direct index for structure ( temp 4-component vector of float)
0:86            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:86              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:86                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:86                Constant:
0:86                  0 (const uint)
0:86              direct index ( temp uint)
0:86                'dti' ( in 3-component vector of uint)
0:86                Constant:
0:86                  0 (const int)
0:86            Constant:
0:86              2 (const int)
0:86          Sequence
0:86            Constant:
0:86              0 (const int)
0:86            Constant:
0:86              1 (const int)
0:86        subgroupQuadBroadcast ( temp 2-component vector of float)
0:86          vector swizzle ( temp 2-component vector of float)
0:86            f: direct index for structure ( temp 4-component vector of float)
0:86              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:86                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:86                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:86                  Constant:
0:86                    0 (const uint)
0:86                direct index ( temp uint)
0:86                  'dti' ( in 3-component vector of uint)
0:86                  Constant:
0:86                    0 (const int)
0:86              Constant:
0:86                2 (const int)
0:86            Sequence
0:86              Constant:
0:86                0 (const int)
0:86              Constant:
0:86                1 (const int)
0:86          Constant:
0:86            3 (const uint)
0:87      move second child to first child ( temp 3-component vector of float)
0:87        vector swizzle ( temp 3-component vector of float)
0:87          f: direct index for structure ( temp 4-component vector of float)
0:87            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:87              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:87                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:87                Constant:
0:87                  0 (const uint)
0:87              direct index ( temp uint)
0:87                'dti' ( in 3-component vector of uint)
0:87                Constant:
0:87                  0 (const int)
0:87            Constant:
0:87              2 (const int)
0:87          Sequence
0:87            Constant:
0:87              0 (const int)
0:87            Constant:
0:87              1 (const int)
0:87            Constant:
0:87              2 (const int)
0:87        subgroupQuadBroadcast ( temp 3-component vector of float)
0:87          vector swizzle ( temp 3-component vector of float)
0:87            f: direct index for structure ( temp 4-component vector of float)
0:87              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:87                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:87                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:87                  Constant:
0:87                    0 (const uint)
0:87                direct index ( temp uint)
0:87                  'dti' ( in 3-component vector of uint)
0:87                  Constant:
0:87                    0 (const int)
0:87              Constant:
0:87                2 (const int)
0:87            Sequence
0:87              Constant:
0:87                0 (const int)
0:87              Constant:
0:87                1 (const int)
0:87              Constant:
0:87                2 (const int)
0:87          Constant:
0:87            3 (const uint)
0:89      move second child to first child ( temp 4-component vector of double)
0:89        d: direct index for structure ( temp 4-component vector of double)
0:89          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:89            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:89              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:89              Constant:
0:89                0 (const uint)
0:89            direct index ( temp uint)
0:89              'dti' ( in 3-component vector of uint)
0:89              Constant:
0:89                0 (const int)
0:89          Constant:
0:89            3 (const int)
0:89        subgroupQuadBroadcast ( temp 4-component vector of double)
0:89          d: direct index for structure ( temp 4-component vector of double)
0:89            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:89              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:89                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:89                Constant:
0:89                  0 (const uint)
0:89              direct index ( temp uint)
0:89                'dti' ( in 3-component vector of uint)
0:89                Constant:
0:89                  0 (const int)
0:89            Constant:
0:89              3 (const int)
0:89          Constant:
0:89            3 (const uint)
0:90      move second child to first child ( temp double)
0:90        direct index ( temp double)
0:90          d: direct index for structure ( temp 4-component vector of double)
0:90            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:90              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:90                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:90                Constant:
0:90                  0 (const uint)
0:90              direct index ( temp uint)
0:90                'dti' ( in 3-component vector of uint)
0:90                Constant:
0:90                  0 (const int)
0:90            Constant:
0:90              3 (const int)
0:90          Constant:
0:90            0 (const int)
0:90        subgroupQuadBroadcast ( temp double)
0:90          direct index ( temp double)
0:90            d: direct index for structure ( temp 4-component vector of double)
0:90              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:90                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:90                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:90                  Constant:
0:90                    0 (const uint)
0:90                direct index ( temp uint)
0:90                  'dti' ( in 3-component vector of uint)
0:90                  Constant:
0:90                    0 (const int)
0:90              Constant:
0:90                3 (const int)
0:90            Constant:
0:90              0 (const int)
0:90          Constant:
0:90            3 (const uint)
0:91      move second child to first child ( temp 2-component vector of double)
0:91        vector swizzle ( temp 2-component vector of double)
0:91          d: direct index for structure ( temp 4-component vector of double)
0:91            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:91              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:91                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:91                Constant:
0:91                  0 (const uint)
0:91              direct index ( temp uint)
0:91                'dti' ( in 3-component vector of uint)
0:91                Constant:
0:91                  0 (const int)
0:91            Constant:
0:91              3 (const int)
0:91          Sequence
0:91            Constant:
0:91              0 (const int)
0:91            Constant:
0:91              1 (const int)
0:91        subgroupQuadBroadcast ( temp 2-component vector of double)
0:91          vector swizzle ( temp 2-component vector of double)
0:91            d: direct index for structure ( temp 4-component vector of double)
0:91              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:91                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:91                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:91                  Constant:
0:91                    0 (const uint)
0:91                direct index ( temp uint)
0:91                  'dti' ( in 3-component vector of uint)
0:91                  Constant:
0:91                    0 (const int)
0:91              Constant:
0:91                3 (const int)
0:91            Sequence
0:91              Constant:
0:91                0 (const int)
0:91              Constant:
0:91                1 (const int)
0:91          Constant:
0:91            3 (const uint)
0:92      move second child to first child ( temp 3-component vector of double)
0:92        vector swizzle ( temp 3-component vector of double)
0:92          d: direct index for structure ( temp 4-component vector of double)
0:92            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:92              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:92                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:92                Constant:
0:92                  0 (const uint)
0:92              direct index ( temp uint)
0:92                'dti' ( in 3-component vector of uint)
0:92                Constant:
0:92                  0 (const int)
0:92            Constant:
0:92              3 (const int)
0:92          Sequence
0:92            Constant:
0:92              0 (const int)
0:92            Constant:
0:92              1 (const int)
0:92            Constant:
0:92              2 (const int)
0:92        subgroupQuadBroadcast ( temp 3-component vector of double)
0:92          vector swizzle ( temp 3-component vector of double)
0:92            d: direct index for structure ( temp 4-component vector of double)
0:92              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:92                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:92                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:92                  Constant:
0:92                    0 (const uint)
0:92                direct index ( temp uint)
0:92                  'dti' ( in 3-component vector of uint)
0:92                  Constant:
0:92                    0 (const int)
0:92              Constant:
0:92                3 (const int)
0:92            Sequence
0:92              Constant:
0:92                0 (const int)
0:92              Constant:
0:92                1 (const int)
0:92              Constant:
0:92                2 (const int)
0:92          Constant:
0:92            3 (const uint)
0:94      move second child to first child ( temp 4-component vector of uint)
0:94        u: direct index for structure ( temp 4-component vector of uint)
0:94          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:94            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:94              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:94              Constant:
0:94                0 (const uint)
0:94            direct index ( temp uint)
0:94              'dti' ( in 3-component vector of uint)
0:94              Constant:
0:94                0 (const int)
0:94          Constant:
0:94            0 (const int)
0:94        subgroupQuadSwapHorizontal ( temp 4-component vector of uint)
0:94          u: direct index for structure ( temp 4-component vector of uint)
0:94            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:94              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:94                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:94                Constant:
0:94                  0 (const uint)
0:94              direct index ( temp uint)
0:94                'dti' ( in 3-component vector of uint)
0:94                Constant:
0:94                  0 (const int)
0:94            Constant:
0:94              0 (const int)
0:95      move second child to first child ( temp uint)
0:95        direct index ( temp uint)
0:95          u: direct index for structure ( temp 4-component vector of uint)
0:95            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:95              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:95                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:95                Constant:
0:95                  0 (const uint)
0:95              direct index ( temp uint)
0:95                'dti' ( in 3-component vector of uint)
0:95                Constant:
0:95                  0 (const int)
0:95            Constant:
0:95              0 (const int)
0:95          Constant:
0:95            0 (const int)
0:95        subgroupQuadSwapHorizontal ( temp uint)
0:95          direct index ( temp uint)
0:95            u: direct index for structure ( temp 4-component vector of uint)
0:95              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:95                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:95                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:95                  Constant:
0:95                    0 (const uint)
0:95                direct index ( temp uint)
0:95                  'dti' ( in 3-component vector of uint)
0:95                  Constant:
0:95                    0 (const int)
0:95              Constant:
0:95                0 (const int)
0:95            Constant:
0:95              0 (const int)
0:96      move second child to first child ( temp 2-component vector of uint)
0:96        vector swizzle ( temp 2-component vector of uint)
0:96          u: direct index for structure ( temp 4-component vector of uint)
0:96            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:96              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:96                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:96                Constant:
0:96                  0 (const uint)
0:96              direct index ( temp uint)
0:96                'dti' ( in 3-component vector of uint)
0:96                Constant:
0:96                  0 (const int)
0:96            Constant:
0:96              0 (const int)
0:96          Sequence
0:96            Constant:
0:96              0 (const int)
0:96            Constant:
0:96              1 (const int)
0:96        subgroupQuadSwapHorizontal ( temp 2-component vector of uint)
0:96          vector swizzle ( temp 2-component vector of uint)
0:96            u: direct index for structure ( temp 4-component vector of uint)
0:96              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:96                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:96                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:96                  Constant:
0:96                    0 (const uint)
0:96                direct index ( temp uint)
0:96                  'dti' ( in 3-component vector of uint)
0:96                  Constant:
0:96                    0 (const int)
0:96              Constant:
0:96                0 (const int)
0:96            Sequence
0:96              Constant:
0:96                0 (const int)
0:96              Constant:
0:96                1 (const int)
0:97      move second child to first child ( temp 3-component vector of uint)
0:97        vector swizzle ( temp 3-component vector of uint)
0:97          u: direct index for structure ( temp 4-component vector of uint)
0:97            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:97              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:97                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:97                Constant:
0:97                  0 (const uint)
0:97              direct index ( temp uint)
0:97                'dti' ( in 3-component vector of uint)
0:97                Constant:
0:97                  0 (const int)
0:97            Constant:
0:97              0 (const int)
0:97          Sequence
0:97            Constant:
0:97              0 (const int)
0:97            Constant:
0:97              1 (const int)
0:97            Constant:
0:97              2 (const int)
0:97        subgroupQuadSwapHorizontal ( temp 3-component vector of uint)
0:97          vector swizzle ( temp 3-component vector of uint)
0:97            u: direct index for structure ( temp 4-component vector of uint)
0:97              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:97                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:97                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:97                  Constant:
0:97                    0 (const uint)
0:97                direct index ( temp uint)
0:97                  'dti' ( in 3-component vector of uint)
0:97                  Constant:
0:97                    0 (const int)
0:97              Constant:
0:97                0 (const int)
0:97            Sequence
0:97              Constant:
0:97                0 (const int)
0:97              Constant:
0:97                1 (const int)
0:97              Constant:
0:97                2 (const int)
0:99      move second child to first child ( temp 4-component vector of int)
0:99        i: direct index for structure ( temp 4-component vector of int)
0:99          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:99            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:99              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:99              Constant:
0:99                0 (const uint)
0:99            direct index ( temp uint)
0:99              'dti' ( in 3-component vector of uint)
0:99              Constant:
0:99                0 (const int)
0:99          Constant:
0:99            1 (const int)
0:99        subgroupQuadSwapHorizontal ( temp 4-component vector of int)
0:99          i: direct index for structure ( temp 4-component vector of int)
0:99            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:99              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:99                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:99                Constant:
0:99                  0 (const uint)
0:99              direct index ( temp uint)
0:99                'dti' ( in 3-component vector of uint)
0:99                Constant:
0:99                  0 (const int)
0:99            Constant:
0:99              1 (const int)
0:100      move second child to first child ( temp int)
0:100        direct index ( temp int)
0:100          i: direct index for structure ( temp 4-component vector of int)
0:100            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:100              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:100                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:100                Constant:
0:100                  0 (const uint)
0:100              direct index ( temp uint)
0:100                'dti' ( in 3-component vector of uint)
0:100                Constant:
0:100                  0 (const int)
0:100            Constant:
0:100              1 (const int)
0:100          Constant:
0:100            0 (const int)
0:100        subgroupQuadSwapHorizontal ( temp int)
0:100          direct index ( temp int)
0:100            i: direct index for structure ( temp 4-component vector of int)
0:100              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:100                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:100                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:100                  Constant:
0:100                    0 (const uint)
0:100                direct index ( temp uint)
0:100                  'dti' ( in 3-component vector of uint)
0:100                  Constant:
0:100                    0 (const int)
0:100              Constant:
0:100                1 (const int)
0:100            Constant:
0:100              0 (const int)
0:101      move second child to first child ( temp 2-component vector of int)
0:101        vector swizzle ( temp 2-component vector of int)
0:101          i: direct index for structure ( temp 4-component vector of int)
0:101            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:101              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:101                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:101                Constant:
0:101                  0 (const uint)
0:101              direct index ( temp uint)
0:101                'dti' ( in 3-component vector of uint)
0:101                Constant:
0:101                  0 (const int)
0:101            Constant:
0:101              1 (const int)
0:101          Sequence
0:101            Constant:
0:101              0 (const int)
0:101            Constant:
0:101              1 (const int)
0:101        subgroupQuadSwapHorizontal ( temp 2-component vector of int)
0:101          vector swizzle ( temp 2-component vector of int)
0:101            i: direct index for structure ( temp 4-component vector of int)
0:101              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:101                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:101                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:101                  Constant:
0:101                    0 (const uint)
0:101                direct index ( temp uint)
0:101                  'dti' ( in 3-component vector of uint)
0:101                  Constant:
0:101                    0 (const int)
0:101              Constant:
0:101                1 (const int)
0:101            Sequence
0:101              Constant:
0:101                0 (const int)
0:101              Constant:
0:101                1 (const int)
0:102      move second child to first child ( temp 3-component vector of int)
0:102        vector swizzle ( temp 3-component vector of int)
0:102          i: direct index for structure ( temp 4-component vector of int)
0:102            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:102              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:102                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:102                Constant:
0:102                  0 (const uint)
0:102              direct index ( temp uint)
0:102                'dti' ( in 3-component vector of uint)
0:102                Constant:
0:102                  0 (const int)
0:102            Constant:
0:102              1 (const int)
0:102          Sequence
0:102            Constant:
0:102              0 (const int)
0:102            Constant:
0:102              1 (const int)
0:102            Constant:
0:102              2 (const int)
0:102        subgroupQuadSwapHorizontal ( temp 3-component vector of int)
0:102          vector swizzle ( temp 3-component vector of int)
0:102            i: direct index for structure ( temp 4-component vector of int)
0:102              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:102                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:102                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:102                  Constant:
0:102                    0 (const uint)
0:102                direct index ( temp uint)
0:102                  'dti' ( in 3-component vector of uint)
0:102                  Constant:
0:102                    0 (const int)
0:102              Constant:
0:102                1 (const int)
0:102            Sequence
0:102              Constant:
0:102                0 (const int)
0:102              Constant:
0:102                1 (const int)
0:102              Constant:
0:102                2 (const int)
0:104      move second child to first child ( temp 4-component vector of float)
0:104        f: direct index for structure ( temp 4-component vector of float)
0:104          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:104            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:104              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:104              Constant:
0:104                0 (const uint)
0:104            direct index ( temp uint)
0:104              'dti' ( in 3-component vector of uint)
0:104              Constant:
0:104                0 (const int)
0:104          Constant:
0:104            2 (const int)
0:104        subgroupQuadSwapHorizontal ( temp 4-component vector of float)
0:104          f: direct index for structure ( temp 4-component vector of float)
0:104            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:104              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:104                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:104                Constant:
0:104                  0 (const uint)
0:104              direct index ( temp uint)
0:104                'dti' ( in 3-component vector of uint)
0:104                Constant:
0:104                  0 (const int)
0:104            Constant:
0:104              2 (const int)
0:105      move second child to first child ( temp float)
0:105        direct index ( temp float)
0:105          f: direct index for structure ( temp 4-component vector of float)
0:105            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:105              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:105                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:105                Constant:
0:105                  0 (const uint)
0:105              direct index ( temp uint)
0:105                'dti' ( in 3-component vector of uint)
0:105                Constant:
0:105                  0 (const int)
0:105            Constant:
0:105              2 (const int)
0:105          Constant:
0:105            0 (const int)
0:105        subgroupQuadSwapHorizontal ( temp float)
0:105          direct index ( temp float)
0:105            f: direct index for structure ( temp 4-component vector of float)
0:105              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:105                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:105                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:105                  Constant:
0:105                    0 (const uint)
0:105                direct index ( temp uint)
0:105                  'dti' ( in 3-component vector of uint)
0:105                  Constant:
0:105                    0 (const int)
0:105              Constant:
0:105                2 (const int)
0:105            Constant:
0:105              0 (const int)
0:106      move second child to first child ( temp 2-component vector of float)
0:106        vector swizzle ( temp 2-component vector of float)
0:106          f: direct index for structure ( temp 4-component vector of float)
0:106            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:106              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:106                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:106                Constant:
0:106                  0 (const uint)
0:106              direct index ( temp uint)
0:106                'dti' ( in 3-component vector of uint)
0:106                Constant:
0:106                  0 (const int)
0:106            Constant:
0:106              2 (const int)
0:106          Sequence
0:106            Constant:
0:106              0 (const int)
0:106            Constant:
0:106              1 (const int)
0:106        subgroupQuadSwapHorizontal ( temp 2-component vector of float)
0:106          vector swizzle ( temp 2-component vector of float)
0:106            f: direct index for structure ( temp 4-component vector of float)
0:106              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:106                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:106                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:106                  Constant:
0:106                    0 (const uint)
0:106                direct index ( temp uint)
0:106                  'dti' ( in 3-component vector of uint)
0:106                  Constant:
0:106                    0 (const int)
0:106              Constant:
0:106                2 (const int)
0:106            Sequence
0:106              Constant:
0:106                0 (const int)
0:106              Constant:
0:106                1 (const int)
0:107      move second child to first child ( temp 3-component vector of float)
0:107        vector swizzle ( temp 3-component vector of float)
0:107          f: direct index for structure ( temp 4-component vector of float)
0:107            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:107              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:107                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:107                Constant:
0:107                  0 (const uint)
0:107              direct index ( temp uint)
0:107                'dti' ( in 3-component vector of uint)
0:107                Constant:
0:107                  0 (const int)
0:107            Constant:
0:107              2 (const int)
0:107          Sequence
0:107            Constant:
0:107              0 (const int)
0:107            Constant:
0:107              1 (const int)
0:107            Constant:
0:107              2 (const int)
0:107        subgroupQuadSwapHorizontal ( temp 3-component vector of float)
0:107          vector swizzle ( temp 3-component vector of float)
0:107            f: direct index for structure ( temp 4-component vector of float)
0:107              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:107                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:107                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:107                  Constant:
0:107                    0 (const uint)
0:107                direct index ( temp uint)
0:107                  'dti' ( in 3-component vector of uint)
0:107                  Constant:
0:107                    0 (const int)
0:107              Constant:
0:107                2 (const int)
0:107            Sequence
0:107              Constant:
0:107                0 (const int)
0:107              Constant:
0:107                1 (const int)
0:107              Constant:
0:107                2 (const int)
0:109      move second child to first child ( temp 4-component vector of double)
0:109        d: direct index for structure ( temp 4-component vector of double)
0:109          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:109            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:109              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:109              Constant:
0:109                0 (const uint)
0:109            direct index ( temp uint)
0:109              'dti' ( in 3-component vector of uint)
0:109              Constant:
0:109                0 (const int)
0:109          Constant:
0:109            3 (const int)
0:109        subgroupQuadSwapHorizontal ( temp 4-component vector of double)
0:109          d: direct index for structure ( temp 4-component vector of double)
0:109            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:109              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:109                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:109                Constant:
0:109                  0 (const uint)
0:109              direct index ( temp uint)
0:109                'dti' ( in 3-component vector of uint)
0:109                Constant:
0:109                  0 (const int)
0:109            Constant:
0:109              3 (const int)
0:110      move second child to first child ( temp double)
0:110        direct index ( temp double)
0:110          d: direct index for structure ( temp 4-component vector of double)
0:110            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:110              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:110                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:110                Constant:
0:110                  0 (const uint)
0:110              direct index ( temp uint)
0:110                'dti' ( in 3-component vector of uint)
0:110                Constant:
0:110                  0 (const int)
0:110            Constant:
0:110              3 (const int)
0:110          Constant:
0:110            0 (const int)
0:110        subgroupQuadSwapHorizontal ( temp double)
0:110          direct index ( temp double)
0:110            d: direct index for structure ( temp 4-component vector of double)
0:110              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:110                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:110                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:110                  Constant:
0:110                    0 (const uint)
0:110                direct index ( temp uint)
0:110                  'dti' ( in 3-component vector of uint)
0:110                  Constant:
0:110                    0 (const int)
0:110              Constant:
0:110                3 (const int)
0:110            Constant:
0:110              0 (const int)
0:111      move second child to first child ( temp 2-component vector of double)
0:111        vector swizzle ( temp 2-component vector of double)
0:111          d: direct index for structure ( temp 4-component vector of double)
0:111            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:111              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:111                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:111                Constant:
0:111                  0 (const uint)
0:111              direct index ( temp uint)
0:111                'dti' ( in 3-component vector of uint)
0:111                Constant:
0:111                  0 (const int)
0:111            Constant:
0:111              3 (const int)
0:111          Sequence
0:111            Constant:
0:111              0 (const int)
0:111            Constant:
0:111              1 (const int)
0:111        subgroupQuadSwapHorizontal ( temp 2-component vector of double)
0:111          vector swizzle ( temp 2-component vector of double)
0:111            d: direct index for structure ( temp 4-component vector of double)
0:111              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:111                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:111                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:111                  Constant:
0:111                    0 (const uint)
0:111                direct index ( temp uint)
0:111                  'dti' ( in 3-component vector of uint)
0:111                  Constant:
0:111                    0 (const int)
0:111              Constant:
0:111                3 (const int)
0:111            Sequence
0:111              Constant:
0:111                0 (const int)
0:111              Constant:
0:111                1 (const int)
0:112      move second child to first child ( temp 3-component vector of double)
0:112        vector swizzle ( temp 3-component vector of double)
0:112          d: direct index for structure ( temp 4-component vector of double)
0:112            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:112              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:112                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:112                Constant:
0:112                  0 (const uint)
0:112              direct index ( temp uint)
0:112                'dti' ( in 3-component vector of uint)
0:112                Constant:
0:112                  0 (const int)
0:112            Constant:
0:112              3 (const int)
0:112          Sequence
0:112            Constant:
0:112              0 (const int)
0:112            Constant:
0:112              1 (const int)
0:112            Constant:
0:112              2 (const int)
0:112        subgroupQuadSwapHorizontal ( temp 3-component vector of double)
0:112          vector swizzle ( temp 3-component vector of double)
0:112            d: direct index for structure ( temp 4-component vector of double)
0:112              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:112                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:112                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:112                  Constant:
0:112                    0 (const uint)
0:112                direct index ( temp uint)
0:112                  'dti' ( in 3-component vector of uint)
0:112                  Constant:
0:112                    0 (const int)
0:112              Constant:
0:112                3 (const int)
0:112            Sequence
0:112              Constant:
0:112                0 (const int)
0:112              Constant:
0:112                1 (const int)
0:112              Constant:
0:112                2 (const int)
0:114      move second child to first child ( temp 4-component vector of uint)
0:114        u: direct index for structure ( temp 4-component vector of uint)
0:114          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:114            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:114              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:114              Constant:
0:114                0 (const uint)
0:114            direct index ( temp uint)
0:114              'dti' ( in 3-component vector of uint)
0:114              Constant:
0:114                0 (const int)
0:114          Constant:
0:114            0 (const int)
0:114        subgroupQuadSwapVertical ( temp 4-component vector of uint)
0:114          u: direct index for structure ( temp 4-component vector of uint)
0:114            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:114              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:114                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:114                Constant:
0:114                  0 (const uint)
0:114              direct index ( temp uint)
0:114                'dti' ( in 3-component vector of uint)
0:114                Constant:
0:114                  0 (const int)
0:114            Constant:
0:114              0 (const int)
0:115      move second child to first child ( temp uint)
0:115        direct index ( temp uint)
0:115          u: direct index for structure ( temp 4-component vector of uint)
0:115            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:115              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:115                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:115                Constant:
0:115                  0 (const uint)
0:115              direct index ( temp uint)
0:115                'dti' ( in 3-component vector of uint)
0:115                Constant:
0:115                  0 (const int)
0:115            Constant:
0:115              0 (const int)
0:115          Constant:
0:115            0 (const int)
0:115        subgroupQuadSwapVertical ( temp uint)
0:115          direct index ( temp uint)
0:115            u: direct index for structure ( temp 4-component vector of uint)
0:115              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:115                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:115                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:115                  Constant:
0:115                    0 (const uint)
0:115                direct index ( temp uint)
0:115                  'dti' ( in 3-component vector of uint)
0:115                  Constant:
0:115                    0 (const int)
0:115              Constant:
0:115                0 (const int)
0:115            Constant:
0:115              0 (const int)
0:116      move second child to first child ( temp 2-component vector of uint)
0:116        vector swizzle ( temp 2-component vector of uint)
0:116          u: direct index for structure ( temp 4-component vector of uint)
0:116            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:116              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:116                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:116                Constant:
0:116                  0 (const uint)
0:116              direct index ( temp uint)
0:116                'dti' ( in 3-component vector of uint)
0:116                Constant:
0:116                  0 (const int)
0:116            Constant:
0:116              0 (const int)
0:116          Sequence
0:116            Constant:
0:116              0 (const int)
0:116            Constant:
0:116              1 (const int)
0:116        subgroupQuadSwapVertical ( temp 2-component vector of uint)
0:116          vector swizzle ( temp 2-component vector of uint)
0:116            u: direct index for structure ( temp 4-component vector of uint)
0:116              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:116                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:116                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:116                  Constant:
0:116                    0 (const uint)
0:116                direct index ( temp uint)
0:116                  'dti' ( in 3-component vector of uint)
0:116                  Constant:
0:116                    0 (const int)
0:116              Constant:
0:116                0 (const int)
0:116            Sequence
0:116              Constant:
0:116                0 (const int)
0:116              Constant:
0:116                1 (const int)
0:117      move second child to first child ( temp 3-component vector of uint)
0:117        vector swizzle ( temp 3-component vector of uint)
0:117          u: direct index for structure ( temp 4-component vector of uint)
0:117            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:117              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:117                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:117                Constant:
0:117                  0 (const uint)
0:117              direct index ( temp uint)
0:117                'dti' ( in 3-component vector of uint)
0:117                Constant:
0:117                  0 (const int)
0:117            Constant:
0:117              0 (const int)
0:117          Sequence
0:117            Constant:
0:117              0 (const int)
0:117            Constant:
0:117              1 (const int)
0:117            Constant:
0:117              2 (const int)
0:117        subgroupQuadSwapVertical ( temp 3-component vector of uint)
0:117          vector swizzle ( temp 3-component vector of uint)
0:117            u: direct index for structure ( temp 4-component vector of uint)
0:117              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:117                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:117                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:117                  Constant:
0:117                    0 (const uint)
0:117                direct index ( temp uint)
0:117                  'dti' ( in 3-component vector of uint)
0:117                  Constant:
0:117                    0 (const int)
0:117              Constant:
0:117                0 (const int)
0:117            Sequence
0:117              Constant:
0:117                0 (const int)
0:117              Constant:
0:117                1 (const int)
0:117              Constant:
0:117                2 (const int)
0:119      move second child to first child ( temp 4-component vector of int)
0:119        i: direct index for structure ( temp 4-component vector of int)
0:119          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:119            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:119              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:119              Constant:
0:119                0 (const uint)
0:119            direct index ( temp uint)
0:119              'dti' ( in 3-component vector of uint)
0:119              Constant:
0:119                0 (const int)
0:119          Constant:
0:119            1 (const int)
0:119        subgroupQuadSwapVertical ( temp 4-component vector of int)
0:119          i: direct index for structure ( temp 4-component vector of int)
0:119            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:119              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:119                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:119                Constant:
0:119                  0 (const uint)
0:119              direct index ( temp uint)
0:119                'dti' ( in 3-component vector of uint)
0:119                Constant:
0:119                  0 (const int)
0:119            Constant:
0:119              1 (const int)
0:120      move second child to first child ( temp int)
0:120        direct index ( temp int)
0:120          i: direct index for structure ( temp 4-component vector of int)
0:120            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:120              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:120                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:120                Constant:
0:120                  0 (const uint)
0:120              direct index ( temp uint)
0:120                'dti' ( in 3-component vector of uint)
0:120                Constant:
0:120                  0 (const int)
0:120            Constant:
0:120              1 (const int)
0:120          Constant:
0:120            0 (const int)
0:120        subgroupQuadSwapVertical ( temp int)
0:120          direct index ( temp int)
0:120            i: direct index for structure ( temp 4-component vector of int)
0:120              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:120                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:120                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:120                  Constant:
0:120                    0 (const uint)
0:120                direct index ( temp uint)
0:120                  'dti' ( in 3-component vector of uint)
0:120                  Constant:
0:120                    0 (const int)
0:120              Constant:
0:120                1 (const int)
0:120            Constant:
0:120              0 (const int)
0:121      move second child to first child ( temp 2-component vector of int)
0:121        vector swizzle ( temp 2-component vector of int)
0:121          i: direct index for structure ( temp 4-component vector of int)
0:121            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:121              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:121                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:121                Constant:
0:121                  0 (const uint)
0:121              direct index ( temp uint)
0:121                'dti' ( in 3-component vector of uint)
0:121                Constant:
0:121                  0 (const int)
0:121            Constant:
0:121              1 (const int)
0:121          Sequence
0:121            Constant:
0:121              0 (const int)
0:121            Constant:
0:121              1 (const int)
0:121        subgroupQuadSwapVertical ( temp 2-component vector of int)
0:121          vector swizzle ( temp 2-component vector of int)
0:121            i: direct index for structure ( temp 4-component vector of int)
0:121              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:121                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:121                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:121                  Constant:
0:121                    0 (const uint)
0:121                direct index ( temp uint)
0:121                  'dti' ( in 3-component vector of uint)
0:121                  Constant:
0:121                    0 (const int)
0:121              Constant:
0:121                1 (const int)
0:121            Sequence
0:121              Constant:
0:121                0 (const int)
0:121              Constant:
0:121                1 (const int)
0:122      move second child to first child ( temp 3-component vector of int)
0:122        vector swizzle ( temp 3-component vector of int)
0:122          i: direct index for structure ( temp 4-component vector of int)
0:122            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:122              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:122                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:122                Constant:
0:122                  0 (const uint)
0:122              direct index ( temp uint)
0:122                'dti' ( in 3-component vector of uint)
0:122                Constant:
0:122                  0 (const int)
0:122            Constant:
0:122              1 (const int)
0:122          Sequence
0:122            Constant:
0:122              0 (const int)
0:122            Constant:
0:122              1 (const int)
0:122            Constant:
0:122              2 (const int)
0:122        subgroupQuadSwapVertical ( temp 3-component vector of int)
0:122          vector swizzle ( temp 3-component vector of int)
0:122            i: direct index for structure ( temp 4-component vector of int)
0:122              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:122                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:122                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:122                  Constant:
0:122                    0 (const uint)
0:122                direct index ( temp uint)
0:122                  'dti' ( in 3-component vector of uint)
0:122                  Constant:
0:122                    0 (const int)
0:122              Constant:
0:122                1 (const int)
0:122            Sequence
0:122              Constant:
0:122                0 (const int)
0:122              Constant:
0:122                1 (const int)
0:122              Constant:
0:122                2 (const int)
0:124      move second child to first child ( temp 4-component vector of float)
0:124        f: direct index for structure ( temp 4-component vector of float)
0:124          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:124            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:124              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:124              Constant:
0:124                0 (const uint)
0:124            direct index ( temp uint)
0:124              'dti' ( in 3-component vector of uint)
0:124              Constant:
0:124                0 (const int)
0:124          Constant:
0:124            2 (const int)
0:124        subgroupQuadSwapVertical ( temp 4-component vector of float)
0:124          f: direct index for structure ( temp 4-component vector of float)
0:124            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:124              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:124                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:124                Constant:
0:124                  0 (const uint)
0:124              direct index ( temp uint)
0:124                'dti' ( in 3-component vector of uint)
0:124                Constant:
0:124                  0 (const int)
0:124            Constant:
0:124              2 (const int)
0:125      move second child to first child ( temp float)
0:125        direct index ( temp float)
0:125          f: direct index for structure ( temp 4-component vector of float)
0:125            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:125              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:125                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:125                Constant:
0:125                  0 (const uint)
0:125              direct index ( temp uint)
0:125                'dti' ( in 3-component vector of uint)
0:125                Constant:
0:125                  0 (const int)
0:125            Constant:
0:125              2 (const int)
0:125          Constant:
0:125            0 (const int)
0:125        subgroupQuadSwapVertical ( temp float)
0:125          direct index ( temp float)
0:125            f: direct index for structure ( temp 4-component vector of float)
0:125              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:125                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:125                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:125                  Constant:
0:125                    0 (const uint)
0:125                direct index ( temp uint)
0:125                  'dti' ( in 3-component vector of uint)
0:125                  Constant:
0:125                    0 (const int)
0:125              Constant:
0:125                2 (const int)
0:125            Constant:
0:125              0 (const int)
0:126      move second child to first child ( temp 2-component vector of float)
0:126        vector swizzle ( temp 2-component vector of float)
0:126          f: direct index for structure ( temp 4-component vector of float)
0:126            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:126              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:126                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:126                Constant:
0:126                  0 (const uint)
0:126              direct index ( temp uint)
0:126                'dti' ( in 3-component vector of uint)
0:126                Constant:
0:126                  0 (const int)
0:126            Constant:
0:126              2 (const int)
0:126          Sequence
0:126            Constant:
0:126              0 (const int)
0:126            Constant:
0:126              1 (const int)
0:126        subgroupQuadSwapVertical ( temp 2-component vector of float)
0:126          vector swizzle ( temp 2-component vector of float)
0:126            f: direct index for structure ( temp 4-component vector of float)
0:126              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:126                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:126                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:126                  Constant:
0:126                    0 (const uint)
0:126                direct index ( temp uint)
0:126                  'dti' ( in 3-component vector of uint)
0:126                  Constant:
0:126                    0 (const int)
0:126              Constant:
0:126                2 (const int)
0:126            Sequence
0:126              Constant:
0:126                0 (const int)
0:126              Constant:
0:126                1 (const int)
0:127      move second child to first child ( temp 3-component vector of float)
0:127        vector swizzle ( temp 3-component vector of float)
0:127          f: direct index for structure ( temp 4-component vector of float)
0:127            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:127              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:127                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:127                Constant:
0:127                  0 (const uint)
0:127              direct index ( temp uint)
0:127                'dti' ( in 3-component vector of uint)
0:127                Constant:
0:127                  0 (const int)
0:127            Constant:
0:127              2 (const int)
0:127          Sequence
0:127            Constant:
0:127              0 (const int)
0:127            Constant:
0:127              1 (const int)
0:127            Constant:
0:127              2 (const int)
0:127        subgroupQuadSwapVertical ( temp 3-component vector of float)
0:127          vector swizzle ( temp 3-component vector of float)
0:127            f: direct index for structure ( temp 4-component vector of float)
0:127              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:127                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:127                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:127                  Constant:
0:127                    0 (const uint)
0:127                direct index ( temp uint)
0:127                  'dti' ( in 3-component vector of uint)
0:127                  Constant:
0:127                    0 (const int)
0:127              Constant:
0:127                2 (const int)
0:127            Sequence
0:127              Constant:
0:127                0 (const int)
0:127              Constant:
0:127                1 (const int)
0:127              Constant:
0:127                2 (const int)
0:129      move second child to first child ( temp 4-component vector of double)
0:129        d: direct index for structure ( temp 4-component vector of double)
0:129          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:129            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:129              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:129              Constant:
0:129                0 (const uint)
0:129            direct index ( temp uint)
0:129              'dti' ( in 3-component vector of uint)
0:129              Constant:
0:129                0 (const int)
0:129          Constant:
0:129            3 (const int)
0:129        subgroupQuadSwapVertical ( temp 4-component vector of double)
0:129          d: direct index for structure ( temp 4-component vector of double)
0:129            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:129              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:129                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:129                Constant:
0:129                  0 (const uint)
0:129              direct index ( temp uint)
0:129                'dti' ( in 3-component vector of uint)
0:129                Constant:
0:129                  0 (const int)
0:129            Constant:
0:129              3 (const int)
0:130      move second child to first child ( temp double)
0:130        direct index ( temp double)
0:130          d: direct index for structure ( temp 4-component vector of double)
0:130            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:130              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:130                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:130                Constant:
0:130                  0 (const uint)
0:130              direct index ( temp uint)
0:130                'dti' ( in 3-component vector of uint)
0:130                Constant:
0:130                  0 (const int)
0:130            Constant:
0:130              3 (const int)
0:130          Constant:
0:130            0 (const int)
0:130        subgroupQuadSwapVertical ( temp double)
0:130          direct index ( temp double)
0:130            d: direct index for structure ( temp 4-component vector of double)
0:130              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:130                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:130                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:130                  Constant:
0:130                    0 (const uint)
0:130                direct index ( temp uint)
0:130                  'dti' ( in 3-component vector of uint)
0:130                  Constant:
0:130                    0 (const int)
0:130              Constant:
0:130                3 (const int)
0:130            Constant:
0:130              0 (const int)
0:131      move second child to first child ( temp 2-component vector of double)
0:131        vector swizzle ( temp 2-component vector of double)
0:131          d: direct index for structure ( temp 4-component vector of double)
0:131            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:131              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:131                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:131                Constant:
0:131                  0 (const uint)
0:131              direct index ( temp uint)
0:131                'dti' ( in 3-component vector of uint)
0:131                Constant:
0:131                  0 (const int)
0:131            Constant:
0:131              3 (const int)
0:131          Sequence
0:131            Constant:
0:131              0 (const int)
0:131            Constant:
0:131              1 (const int)
0:131        subgroupQuadSwapVertical ( temp 2-component vector of double)
0:131          vector swizzle ( temp 2-component vector of double)
0:131            d: direct index for structure ( temp 4-component vector of double)
0:131              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:131                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:131                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:131                  Constant:
0:131                    0 (const uint)
0:131                direct index ( temp uint)
0:131                  'dti' ( in 3-component vector of uint)
0:131                  Constant:
0:131                    0 (const int)
0:131              Constant:
0:131                3 (const int)
0:131            Sequence
0:131              Constant:
0:131                0 (const int)
0:131              Constant:
0:131                1 (const int)
0:132      move second child to first child ( temp 3-component vector of double)
0:132        vector swizzle ( temp 3-component vector of double)
0:132          d: direct index for structure ( temp 4-component vector of double)
0:132            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:132              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:132                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:132                Constant:
0:132                  0 (const uint)
0:132              direct index ( temp uint)
0:132                'dti' ( in 3-component vector of uint)
0:132                Constant:
0:132                  0 (const int)
0:132            Constant:
0:132              3 (const int)
0:132          Sequence
0:132            Constant:
0:132              0 (const int)
0:132            Constant:
0:132              1 (const int)
0:132            Constant:
0:132              2 (const int)
0:132        subgroupQuadSwapVertical ( temp 3-component vector of double)
0:132          vector swizzle ( temp 3-component vector of double)
0:132            d: direct index for structure ( temp 4-component vector of double)
0:132              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:132                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
0:132                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:132                  Constant:
0:132                    0 (const uint)
0:132                direct index ( temp uint)
0:132                  'dti' ( in 3-component vector of uint)
0:132                  Constant:
0:132                    0 (const int)
0:132              Constant:
0:132                3 (const int)
0:132            Sequence
0:132              Constant:
0:132                0 (const int)
0:132              Constant:
0:132                1 (const int)
0:132              Constant:
0:132                2 (const int)
0:13  Function Definition: CSMain( ( temp void)
0:13    Function Parameters: 
0:?     Sequence
0:13      move second child to first child ( temp 3-component vector of uint)
0:?         'dti' ( temp 3-component vector of uint)
0:?         'dti' ( in 3-component vector of uint GlobalInvocationID)
0:13      Function Call: @CSMain(vu3; ( temp void)
0:?         'dti' ( temp 3-component vector of uint)
0:?   Linker Objects
0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
0:?     'dti' ( in 3-component vector of uint GlobalInvocationID)

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

                              Capability Shader
                              Capability Float64
                              Capability GroupNonUniform
                              Capability GroupNonUniformQuad
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "CSMain" 963
                              ExecutionMode 4 LocalSize 32 16 1
                              Source HLSL 500
                              Name 4  "CSMain"
                              Name 11  "@CSMain(vu3;"
                              Name 10  "dti"
                              Name 20  "Types"
                              MemberName 20(Types) 0  "u"
                              MemberName 20(Types) 1  "i"
                              MemberName 20(Types) 2  "f"
                              MemberName 20(Types) 3  "d"
                              Name 22  "data"
                              MemberName 22(data) 0  "@data"
                              Name 24  "data"
                              Name 961  "dti"
                              Name 963  "dti"
                              Name 965  "param"
                              MemberDecorate 20(Types) 0 Offset 0
                              MemberDecorate 20(Types) 1 Offset 16
                              MemberDecorate 20(Types) 2 Offset 32
                              MemberDecorate 20(Types) 3 Offset 64
                              Decorate 21 ArrayStride 96
                              MemberDecorate 22(data) 0 Offset 0
                              Decorate 22(data) BufferBlock
                              Decorate 24(data) DescriptorSet 0
                              Decorate 963(dti) BuiltIn GlobalInvocationId
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypeVector 6(int) 3
               8:             TypePointer Function 7(ivec3)
               9:             TypeFunction 2 8(ptr)
              13:             TypeVector 6(int) 4
              14:             TypeInt 32 1
              15:             TypeVector 14(int) 4
              16:             TypeFloat 32
              17:             TypeVector 16(float) 4
              18:             TypeFloat 64
              19:             TypeVector 18(float) 4
       20(Types):             TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(fvec4)
              21:             TypeRuntimeArray 20(Types)
        22(data):             TypeStruct 21
              23:             TypePointer Uniform 22(data)
        24(data):     23(ptr) Variable Uniform
              25:     14(int) Constant 0
              26:      6(int) Constant 0
              27:             TypePointer Function 6(int)
              32:             TypePointer Uniform 13(ivec4)
              35:      6(int) Constant 3
              42:             TypePointer Uniform 6(int)
              51:             TypeVector 6(int) 2
              72:     14(int) Constant 1
              75:             TypePointer Uniform 15(ivec4)
              84:             TypePointer Uniform 14(int)
              93:             TypeVector 14(int) 2
             105:             TypeVector 14(int) 3
             115:     14(int) Constant 2
             118:             TypePointer Uniform 17(fvec4)
             127:             TypePointer Uniform 16(float)
             136:             TypeVector 16(float) 2
             148:             TypeVector 16(float) 3
             158:     14(int) Constant 3
             161:             TypePointer Uniform 19(fvec4)
             170:             TypePointer Uniform 18(float)
             179:             TypeVector 18(float) 2
             191:             TypeVector 18(float) 3
             205:      6(int) Constant 1
             358:      6(int) Constant 2
             962:             TypePointer Input 7(ivec3)
        963(dti):    962(ptr) Variable Input
       4(CSMain):           2 Function None 3
               5:             Label
        961(dti):      8(ptr) Variable Function
      965(param):      8(ptr) Variable Function
             964:    7(ivec3) Load 963(dti)
                              Store 961(dti) 964
             966:    7(ivec3) Load 961(dti)
                              Store 965(param) 966
             967:           2 FunctionCall 11(@CSMain(vu3;) 965(param)
                              Return
                              FunctionEnd
11(@CSMain(vu3;):           2 Function None 9
         10(dti):      8(ptr) FunctionParameter
              12:             Label
              28:     27(ptr) AccessChain 10(dti) 26
              29:      6(int) Load 28
              30:     27(ptr) AccessChain 10(dti) 26
              31:      6(int) Load 30
              33:     32(ptr) AccessChain 24(data) 25 31 25
              34:   13(ivec4) Load 33
              36:   13(ivec4) GroupNonUniformQuadBroadcast 35 34 26
              37:     32(ptr) AccessChain 24(data) 25 29 25
                              Store 37 36
              38:     27(ptr) AccessChain 10(dti) 26
              39:      6(int) Load 38
              40:     27(ptr) AccessChain 10(dti) 26
              41:      6(int) Load 40
              43:     42(ptr) AccessChain 24(data) 25 41 25 26
              44:      6(int) Load 43
              45:      6(int) GroupNonUniformQuadBroadcast 35 44 26
              46:     42(ptr) AccessChain 24(data) 25 39 25 26
                              Store 46 45
              47:     27(ptr) AccessChain 10(dti) 26
              48:      6(int) Load 47
              49:     27(ptr) AccessChain 10(dti) 26
              50:      6(int) Load 49
              52:     32(ptr) AccessChain 24(data) 25 50 25
              53:   13(ivec4) Load 52
              54:   51(ivec2) VectorShuffle 53 53 0 1
              55:   51(ivec2) GroupNonUniformQuadBroadcast 35 54 26
              56:     32(ptr) AccessChain 24(data) 25 48 25
              57:   13(ivec4) Load 56
              58:   13(ivec4) VectorShuffle 57 55 4 5 2 3
                              Store 56 58
              59:     27(ptr) AccessChain 10(dti) 26
              60:      6(int) Load 59
              61:     27(ptr) AccessChain 10(dti) 26
              62:      6(int) Load 61
              63:     32(ptr) AccessChain 24(data) 25 62 25
              64:   13(ivec4) Load 63
              65:    7(ivec3) VectorShuffle 64 64 0 1 2
              66:    7(ivec3) GroupNonUniformQuadBroadcast 35 65 26
              67:     32(ptr) AccessChain 24(data) 25 60 25
              68:   13(ivec4) Load 67
              69:   13(ivec4) VectorShuffle 68 66 4 5 6 3
                              Store 67 69
              70:     27(ptr) AccessChain 10(dti) 26
              71:      6(int) Load 70
              73:     27(ptr) AccessChain 10(dti) 26
              74:      6(int) Load 73
              76:     75(ptr) AccessChain 24(data) 25 74 72
              77:   15(ivec4) Load 76
              78:   15(ivec4) GroupNonUniformQuadBroadcast 35 77 26
              79:     75(ptr) AccessChain 24(data) 25 71 72
                              Store 79 78
              80:     27(ptr) AccessChain 10(dti) 26
              81:      6(int) Load 80
              82:     27(ptr) AccessChain 10(dti) 26
              83:      6(int) Load 82
              85:     84(ptr) AccessChain 24(data) 25 83 72 26
              86:     14(int) Load 85
              87:     14(int) GroupNonUniformQuadBroadcast 35 86 26
              88:     84(ptr) AccessChain 24(data) 25 81 72 26
                              Store 88 87
              89:     27(ptr) AccessChain 10(dti) 26
              90:      6(int) Load 89
              91:     27(ptr) AccessChain 10(dti) 26
              92:      6(int) Load 91
              94:     75(ptr) AccessChain 24(data) 25 92 72
              95:   15(ivec4) Load 94
              96:   93(ivec2) VectorShuffle 95 95 0 1
              97:   93(ivec2) GroupNonUniformQuadBroadcast 35 96 26
              98:     75(ptr) AccessChain 24(data) 25 90 72
              99:   15(ivec4) Load 98
             100:   15(ivec4) VectorShuffle 99 97 4 5 2 3
                              Store 98 100
             101:     27(ptr) AccessChain 10(dti) 26
             102:      6(int) Load 101
             103:     27(ptr) AccessChain 10(dti) 26
             104:      6(int) Load 103
             106:     75(ptr) AccessChain 24(data) 25 104 72
             107:   15(ivec4) Load 106
             108:  105(ivec3) VectorShuffle 107 107 0 1 2
             109:  105(ivec3) GroupNonUniformQuadBroadcast 35 108 26
             110:     75(ptr) AccessChain 24(data) 25 102 72
             111:   15(ivec4) Load 110
             112:   15(ivec4) VectorShuffle 111 109 4 5 6 3
                              Store 110 112
             113:     27(ptr) AccessChain 10(dti) 26
             114:      6(int) Load 113
             116:     27(ptr) AccessChain 10(dti) 26
             117:      6(int) Load 116
             119:    118(ptr) AccessChain 24(data) 25 117 115
             120:   17(fvec4) Load 119
             121:   17(fvec4) GroupNonUniformQuadBroadcast 35 120 26
             122:    118(ptr) AccessChain 24(data) 25 114 115
                              Store 122 121
             123:     27(ptr) AccessChain 10(dti) 26
             124:      6(int) Load 123
             125:     27(ptr) AccessChain 10(dti) 26
             126:      6(int) Load 125
             128:    127(ptr) AccessChain 24(data) 25 126 115 26
             129:   16(float) Load 128
             130:   16(float) GroupNonUniformQuadBroadcast 35 129 26
             131:    127(ptr) AccessChain 24(data) 25 124 115 26
                              Store 131 130
             132:     27(ptr) AccessChain 10(dti) 26
             133:      6(int) Load 132
             134:     27(ptr) AccessChain 10(dti) 26
             135:      6(int) Load 134
             137:    118(ptr) AccessChain 24(data) 25 135 115
             138:   17(fvec4) Load 137
             139:  136(fvec2) VectorShuffle 138 138 0 1
             140:  136(fvec2) GroupNonUniformQuadBroadcast 35 139 26
             141:    118(ptr) AccessChain 24(data) 25 133 115
             142:   17(fvec4) Load 141
             143:   17(fvec4) VectorShuffle 142 140 4 5 2 3
                              Store 141 143
             144:     27(ptr) AccessChain 10(dti) 26
             145:      6(int) Load 144
             146:     27(ptr) AccessChain 10(dti) 26
             147:      6(int) Load 146
             149:    118(ptr) AccessChain 24(data) 25 147 115
             150:   17(fvec4) Load 149
             151:  148(fvec3) VectorShuffle 150 150 0 1 2
             152:  148(fvec3) GroupNonUniformQuadBroadcast 35 151 26
             153:    118(ptr) AccessChain 24(data) 25 145 115
             154:   17(fvec4) Load 153
             155:   17(fvec4) VectorShuffle 154 152 4 5 6 3
                              Store 153 155
             156:     27(ptr) AccessChain 10(dti) 26
             157:      6(int) Load 156
             159:     27(ptr) AccessChain 10(dti) 26
             160:      6(int) Load 159
             162:    161(ptr) AccessChain 24(data) 25 160 158
             163:   19(fvec4) Load 162
             164:   19(fvec4) GroupNonUniformQuadBroadcast 35 163 26
             165:    161(ptr) AccessChain 24(data) 25 157 158
                              Store 165 164
             166:     27(ptr) AccessChain 10(dti) 26
             167:      6(int) Load 166
             168:     27(ptr) AccessChain 10(dti) 26
             169:      6(int) Load 168
             171:    170(ptr) AccessChain 24(data) 25 169 158 26
             172:   18(float) Load 171
             173:   18(float) GroupNonUniformQuadBroadcast 35 172 26
             174:    170(ptr) AccessChain 24(data) 25 167 158 26
                              Store 174 173
             175:     27(ptr) AccessChain 10(dti) 26
             176:      6(int) Load 175
             177:     27(ptr) AccessChain 10(dti) 26
             178:      6(int) Load 177
             180:    161(ptr) AccessChain 24(data) 25 178 158
             181:   19(fvec4) Load 180
             182:  179(fvec2) VectorShuffle 181 181 0 1
             183:  179(fvec2) GroupNonUniformQuadBroadcast 35 182 26
             184:    161(ptr) AccessChain 24(data) 25 176 158
             185:   19(fvec4) Load 184
             186:   19(fvec4) VectorShuffle 185 183 4 5 2 3
                              Store 184 186
             187:     27(ptr) AccessChain 10(dti) 26
             188:      6(int) Load 187
             189:     27(ptr) AccessChain 10(dti) 26
             190:      6(int) Load 189
             192:    161(ptr) AccessChain 24(data) 25 190 158
             193:   19(fvec4) Load 192
             194:  191(fvec3) VectorShuffle 193 193 0 1 2
             195:  191(fvec3) GroupNonUniformQuadBroadcast 35 194 26
             196:    161(ptr) AccessChain 24(data) 25 188 158
             197:   19(fvec4) Load 196
             198:   19(fvec4) VectorShuffle 197 195 4 5 6 3
                              Store 196 198
             199:     27(ptr) AccessChain 10(dti) 26
             200:      6(int) Load 199
             201:     27(ptr) AccessChain 10(dti) 26
             202:      6(int) Load 201
             203:     32(ptr) AccessChain 24(data) 25 202 25
             204:   13(ivec4) Load 203
             206:   13(ivec4) GroupNonUniformQuadBroadcast 35 204 205
             207:     32(ptr) AccessChain 24(data) 25 200 25
                              Store 207 206
             208:     27(ptr) AccessChain 10(dti) 26
             209:      6(int) Load 208
             210:     27(ptr) AccessChain 10(dti) 26
             211:      6(int) Load 210
             212:     42(ptr) AccessChain 24(data) 25 211 25 26
             213:      6(int) Load 212
             214:      6(int) GroupNonUniformQuadBroadcast 35 213 205
             215:     42(ptr) AccessChain 24(data) 25 209 25 26
                              Store 215 214
             216:     27(ptr) AccessChain 10(dti) 26
             217:      6(int) Load 216
             218:     27(ptr) AccessChain 10(dti) 26
             219:      6(int) Load 218
             220:     32(ptr) AccessChain 24(data) 25 219 25
             221:   13(ivec4) Load 220
             222:   51(ivec2) VectorShuffle 221 221 0 1
             223:   51(ivec2) GroupNonUniformQuadBroadcast 35 222 205
             224:     32(ptr) AccessChain 24(data) 25 217 25
             225:   13(ivec4) Load 224
             226:   13(ivec4) VectorShuffle 225 223 4 5 2 3
                              Store 224 226
             227:     27(ptr) AccessChain 10(dti) 26
             228:      6(int) Load 227
             229:     27(ptr) AccessChain 10(dti) 26
             230:      6(int) Load 229
             231:     32(ptr) AccessChain 24(data) 25 230 25
             232:   13(ivec4) Load 231
             233:    7(ivec3) VectorShuffle 232 232 0 1 2
             234:    7(ivec3) GroupNonUniformQuadBroadcast 35 233 205
             235:     32(ptr) AccessChain 24(data) 25 228 25
             236:   13(ivec4) Load 235
             237:   13(ivec4) VectorShuffle 236 234 4 5 6 3
                              Store 235 237
             238:     27(ptr) AccessChain 10(dti) 26
             239:      6(int) Load 238
             240:     27(ptr) AccessChain 10(dti) 26
             241:      6(int) Load 240
             242:     75(ptr) AccessChain 24(data) 25 241 72
             243:   15(ivec4) Load 242
             244:   15(ivec4) GroupNonUniformQuadBroadcast 35 243 205
             245:     75(ptr) AccessChain 24(data) 25 239 72
                              Store 245 244
             246:     27(ptr) AccessChain 10(dti) 26
             247:      6(int) Load 246
             248:     27(ptr) AccessChain 10(dti) 26
             249:      6(int) Load 248
             250:     84(ptr) AccessChain 24(data) 25 249 72 26
             251:     14(int) Load 250
             252:     14(int) GroupNonUniformQuadBroadcast 35 251 205
             253:     84(ptr) AccessChain 24(data) 25 247 72 26
                              Store 253 252
             254:     27(ptr) AccessChain 10(dti) 26
             255:      6(int) Load 254
             256:     27(ptr) AccessChain 10(dti) 26
             257:      6(int) Load 256
             258:     75(ptr) AccessChain 24(data) 25 257 72
             259:   15(ivec4) Load 258
             260:   93(ivec2) VectorShuffle 259 259 0 1
             261:   93(ivec2) GroupNonUniformQuadBroadcast 35 260 205
             262:     75(ptr) AccessChain 24(data) 25 255 72
             263:   15(ivec4) Load 262
             264:   15(ivec4) VectorShuffle 263 261 4 5 2 3
                              Store 262 264
             265:     27(ptr) AccessChain 10(dti) 26
             266:      6(int) Load 265
             267:     27(ptr) AccessChain 10(dti) 26
             268:      6(int) Load 267
             269:     75(ptr) AccessChain 24(data) 25 268 72
             270:   15(ivec4) Load 269
             271:  105(ivec3) VectorShuffle 270 270 0 1 2
             272:  105(ivec3) GroupNonUniformQuadBroadcast 35 271 205
             273:     75(ptr) AccessChain 24(data) 25 266 72
             274:   15(ivec4) Load 273
             275:   15(ivec4) VectorShuffle 274 272 4 5 6 3
                              Store 273 275
             276:     27(ptr) AccessChain 10(dti) 26
             277:      6(int) Load 276
             278:     27(ptr) AccessChain 10(dti) 26
             279:      6(int) Load 278
             280:    118(ptr) AccessChain 24(data) 25 279 115
             281:   17(fvec4) Load 280
             282:   17(fvec4) GroupNonUniformQuadBroadcast 35 281 205
             283:    118(ptr) AccessChain 24(data) 25 277 115
                              Store 283 282
             284:     27(ptr) AccessChain 10(dti) 26
             285:      6(int) Load 284
             286:     27(ptr) AccessChain 10(dti) 26
             287:      6(int) Load 286
             288:    127(ptr) AccessChain 24(data) 25 287 115 26
             289:   16(float) Load 288
             290:   16(float) GroupNonUniformQuadBroadcast 35 289 205
             291:    127(ptr) AccessChain 24(data) 25 285 115 26
                              Store 291 290
             292:     27(ptr) AccessChain 10(dti) 26
             293:      6(int) Load 292
             294:     27(ptr) AccessChain 10(dti) 26
             295:      6(int) Load 294
             296:    118(ptr) AccessChain 24(data) 25 295 115
             297:   17(fvec4) Load 296
             298:  136(fvec2) VectorShuffle 297 297 0 1
             299:  136(fvec2) GroupNonUniformQuadBroadcast 35 298 205
             300:    118(ptr) AccessChain 24(data) 25 293 115
             301:   17(fvec4) Load 300
             302:   17(fvec4) VectorShuffle 301 299 4 5 2 3
                              Store 300 302
             303:     27(ptr) AccessChain 10(dti) 26
             304:      6(int) Load 303
             305:     27(ptr) AccessChain 10(dti) 26
             306:      6(int) Load 305
             307:    118(ptr) AccessChain 24(data) 25 306 115
             308:   17(fvec4) Load 307
             309:  148(fvec3) VectorShuffle 308 308 0 1 2
             310:  148(fvec3) GroupNonUniformQuadBroadcast 35 309 205
             311:    118(ptr) AccessChain 24(data) 25 304 115
             312:   17(fvec4) Load 311
             313:   17(fvec4) VectorShuffle 312 310 4 5 6 3
                              Store 311 313
             314:     27(ptr) AccessChain 10(dti) 26
             315:      6(int) Load 314
             316:     27(ptr) AccessChain 10(dti) 26
             317:      6(int) Load 316
             318:    161(ptr) AccessChain 24(data) 25 317 158
             319:   19(fvec4) Load 318
             320:   19(fvec4) GroupNonUniformQuadBroadcast 35 319 205
             321:    161(ptr) AccessChain 24(data) 25 315 158
                              Store 321 320
             322:     27(ptr) AccessChain 10(dti) 26
             323:      6(int) Load 322
             324:     27(ptr) AccessChain 10(dti) 26
             325:      6(int) Load 324
             326:    170(ptr) AccessChain 24(data) 25 325 158 26
             327:   18(float) Load 326
             328:   18(float) GroupNonUniformQuadBroadcast 35 327 205
             329:    170(ptr) AccessChain 24(data) 25 323 158 26
                              Store 329 328
             330:     27(ptr) AccessChain 10(dti) 26
             331:      6(int) Load 330
             332:     27(ptr) AccessChain 10(dti) 26
             333:      6(int) Load 332
             334:    161(ptr) AccessChain 24(data) 25 333 158
             335:   19(fvec4) Load 334
             336:  179(fvec2) VectorShuffle 335 335 0 1
             337:  179(fvec2) GroupNonUniformQuadBroadcast 35 336 205
             338:    161(ptr) AccessChain 24(data) 25 331 158
             339:   19(fvec4) Load 338
             340:   19(fvec4) VectorShuffle 339 337 4 5 2 3
                              Store 338 340
             341:     27(ptr) AccessChain 10(dti) 26
             342:      6(int) Load 341
             343:     27(ptr) AccessChain 10(dti) 26
             344:      6(int) Load 343
             345:    161(ptr) AccessChain 24(data) 25 344 158
             346:   19(fvec4) Load 345
             347:  191(fvec3) VectorShuffle 346 346 0 1 2
             348:  191(fvec3) GroupNonUniformQuadBroadcast 35 347 205
             349:    161(ptr) AccessChain 24(data) 25 342 158
             350:   19(fvec4) Load 349
             351:   19(fvec4) VectorShuffle 350 348 4 5 6 3
                              Store 349 351
             352:     27(ptr) AccessChain 10(dti) 26
             353:      6(int) Load 352
             354:     27(ptr) AccessChain 10(dti) 26
             355:      6(int) Load 354
             356:     32(ptr) AccessChain 24(data) 25 355 25
             357:   13(ivec4) Load 356
             359:   13(ivec4) GroupNonUniformQuadBroadcast 35 357 358
             360:     32(ptr) AccessChain 24(data) 25 353 25
                              Store 360 359
             361:     27(ptr) AccessChain 10(dti) 26
             362:      6(int) Load 361
             363:     27(ptr) AccessChain 10(dti) 26
             364:      6(int) Load 363
             365:     42(ptr) AccessChain 24(data) 25 364 25 26
             366:      6(int) Load 365
             367:      6(int) GroupNonUniformQuadBroadcast 35 366 358
             368:     42(ptr) AccessChain 24(data) 25 362 25 26
                              Store 368 367
             369:     27(ptr) AccessChain 10(dti) 26
             370:      6(int) Load 369
             371:     27(ptr) AccessChain 10(dti) 26
             372:      6(int) Load 371
             373:     32(ptr) AccessChain 24(data) 25 372 25
             374:   13(ivec4) Load 373
             375:   51(ivec2) VectorShuffle 374 374 0 1
             376:   51(ivec2) GroupNonUniformQuadBroadcast 35 375 358
             377:     32(ptr) AccessChain 24(data) 25 370 25
             378:   13(ivec4) Load 377
             379:   13(ivec4) VectorShuffle 378 376 4 5 2 3
                              Store 377 379
             380:     27(ptr) AccessChain 10(dti) 26
             381:      6(int) Load 380
             382:     27(ptr) AccessChain 10(dti) 26
             383:      6(int) Load 382
             384:     32(ptr) AccessChain 24(data) 25 383 25
             385:   13(ivec4) Load 384
             386:    7(ivec3) VectorShuffle 385 385 0 1 2
             387:    7(ivec3) GroupNonUniformQuadBroadcast 35 386 358
             388:     32(ptr) AccessChain 24(data) 25 381 25
             389:   13(ivec4) Load 388
             390:   13(ivec4) VectorShuffle 389 387 4 5 6 3
                              Store 388 390
             391:     27(ptr) AccessChain 10(dti) 26
             392:      6(int) Load 391
             393:     27(ptr) AccessChain 10(dti) 26
             394:      6(int) Load 393
             395:     75(ptr) AccessChain 24(data) 25 394 72
             396:   15(ivec4) Load 395
             397:   15(ivec4) GroupNonUniformQuadBroadcast 35 396 358
             398:     75(ptr) AccessChain 24(data) 25 392 72
                              Store 398 397
             399:     27(ptr) AccessChain 10(dti) 26
             400:      6(int) Load 399
             401:     27(ptr) AccessChain 10(dti) 26
             402:      6(int) Load 401
             403:     84(ptr) AccessChain 24(data) 25 402 72 26
             404:     14(int) Load 403
             405:     14(int) GroupNonUniformQuadBroadcast 35 404 358
             406:     84(ptr) AccessChain 24(data) 25 400 72 26
                              Store 406 405
             407:     27(ptr) AccessChain 10(dti) 26
             408:      6(int) Load 407
             409:     27(ptr) AccessChain 10(dti) 26
             410:      6(int) Load 409
             411:     75(ptr) AccessChain 24(data) 25 410 72
             412:   15(ivec4) Load 411
             413:   93(ivec2) VectorShuffle 412 412 0 1
             414:   93(ivec2) GroupNonUniformQuadBroadcast 35 413 358
             415:     75(ptr) AccessChain 24(data) 25 408 72
             416:   15(ivec4) Load 415
             417:   15(ivec4) VectorShuffle 416 414 4 5 2 3
                              Store 415 417
             418:     27(ptr) AccessChain 10(dti) 26
             419:      6(int) Load 418
             420:     27(ptr) AccessChain 10(dti) 26
             421:      6(int) Load 420
             422:     75(ptr) AccessChain 24(data) 25 421 72
             423:   15(ivec4) Load 422
             424:  105(ivec3) VectorShuffle 423 423 0 1 2
             425:  105(ivec3) GroupNonUniformQuadBroadcast 35 424 358
             426:     75(ptr) AccessChain 24(data) 25 419 72
             427:   15(ivec4) Load 426
             428:   15(ivec4) VectorShuffle 427 425 4 5 6 3
                              Store 426 428
             429:     27(ptr) AccessChain 10(dti) 26
             430:      6(int) Load 429
             431:     27(ptr) AccessChain 10(dti) 26
             432:      6(int) Load 431
             433:    118(ptr) AccessChain 24(data) 25 432 115
             434:   17(fvec4) Load 433
             435:   17(fvec4) GroupNonUniformQuadBroadcast 35 434 358
             436:    118(ptr) AccessChain 24(data) 25 430 115
                              Store 436 435
             437:     27(ptr) AccessChain 10(dti) 26
             438:      6(int) Load 437
             439:     27(ptr) AccessChain 10(dti) 26
             440:      6(int) Load 439
             441:    127(ptr) AccessChain 24(data) 25 440 115 26
             442:   16(float) Load 441
             443:   16(float) GroupNonUniformQuadBroadcast 35 442 358
             444:    127(ptr) AccessChain 24(data) 25 438 115 26
                              Store 444 443
             445:     27(ptr) AccessChain 10(dti) 26
             446:      6(int) Load 445
             447:     27(ptr) AccessChain 10(dti) 26
             448:      6(int) Load 447
             449:    118(ptr) AccessChain 24(data) 25 448 115
             450:   17(fvec4) Load 449
             451:  136(fvec2) VectorShuffle 450 450 0 1
             452:  136(fvec2) GroupNonUniformQuadBroadcast 35 451 358
             453:    118(ptr) AccessChain 24(data) 25 446 115
             454:   17(fvec4) Load 453
             455:   17(fvec4) VectorShuffle 454 452 4 5 2 3
                              Store 453 455
             456:     27(ptr) AccessChain 10(dti) 26
             457:      6(int) Load 456
             458:     27(ptr) AccessChain 10(dti) 26
             459:      6(int) Load 458
             460:    118(ptr) AccessChain 24(data) 25 459 115
             461:   17(fvec4) Load 460
             462:  148(fvec3) VectorShuffle 461 461 0 1 2
             463:  148(fvec3) GroupNonUniformQuadBroadcast 35 462 358
             464:    118(ptr) AccessChain 24(data) 25 457 115
             465:   17(fvec4) Load 464
             466:   17(fvec4) VectorShuffle 465 463 4 5 6 3
                              Store 464 466
             467:     27(ptr) AccessChain 10(dti) 26
             468:      6(int) Load 467
             469:     27(ptr) AccessChain 10(dti) 26
             470:      6(int) Load 469
             471:    161(ptr) AccessChain 24(data) 25 470 158
             472:   19(fvec4) Load 471
             473:   19(fvec4) GroupNonUniformQuadBroadcast 35 472 358
             474:    161(ptr) AccessChain 24(data) 25 468 158
                              Store 474 473
             475:     27(ptr) AccessChain 10(dti) 26
             476:      6(int) Load 475
             477:     27(ptr) AccessChain 10(dti) 26
             478:      6(int) Load 477
             479:    170(ptr) AccessChain 24(data) 25 478 158 26
             480:   18(float) Load 479
             481:   18(float) GroupNonUniformQuadBroadcast 35 480 358
             482:    170(ptr) AccessChain 24(data) 25 476 158 26
                              Store 482 481
             483:     27(ptr) AccessChain 10(dti) 26
             484:      6(int) Load 483
             485:     27(ptr) AccessChain 10(dti) 26
             486:      6(int) Load 485
             487:    161(ptr) AccessChain 24(data) 25 486 158
             488:   19(fvec4) Load 487
             489:  179(fvec2) VectorShuffle 488 488 0 1
             490:  179(fvec2) GroupNonUniformQuadBroadcast 35 489 358
             491:    161(ptr) AccessChain 24(data) 25 484 158
             492:   19(fvec4) Load 491
             493:   19(fvec4) VectorShuffle 492 490 4 5 2 3
                              Store 491 493
             494:     27(ptr) AccessChain 10(dti) 26
             495:      6(int) Load 494
             496:     27(ptr) AccessChain 10(dti) 26
             497:      6(int) Load 496
             498:    161(ptr) AccessChain 24(data) 25 497 158
             499:   19(fvec4) Load 498
             500:  191(fvec3) VectorShuffle 499 499 0 1 2
             501:  191(fvec3) GroupNonUniformQuadBroadcast 35 500 358
             502:    161(ptr) AccessChain 24(data) 25 495 158
             503:   19(fvec4) Load 502
             504:   19(fvec4) VectorShuffle 503 501 4 5 6 3
                              Store 502 504
             505:     27(ptr) AccessChain 10(dti) 26
             506:      6(int) Load 505
             507:     27(ptr) AccessChain 10(dti) 26
             508:      6(int) Load 507
             509:     32(ptr) AccessChain 24(data) 25 508 25
             510:   13(ivec4) Load 509
             511:   13(ivec4) GroupNonUniformQuadBroadcast 35 510 35
             512:     32(ptr) AccessChain 24(data) 25 506 25
                              Store 512 511
             513:     27(ptr) AccessChain 10(dti) 26
             514:      6(int) Load 513
             515:     27(ptr) AccessChain 10(dti) 26
             516:      6(int) Load 515
             517:     42(ptr) AccessChain 24(data) 25 516 25 26
             518:      6(int) Load 517
             519:      6(int) GroupNonUniformQuadBroadcast 35 518 35
             520:     42(ptr) AccessChain 24(data) 25 514 25 26
                              Store 520 519
             521:     27(ptr) AccessChain 10(dti) 26
             522:      6(int) Load 521
             523:     27(ptr) AccessChain 10(dti) 26
             524:      6(int) Load 523
             525:     32(ptr) AccessChain 24(data) 25 524 25
             526:   13(ivec4) Load 525
             527:   51(ivec2) VectorShuffle 526 526 0 1
             528:   51(ivec2) GroupNonUniformQuadBroadcast 35 527 35
             529:     32(ptr) AccessChain 24(data) 25 522 25
             530:   13(ivec4) Load 529
             531:   13(ivec4) VectorShuffle 530 528 4 5 2 3
                              Store 529 531
             532:     27(ptr) AccessChain 10(dti) 26
             533:      6(int) Load 532
             534:     27(ptr) AccessChain 10(dti) 26
             535:      6(int) Load 534
             536:     32(ptr) AccessChain 24(data) 25 535 25
             537:   13(ivec4) Load 536
             538:    7(ivec3) VectorShuffle 537 537 0 1 2
             539:    7(ivec3) GroupNonUniformQuadBroadcast 35 538 35
             540:     32(ptr) AccessChain 24(data) 25 533 25
             541:   13(ivec4) Load 540
             542:   13(ivec4) VectorShuffle 541 539 4 5 6 3
                              Store 540 542
             543:     27(ptr) AccessChain 10(dti) 26
             544:      6(int) Load 543
             545:     27(ptr) AccessChain 10(dti) 26
             546:      6(int) Load 545
             547:     75(ptr) AccessChain 24(data) 25 546 72
             548:   15(ivec4) Load 547
             549:   15(ivec4) GroupNonUniformQuadBroadcast 35 548 35
             550:     75(ptr) AccessChain 24(data) 25 544 72
                              Store 550 549
             551:     27(ptr) AccessChain 10(dti) 26
             552:      6(int) Load 551
             553:     27(ptr) AccessChain 10(dti) 26
             554:      6(int) Load 553
             555:     84(ptr) AccessChain 24(data) 25 554 72 26
             556:     14(int) Load 555
             557:     14(int) GroupNonUniformQuadBroadcast 35 556 35
             558:     84(ptr) AccessChain 24(data) 25 552 72 26
                              Store 558 557
             559:     27(ptr) AccessChain 10(dti) 26
             560:      6(int) Load 559
             561:     27(ptr) AccessChain 10(dti) 26
             562:      6(int) Load 561
             563:     75(ptr) AccessChain 24(data) 25 562 72
             564:   15(ivec4) Load 563
             565:   93(ivec2) VectorShuffle 564 564 0 1
             566:   93(ivec2) GroupNonUniformQuadBroadcast 35 565 35
             567:     75(ptr) AccessChain 24(data) 25 560 72
             568:   15(ivec4) Load 567
             569:   15(ivec4) VectorShuffle 568 566 4 5 2 3
                              Store 567 569
             570:     27(ptr) AccessChain 10(dti) 26
             571:      6(int) Load 570
             572:     27(ptr) AccessChain 10(dti) 26
             573:      6(int) Load 572
             574:     75(ptr) AccessChain 24(data) 25 573 72
             575:   15(ivec4) Load 574
             576:  105(ivec3) VectorShuffle 575 575 0 1 2
             577:  105(ivec3) GroupNonUniformQuadBroadcast 35 576 35
             578:     75(ptr) AccessChain 24(data) 25 571 72
             579:   15(ivec4) Load 578
             580:   15(ivec4) VectorShuffle 579 577 4 5 6 3
                              Store 578 580
             581:     27(ptr) AccessChain 10(dti) 26
             582:      6(int) Load 581
             583:     27(ptr) AccessChain 10(dti) 26
             584:      6(int) Load 583
             585:    118(ptr) AccessChain 24(data) 25 584 115
             586:   17(fvec4) Load 585
             587:   17(fvec4) GroupNonUniformQuadBroadcast 35 586 35
             588:    118(ptr) AccessChain 24(data) 25 582 115
                              Store 588 587
             589:     27(ptr) AccessChain 10(dti) 26
             590:      6(int) Load 589
             591:     27(ptr) AccessChain 10(dti) 26
             592:      6(int) Load 591
             593:    127(ptr) AccessChain 24(data) 25 592 115 26
             594:   16(float) Load 593
             595:   16(float) GroupNonUniformQuadBroadcast 35 594 35
             596:    127(ptr) AccessChain 24(data) 25 590 115 26
                              Store 596 595
             597:     27(ptr) AccessChain 10(dti) 26
             598:      6(int) Load 597
             599:     27(ptr) AccessChain 10(dti) 26
             600:      6(int) Load 599
             601:    118(ptr) AccessChain 24(data) 25 600 115
             602:   17(fvec4) Load 601
             603:  136(fvec2) VectorShuffle 602 602 0 1
             604:  136(fvec2) GroupNonUniformQuadBroadcast 35 603 35
             605:    118(ptr) AccessChain 24(data) 25 598 115
             606:   17(fvec4) Load 605
             607:   17(fvec4) VectorShuffle 606 604 4 5 2 3
                              Store 605 607
             608:     27(ptr) AccessChain 10(dti) 26
             609:      6(int) Load 608
             610:     27(ptr) AccessChain 10(dti) 26
             611:      6(int) Load 610
             612:    118(ptr) AccessChain 24(data) 25 611 115
             613:   17(fvec4) Load 612
             614:  148(fvec3) VectorShuffle 613 613 0 1 2
             615:  148(fvec3) GroupNonUniformQuadBroadcast 35 614 35
             616:    118(ptr) AccessChain 24(data) 25 609 115
             617:   17(fvec4) Load 616
             618:   17(fvec4) VectorShuffle 617 615 4 5 6 3
                              Store 616 618
             619:     27(ptr) AccessChain 10(dti) 26
             620:      6(int) Load 619
             621:     27(ptr) AccessChain 10(dti) 26
             622:      6(int) Load 621
             623:    161(ptr) AccessChain 24(data) 25 622 158
             624:   19(fvec4) Load 623
             625:   19(fvec4) GroupNonUniformQuadBroadcast 35 624 35
             626:    161(ptr) AccessChain 24(data) 25 620 158
                              Store 626 625
             627:     27(ptr) AccessChain 10(dti) 26
             628:      6(int) Load 627
             629:     27(ptr) AccessChain 10(dti) 26
             630:      6(int) Load 629
             631:    170(ptr) AccessChain 24(data) 25 630 158 26
             632:   18(float) Load 631
             633:   18(float) GroupNonUniformQuadBroadcast 35 632 35
             634:    170(ptr) AccessChain 24(data) 25 628 158 26
                              Store 634 633
             635:     27(ptr) AccessChain 10(dti) 26
             636:      6(int) Load 635
             637:     27(ptr) AccessChain 10(dti) 26
             638:      6(int) Load 637
             639:    161(ptr) AccessChain 24(data) 25 638 158
             640:   19(fvec4) Load 639
             641:  179(fvec2) VectorShuffle 640 640 0 1
             642:  179(fvec2) GroupNonUniformQuadBroadcast 35 641 35
             643:    161(ptr) AccessChain 24(data) 25 636 158
             644:   19(fvec4) Load 643
             645:   19(fvec4) VectorShuffle 644 642 4 5 2 3
                              Store 643 645
             646:     27(ptr) AccessChain 10(dti) 26
             647:      6(int) Load 646
             648:     27(ptr) AccessChain 10(dti) 26
             649:      6(int) Load 648
             650:    161(ptr) AccessChain 24(data) 25 649 158
             651:   19(fvec4) Load 650
             652:  191(fvec3) VectorShuffle 651 651 0 1 2
             653:  191(fvec3) GroupNonUniformQuadBroadcast 35 652 35
             654:    161(ptr) AccessChain 24(data) 25 647 158
             655:   19(fvec4) Load 654
             656:   19(fvec4) VectorShuffle 655 653 4 5 6 3
                              Store 654 656
             657:     27(ptr) AccessChain 10(dti) 26
             658:      6(int) Load 657
             659:     27(ptr) AccessChain 10(dti) 26
             660:      6(int) Load 659
             661:     32(ptr) AccessChain 24(data) 25 660 25
             662:   13(ivec4) Load 661
             663:   13(ivec4) GroupNonUniformQuadSwap 35 662 26
             664:     32(ptr) AccessChain 24(data) 25 658 25
                              Store 664 663
             665:     27(ptr) AccessChain 10(dti) 26
             666:      6(int) Load 665
             667:     27(ptr) AccessChain 10(dti) 26
             668:      6(int) Load 667
             669:     42(ptr) AccessChain 24(data) 25 668 25 26
             670:      6(int) Load 669
             671:      6(int) GroupNonUniformQuadSwap 35 670 26
             672:     42(ptr) AccessChain 24(data) 25 666 25 26
                              Store 672 671
             673:     27(ptr) AccessChain 10(dti) 26
             674:      6(int) Load 673
             675:     27(ptr) AccessChain 10(dti) 26
             676:      6(int) Load 675
             677:     32(ptr) AccessChain 24(data) 25 676 25
             678:   13(ivec4) Load 677
             679:   51(ivec2) VectorShuffle 678 678 0 1
             680:   51(ivec2) GroupNonUniformQuadSwap 35 679 26
             681:     32(ptr) AccessChain 24(data) 25 674 25
             682:   13(ivec4) Load 681
             683:   13(ivec4) VectorShuffle 682 680 4 5 2 3
                              Store 681 683
             684:     27(ptr) AccessChain 10(dti) 26
             685:      6(int) Load 684
             686:     27(ptr) AccessChain 10(dti) 26
             687:      6(int) Load 686
             688:     32(ptr) AccessChain 24(data) 25 687 25
             689:   13(ivec4) Load 688
             690:    7(ivec3) VectorShuffle 689 689 0 1 2
             691:    7(ivec3) GroupNonUniformQuadSwap 35 690 26
             692:     32(ptr) AccessChain 24(data) 25 685 25
             693:   13(ivec4) Load 692
             694:   13(ivec4) VectorShuffle 693 691 4 5 6 3
                              Store 692 694
             695:     27(ptr) AccessChain 10(dti) 26
             696:      6(int) Load 695
             697:     27(ptr) AccessChain 10(dti) 26
             698:      6(int) Load 697
             699:     75(ptr) AccessChain 24(data) 25 698 72
             700:   15(ivec4) Load 699
             701:   15(ivec4) GroupNonUniformQuadSwap 35 700 26
             702:     75(ptr) AccessChain 24(data) 25 696 72
                              Store 702 701
             703:     27(ptr) AccessChain 10(dti) 26
             704:      6(int) Load 703
             705:     27(ptr) AccessChain 10(dti) 26
             706:      6(int) Load 705
             707:     84(ptr) AccessChain 24(data) 25 706 72 26
             708:     14(int) Load 707
             709:     14(int) GroupNonUniformQuadSwap 35 708 26
             710:     84(ptr) AccessChain 24(data) 25 704 72 26
                              Store 710 709
             711:     27(ptr) AccessChain 10(dti) 26
             712:      6(int) Load 711
             713:     27(ptr) AccessChain 10(dti) 26
             714:      6(int) Load 713
             715:     75(ptr) AccessChain 24(data) 25 714 72
             716:   15(ivec4) Load 715
             717:   93(ivec2) VectorShuffle 716 716 0 1
             718:   93(ivec2) GroupNonUniformQuadSwap 35 717 26
             719:     75(ptr) AccessChain 24(data) 25 712 72
             720:   15(ivec4) Load 719
             721:   15(ivec4) VectorShuffle 720 718 4 5 2 3
                              Store 719 721
             722:     27(ptr) AccessChain 10(dti) 26
             723:      6(int) Load 722
             724:     27(ptr) AccessChain 10(dti) 26
             725:      6(int) Load 724
             726:     75(ptr) AccessChain 24(data) 25 725 72
             727:   15(ivec4) Load 726
             728:  105(ivec3) VectorShuffle 727 727 0 1 2
             729:  105(ivec3) GroupNonUniformQuadSwap 35 728 26
             730:     75(ptr) AccessChain 24(data) 25 723 72
             731:   15(ivec4) Load 730
             732:   15(ivec4) VectorShuffle 731 729 4 5 6 3
                              Store 730 732
             733:     27(ptr) AccessChain 10(dti) 26
             734:      6(int) Load 733
             735:     27(ptr) AccessChain 10(dti) 26
             736:      6(int) Load 735
             737:    118(ptr) AccessChain 24(data) 25 736 115
             738:   17(fvec4) Load 737
             739:   17(fvec4) GroupNonUniformQuadSwap 35 738 26
             740:    118(ptr) AccessChain 24(data) 25 734 115
                              Store 740 739
             741:     27(ptr) AccessChain 10(dti) 26
             742:      6(int) Load 741
             743:     27(ptr) AccessChain 10(dti) 26
             744:      6(int) Load 743
             745:    127(ptr) AccessChain 24(data) 25 744 115 26
             746:   16(float) Load 745
             747:   16(float) GroupNonUniformQuadSwap 35 746 26
             748:    127(ptr) AccessChain 24(data) 25 742 115 26
                              Store 748 747
             749:     27(ptr) AccessChain 10(dti) 26
             750:      6(int) Load 749
             751:     27(ptr) AccessChain 10(dti) 26
             752:      6(int) Load 751
             753:    118(ptr) AccessChain 24(data) 25 752 115
             754:   17(fvec4) Load 753
             755:  136(fvec2) VectorShuffle 754 754 0 1
             756:  136(fvec2) GroupNonUniformQuadSwap 35 755 26
             757:    118(ptr) AccessChain 24(data) 25 750 115
             758:   17(fvec4) Load 757
             759:   17(fvec4) VectorShuffle 758 756 4 5 2 3
                              Store 757 759
             760:     27(ptr) AccessChain 10(dti) 26
             761:      6(int) Load 760
             762:     27(ptr) AccessChain 10(dti) 26
             763:      6(int) Load 762
             764:    118(ptr) AccessChain 24(data) 25 763 115
             765:   17(fvec4) Load 764
             766:  148(fvec3) VectorShuffle 765 765 0 1 2
             767:  148(fvec3) GroupNonUniformQuadSwap 35 766 26
             768:    118(ptr) AccessChain 24(data) 25 761 115
             769:   17(fvec4) Load 768
             770:   17(fvec4) VectorShuffle 769 767 4 5 6 3
                              Store 768 770
             771:     27(ptr) AccessChain 10(dti) 26
             772:      6(int) Load 771
             773:     27(ptr) AccessChain 10(dti) 26
             774:      6(int) Load 773
             775:    161(ptr) AccessChain 24(data) 25 774 158
             776:   19(fvec4) Load 775
             777:   19(fvec4) GroupNonUniformQuadSwap 35 776 26
             778:    161(ptr) AccessChain 24(data) 25 772 158
                              Store 778 777
             779:     27(ptr) AccessChain 10(dti) 26
             780:      6(int) Load 779
             781:     27(ptr) AccessChain 10(dti) 26
             782:      6(int) Load 781
             783:    170(ptr) AccessChain 24(data) 25 782 158 26
             784:   18(float) Load 783
             785:   18(float) GroupNonUniformQuadSwap 35 784 26
             786:    170(ptr) AccessChain 24(data) 25 780 158 26
                              Store 786 785
             787:     27(ptr) AccessChain 10(dti) 26
             788:      6(int) Load 787
             789:     27(ptr) AccessChain 10(dti) 26
             790:      6(int) Load 789
             791:    161(ptr) AccessChain 24(data) 25 790 158
             792:   19(fvec4) Load 791
             793:  179(fvec2) VectorShuffle 792 792 0 1
             794:  179(fvec2) GroupNonUniformQuadSwap 35 793 26
             795:    161(ptr) AccessChain 24(data) 25 788 158
             796:   19(fvec4) Load 795
             797:   19(fvec4) VectorShuffle 796 794 4 5 2 3
                              Store 795 797
             798:     27(ptr) AccessChain 10(dti) 26
             799:      6(int) Load 798
             800:     27(ptr) AccessChain 10(dti) 26
             801:      6(int) Load 800
             802:    161(ptr) AccessChain 24(data) 25 801 158
             803:   19(fvec4) Load 802
             804:  191(fvec3) VectorShuffle 803 803 0 1 2
             805:  191(fvec3) GroupNonUniformQuadSwap 35 804 26
             806:    161(ptr) AccessChain 24(data) 25 799 158
             807:   19(fvec4) Load 806
             808:   19(fvec4) VectorShuffle 807 805 4 5 6 3
                              Store 806 808
             809:     27(ptr) AccessChain 10(dti) 26
             810:      6(int) Load 809
             811:     27(ptr) AccessChain 10(dti) 26
             812:      6(int) Load 811
             813:     32(ptr) AccessChain 24(data) 25 812 25
             814:   13(ivec4) Load 813
             815:   13(ivec4) GroupNonUniformQuadSwap 35 814 205
             816:     32(ptr) AccessChain 24(data) 25 810 25
                              Store 816 815
             817:     27(ptr) AccessChain 10(dti) 26
             818:      6(int) Load 817
             819:     27(ptr) AccessChain 10(dti) 26
             820:      6(int) Load 819
             821:     42(ptr) AccessChain 24(data) 25 820 25 26
             822:      6(int) Load 821
             823:      6(int) GroupNonUniformQuadSwap 35 822 205
             824:     42(ptr) AccessChain 24(data) 25 818 25 26
                              Store 824 823
             825:     27(ptr) AccessChain 10(dti) 26
             826:      6(int) Load 825
             827:     27(ptr) AccessChain 10(dti) 26
             828:      6(int) Load 827
             829:     32(ptr) AccessChain 24(data) 25 828 25
             830:   13(ivec4) Load 829
             831:   51(ivec2) VectorShuffle 830 830 0 1
             832:   51(ivec2) GroupNonUniformQuadSwap 35 831 205
             833:     32(ptr) AccessChain 24(data) 25 826 25
             834:   13(ivec4) Load 833
             835:   13(ivec4) VectorShuffle 834 832 4 5 2 3
                              Store 833 835
             836:     27(ptr) AccessChain 10(dti) 26
             837:      6(int) Load 836
             838:     27(ptr) AccessChain 10(dti) 26
             839:      6(int) Load 838
             840:     32(ptr) AccessChain 24(data) 25 839 25
             841:   13(ivec4) Load 840
             842:    7(ivec3) VectorShuffle 841 841 0 1 2
             843:    7(ivec3) GroupNonUniformQuadSwap 35 842 205
             844:     32(ptr) AccessChain 24(data) 25 837 25
             845:   13(ivec4) Load 844
             846:   13(ivec4) VectorShuffle 845 843 4 5 6 3
                              Store 844 846
             847:     27(ptr) AccessChain 10(dti) 26
             848:      6(int) Load 847
             849:     27(ptr) AccessChain 10(dti) 26
             850:      6(int) Load 849
             851:     75(ptr) AccessChain 24(data) 25 850 72
             852:   15(ivec4) Load 851
             853:   15(ivec4) GroupNonUniformQuadSwap 35 852 205
             854:     75(ptr) AccessChain 24(data) 25 848 72
                              Store 854 853
             855:     27(ptr) AccessChain 10(dti) 26
             856:      6(int) Load 855
             857:     27(ptr) AccessChain 10(dti) 26
             858:      6(int) Load 857
             859:     84(ptr) AccessChain 24(data) 25 858 72 26
             860:     14(int) Load 859
             861:     14(int) GroupNonUniformQuadSwap 35 860 205
             862:     84(ptr) AccessChain 24(data) 25 856 72 26
                              Store 862 861
             863:     27(ptr) AccessChain 10(dti) 26
             864:      6(int) Load 863
             865:     27(ptr) AccessChain 10(dti) 26
             866:      6(int) Load 865
             867:     75(ptr) AccessChain 24(data) 25 866 72
             868:   15(ivec4) Load 867
             869:   93(ivec2) VectorShuffle 868 868 0 1
             870:   93(ivec2) GroupNonUniformQuadSwap 35 869 205
             871:     75(ptr) AccessChain 24(data) 25 864 72
             872:   15(ivec4) Load 871
             873:   15(ivec4) VectorShuffle 872 870 4 5 2 3
                              Store 871 873
             874:     27(ptr) AccessChain 10(dti) 26
             875:      6(int) Load 874
             876:     27(ptr) AccessChain 10(dti) 26
             877:      6(int) Load 876
             878:     75(ptr) AccessChain 24(data) 25 877 72
             879:   15(ivec4) Load 878
             880:  105(ivec3) VectorShuffle 879 879 0 1 2
             881:  105(ivec3) GroupNonUniformQuadSwap 35 880 205
             882:     75(ptr) AccessChain 24(data) 25 875 72
             883:   15(ivec4) Load 882
             884:   15(ivec4) VectorShuffle 883 881 4 5 6 3
                              Store 882 884
             885:     27(ptr) AccessChain 10(dti) 26
             886:      6(int) Load 885
             887:     27(ptr) AccessChain 10(dti) 26
             888:      6(int) Load 887
             889:    118(ptr) AccessChain 24(data) 25 888 115
             890:   17(fvec4) Load 889
             891:   17(fvec4) GroupNonUniformQuadSwap 35 890 205
             892:    118(ptr) AccessChain 24(data) 25 886 115
                              Store 892 891
             893:     27(ptr) AccessChain 10(dti) 26
             894:      6(int) Load 893
             895:     27(ptr) AccessChain 10(dti) 26
             896:      6(int) Load 895
             897:    127(ptr) AccessChain 24(data) 25 896 115 26
             898:   16(float) Load 897
             899:   16(float) GroupNonUniformQuadSwap 35 898 205
             900:    127(ptr) AccessChain 24(data) 25 894 115 26
                              Store 900 899
             901:     27(ptr) AccessChain 10(dti) 26
             902:      6(int) Load 901
             903:     27(ptr) AccessChain 10(dti) 26
             904:      6(int) Load 903
             905:    118(ptr) AccessChain 24(data) 25 904 115
             906:   17(fvec4) Load 905
             907:  136(fvec2) VectorShuffle 906 906 0 1
             908:  136(fvec2) GroupNonUniformQuadSwap 35 907 205
             909:    118(ptr) AccessChain 24(data) 25 902 115
             910:   17(fvec4) Load 909
             911:   17(fvec4) VectorShuffle 910 908 4 5 2 3
                              Store 909 911
             912:     27(ptr) AccessChain 10(dti) 26
             913:      6(int) Load 912
             914:     27(ptr) AccessChain 10(dti) 26
             915:      6(int) Load 914
             916:    118(ptr) AccessChain 24(data) 25 915 115
             917:   17(fvec4) Load 916
             918:  148(fvec3) VectorShuffle 917 917 0 1 2
             919:  148(fvec3) GroupNonUniformQuadSwap 35 918 205
             920:    118(ptr) AccessChain 24(data) 25 913 115
             921:   17(fvec4) Load 920
             922:   17(fvec4) VectorShuffle 921 919 4 5 6 3
                              Store 920 922
             923:     27(ptr) AccessChain 10(dti) 26
             924:      6(int) Load 923
             925:     27(ptr) AccessChain 10(dti) 26
             926:      6(int) Load 925
             927:    161(ptr) AccessChain 24(data) 25 926 158
             928:   19(fvec4) Load 927
             929:   19(fvec4) GroupNonUniformQuadSwap 35 928 205
             930:    161(ptr) AccessChain 24(data) 25 924 158
                              Store 930 929
             931:     27(ptr) AccessChain 10(dti) 26
             932:      6(int) Load 931
             933:     27(ptr) AccessChain 10(dti) 26
             934:      6(int) Load 933
             935:    170(ptr) AccessChain 24(data) 25 934 158 26
             936:   18(float) Load 935
             937:   18(float) GroupNonUniformQuadSwap 35 936 205
             938:    170(ptr) AccessChain 24(data) 25 932 158 26
                              Store 938 937
             939:     27(ptr) AccessChain 10(dti) 26
             940:      6(int) Load 939
             941:     27(ptr) AccessChain 10(dti) 26
             942:      6(int) Load 941
             943:    161(ptr) AccessChain 24(data) 25 942 158
             944:   19(fvec4) Load 943
             945:  179(fvec2) VectorShuffle 944 944 0 1
             946:  179(fvec2) GroupNonUniformQuadSwap 35 945 205
             947:    161(ptr) AccessChain 24(data) 25 940 158
             948:   19(fvec4) Load 947
             949:   19(fvec4) VectorShuffle 948 946 4 5 2 3
                              Store 947 949
             950:     27(ptr) AccessChain 10(dti) 26
             951:      6(int) Load 950
             952:     27(ptr) AccessChain 10(dti) 26
             953:      6(int) Load 952
             954:    161(ptr) AccessChain 24(data) 25 953 158
             955:   19(fvec4) Load 954
             956:  191(fvec3) VectorShuffle 955 955 0 1 2
             957:  191(fvec3) GroupNonUniformQuadSwap 35 956 205
             958:    161(ptr) AccessChain 24(data) 25 951 158
             959:   19(fvec4) Load 958
             960:   19(fvec4) VectorShuffle 959 957 4 5 6 3
                              Store 958 960
                              Return
                              FunctionEnd
