hlsl.wavebroadcast.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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupShuffle ( 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            13 (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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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        subgroupBroadcastFirst ( 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: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 10300
// Generated by (magic number): 80006
// Id's are bound by 359

                              Capability Shader
                              Capability Float64
                              Capability GroupNonUniform
                              Capability GroupNonUniformBallot
                              Capability GroupNonUniformShuffle
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "CSMain" 354
                              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 352  "dti"
                              Name 354  "dti"
                              Name 356  "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 354(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 13
              36:      6(int) Constant 3
              43:             TypePointer Uniform 6(int)
              52:             TypeVector 6(int) 2
              73:     14(int) Constant 1
              76:             TypePointer Uniform 15(ivec4)
              85:             TypePointer Uniform 14(int)
              94:             TypeVector 14(int) 2
             106:             TypeVector 14(int) 3
             116:     14(int) Constant 2
             119:             TypePointer Uniform 17(fvec4)
             128:             TypePointer Uniform 16(float)
             137:             TypeVector 16(float) 2
             149:             TypeVector 16(float) 3
             159:     14(int) Constant 3
             162:             TypePointer Uniform 19(fvec4)
             171:             TypePointer Uniform 18(float)
             180:             TypeVector 18(float) 2
             192:             TypeVector 18(float) 3
             353:             TypePointer Input 7(ivec3)
        354(dti):    353(ptr) Variable Input
       4(CSMain):           2 Function None 3
               5:             Label
        352(dti):      8(ptr) Variable Function
      356(param):      8(ptr) Variable Function
             355:    7(ivec3) Load 354(dti)
                              Store 352(dti) 355
             357:    7(ivec3) Load 352(dti)
                              Store 356(param) 357
             358:           2 FunctionCall 11(@CSMain(vu3;) 356(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
              37:   13(ivec4) GroupNonUniformShuffle 36 34 35
              38:     32(ptr) AccessChain 24(data) 25 29 25
                              Store 38 37
              39:     27(ptr) AccessChain 10(dti) 26
              40:      6(int) Load 39
              41:     27(ptr) AccessChain 10(dti) 26
              42:      6(int) Load 41
              44:     43(ptr) AccessChain 24(data) 25 42 25 26
              45:      6(int) Load 44
              46:      6(int) GroupNonUniformShuffle 36 45 35
              47:     43(ptr) AccessChain 24(data) 25 40 25 26
                              Store 47 46
              48:     27(ptr) AccessChain 10(dti) 26
              49:      6(int) Load 48
              50:     27(ptr) AccessChain 10(dti) 26
              51:      6(int) Load 50
              53:     32(ptr) AccessChain 24(data) 25 51 25
              54:   13(ivec4) Load 53
              55:   52(ivec2) VectorShuffle 54 54 0 1
              56:   52(ivec2) GroupNonUniformShuffle 36 55 35
              57:     32(ptr) AccessChain 24(data) 25 49 25
              58:   13(ivec4) Load 57
              59:   13(ivec4) VectorShuffle 58 56 4 5 2 3
                              Store 57 59
              60:     27(ptr) AccessChain 10(dti) 26
              61:      6(int) Load 60
              62:     27(ptr) AccessChain 10(dti) 26
              63:      6(int) Load 62
              64:     32(ptr) AccessChain 24(data) 25 63 25
              65:   13(ivec4) Load 64
              66:    7(ivec3) VectorShuffle 65 65 0 1 2
              67:    7(ivec3) GroupNonUniformShuffle 36 66 35
              68:     32(ptr) AccessChain 24(data) 25 61 25
              69:   13(ivec4) Load 68
              70:   13(ivec4) VectorShuffle 69 67 4 5 6 3
                              Store 68 70
              71:     27(ptr) AccessChain 10(dti) 26
              72:      6(int) Load 71
              74:     27(ptr) AccessChain 10(dti) 26
              75:      6(int) Load 74
              77:     76(ptr) AccessChain 24(data) 25 75 73
              78:   15(ivec4) Load 77
              79:   15(ivec4) GroupNonUniformShuffle 36 78 35
              80:     76(ptr) AccessChain 24(data) 25 72 73
                              Store 80 79
              81:     27(ptr) AccessChain 10(dti) 26
              82:      6(int) Load 81
              83:     27(ptr) AccessChain 10(dti) 26
              84:      6(int) Load 83
              86:     85(ptr) AccessChain 24(data) 25 84 73 26
              87:     14(int) Load 86
              88:     14(int) GroupNonUniformShuffle 36 87 35
              89:     85(ptr) AccessChain 24(data) 25 82 73 26
                              Store 89 88
              90:     27(ptr) AccessChain 10(dti) 26
              91:      6(int) Load 90
              92:     27(ptr) AccessChain 10(dti) 26
              93:      6(int) Load 92
              95:     76(ptr) AccessChain 24(data) 25 93 73
              96:   15(ivec4) Load 95
              97:   94(ivec2) VectorShuffle 96 96 0 1
              98:   94(ivec2) GroupNonUniformShuffle 36 97 35
              99:     76(ptr) AccessChain 24(data) 25 91 73
             100:   15(ivec4) Load 99
             101:   15(ivec4) VectorShuffle 100 98 4 5 2 3
                              Store 99 101
             102:     27(ptr) AccessChain 10(dti) 26
             103:      6(int) Load 102
             104:     27(ptr) AccessChain 10(dti) 26
             105:      6(int) Load 104
             107:     76(ptr) AccessChain 24(data) 25 105 73
             108:   15(ivec4) Load 107
             109:  106(ivec3) VectorShuffle 108 108 0 1 2
             110:  106(ivec3) GroupNonUniformShuffle 36 109 35
             111:     76(ptr) AccessChain 24(data) 25 103 73
             112:   15(ivec4) Load 111
             113:   15(ivec4) VectorShuffle 112 110 4 5 6 3
                              Store 111 113
             114:     27(ptr) AccessChain 10(dti) 26
             115:      6(int) Load 114
             117:     27(ptr) AccessChain 10(dti) 26
             118:      6(int) Load 117
             120:    119(ptr) AccessChain 24(data) 25 118 116
             121:   17(fvec4) Load 120
             122:   17(fvec4) GroupNonUniformShuffle 36 121 35
             123:    119(ptr) AccessChain 24(data) 25 115 116
                              Store 123 122
             124:     27(ptr) AccessChain 10(dti) 26
             125:      6(int) Load 124
             126:     27(ptr) AccessChain 10(dti) 26
             127:      6(int) Load 126
             129:    128(ptr) AccessChain 24(data) 25 127 116 26
             130:   16(float) Load 129
             131:   16(float) GroupNonUniformShuffle 36 130 35
             132:    128(ptr) AccessChain 24(data) 25 125 116 26
                              Store 132 131
             133:     27(ptr) AccessChain 10(dti) 26
             134:      6(int) Load 133
             135:     27(ptr) AccessChain 10(dti) 26
             136:      6(int) Load 135
             138:    119(ptr) AccessChain 24(data) 25 136 116
             139:   17(fvec4) Load 138
             140:  137(fvec2) VectorShuffle 139 139 0 1
             141:  137(fvec2) GroupNonUniformShuffle 36 140 35
             142:    119(ptr) AccessChain 24(data) 25 134 116
             143:   17(fvec4) Load 142
             144:   17(fvec4) VectorShuffle 143 141 4 5 2 3
                              Store 142 144
             145:     27(ptr) AccessChain 10(dti) 26
             146:      6(int) Load 145
             147:     27(ptr) AccessChain 10(dti) 26
             148:      6(int) Load 147
             150:    119(ptr) AccessChain 24(data) 25 148 116
             151:   17(fvec4) Load 150
             152:  149(fvec3) VectorShuffle 151 151 0 1 2
             153:  149(fvec3) GroupNonUniformShuffle 36 152 35
             154:    119(ptr) AccessChain 24(data) 25 146 116
             155:   17(fvec4) Load 154
             156:   17(fvec4) VectorShuffle 155 153 4 5 6 3
                              Store 154 156
             157:     27(ptr) AccessChain 10(dti) 26
             158:      6(int) Load 157
             160:     27(ptr) AccessChain 10(dti) 26
             161:      6(int) Load 160
             163:    162(ptr) AccessChain 24(data) 25 161 159
             164:   19(fvec4) Load 163
             165:   19(fvec4) GroupNonUniformBroadcastFirst 36 164
             166:    162(ptr) AccessChain 24(data) 25 158 159
                              Store 166 165
             167:     27(ptr) AccessChain 10(dti) 26
             168:      6(int) Load 167
             169:     27(ptr) AccessChain 10(dti) 26
             170:      6(int) Load 169
             172:    171(ptr) AccessChain 24(data) 25 170 159 26
             173:   18(float) Load 172
             174:   18(float) GroupNonUniformBroadcastFirst 36 173
             175:    171(ptr) AccessChain 24(data) 25 168 159 26
                              Store 175 174
             176:     27(ptr) AccessChain 10(dti) 26
             177:      6(int) Load 176
             178:     27(ptr) AccessChain 10(dti) 26
             179:      6(int) Load 178
             181:    162(ptr) AccessChain 24(data) 25 179 159
             182:   19(fvec4) Load 181
             183:  180(fvec2) VectorShuffle 182 182 0 1
             184:  180(fvec2) GroupNonUniformBroadcastFirst 36 183
             185:    162(ptr) AccessChain 24(data) 25 177 159
             186:   19(fvec4) Load 185
             187:   19(fvec4) VectorShuffle 186 184 4 5 2 3
                              Store 185 187
             188:     27(ptr) AccessChain 10(dti) 26
             189:      6(int) Load 188
             190:     27(ptr) AccessChain 10(dti) 26
             191:      6(int) Load 190
             193:    162(ptr) AccessChain 24(data) 25 191 159
             194:   19(fvec4) Load 193
             195:  192(fvec3) VectorShuffle 194 194 0 1 2
             196:  192(fvec3) GroupNonUniformBroadcastFirst 36 195
             197:    162(ptr) AccessChain 24(data) 25 189 159
             198:   19(fvec4) Load 197
             199:   19(fvec4) VectorShuffle 198 196 4 5 6 3
                              Store 197 199
             200:     27(ptr) AccessChain 10(dti) 26
             201:      6(int) Load 200
             202:     27(ptr) AccessChain 10(dti) 26
             203:      6(int) Load 202
             204:     32(ptr) AccessChain 24(data) 25 203 25
             205:   13(ivec4) Load 204
             206:   13(ivec4) GroupNonUniformBroadcastFirst 36 205
             207:     32(ptr) AccessChain 24(data) 25 201 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:     43(ptr) AccessChain 24(data) 25 211 25 26
             213:      6(int) Load 212
             214:      6(int) GroupNonUniformBroadcastFirst 36 213
             215:     43(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:   52(ivec2) VectorShuffle 221 221 0 1
             223:   52(ivec2) GroupNonUniformBroadcastFirst 36 222
             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) GroupNonUniformBroadcastFirst 36 233
             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:     76(ptr) AccessChain 24(data) 25 241 73
             243:   15(ivec4) Load 242
             244:   15(ivec4) GroupNonUniformBroadcastFirst 36 243
             245:     76(ptr) AccessChain 24(data) 25 239 73
                              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:     85(ptr) AccessChain 24(data) 25 249 73 26
             251:     14(int) Load 250
             252:     14(int) GroupNonUniformBroadcastFirst 36 251
             253:     85(ptr) AccessChain 24(data) 25 247 73 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:     76(ptr) AccessChain 24(data) 25 257 73
             259:   15(ivec4) Load 258
             260:   94(ivec2) VectorShuffle 259 259 0 1
             261:   94(ivec2) GroupNonUniformBroadcastFirst 36 260
             262:     76(ptr) AccessChain 24(data) 25 255 73
             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:     76(ptr) AccessChain 24(data) 25 268 73
             270:   15(ivec4) Load 269
             271:  106(ivec3) VectorShuffle 270 270 0 1 2
             272:  106(ivec3) GroupNonUniformBroadcastFirst 36 271
             273:     76(ptr) AccessChain 24(data) 25 266 73
             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:    119(ptr) AccessChain 24(data) 25 279 116
             281:   17(fvec4) Load 280
             282:   17(fvec4) GroupNonUniformBroadcastFirst 36 281
             283:    119(ptr) AccessChain 24(data) 25 277 116
                              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:    128(ptr) AccessChain 24(data) 25 287 116 26
             289:   16(float) Load 288
             290:   16(float) GroupNonUniformBroadcastFirst 36 289
             291:    128(ptr) AccessChain 24(data) 25 285 116 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:    119(ptr) AccessChain 24(data) 25 295 116
             297:   17(fvec4) Load 296
             298:  137(fvec2) VectorShuffle 297 297 0 1
             299:  137(fvec2) GroupNonUniformBroadcastFirst 36 298
             300:    119(ptr) AccessChain 24(data) 25 293 116
             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:    119(ptr) AccessChain 24(data) 25 306 116
             308:   17(fvec4) Load 307
             309:  149(fvec3) VectorShuffle 308 308 0 1 2
             310:  149(fvec3) GroupNonUniformBroadcastFirst 36 309
             311:    119(ptr) AccessChain 24(data) 25 304 116
             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:    162(ptr) AccessChain 24(data) 25 317 159
             319:   19(fvec4) Load 318
             320:   19(fvec4) GroupNonUniformBroadcastFirst 36 319
             321:    162(ptr) AccessChain 24(data) 25 315 159
                              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:    171(ptr) AccessChain 24(data) 25 325 159 26
             327:   18(float) Load 326
             328:   18(float) GroupNonUniformBroadcastFirst 36 327
             329:    171(ptr) AccessChain 24(data) 25 323 159 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:    162(ptr) AccessChain 24(data) 25 333 159
             335:   19(fvec4) Load 334
             336:  180(fvec2) VectorShuffle 335 335 0 1
             337:  180(fvec2) GroupNonUniformBroadcastFirst 36 336
             338:    162(ptr) AccessChain 24(data) 25 331 159
             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:    162(ptr) AccessChain 24(data) 25 344 159
             346:   19(fvec4) Load 345
             347:  192(fvec3) VectorShuffle 346 346 0 1 2
             348:  192(fvec3) GroupNonUniformBroadcastFirst 36 347
             349:    162(ptr) AccessChain 24(data) 25 342 159
             350:   19(fvec4) Load 349
             351:   19(fvec4) VectorShuffle 350 348 4 5 6 3
                              Store 349 351
                              Return
                              FunctionEnd
