hlsl.promotions.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:19  Function Definition: Fn_F3(vf3; (temp void)
0:19    Function Parameters: 
0:19      'x' (in 3-component vector of float)
0:20  Function Definition: Fn_I3(vi3; (temp void)
0:20    Function Parameters: 
0:20      'x' (in 3-component vector of int)
0:21  Function Definition: Fn_U3(vu3; (temp void)
0:21    Function Parameters: 
0:21      'x' (in 3-component vector of uint)
0:22  Function Definition: Fn_B3(vb3; (temp void)
0:22    Function Parameters: 
0:22      'x' (in 3-component vector of bool)
0:23  Function Definition: Fn_D3(vd3; (temp void)
0:23    Function Parameters: 
0:23      'x' (in 3-component vector of double)
0:26  Function Definition: Fn_R_F3I(vf3; (temp 3-component vector of float)
0:26    Function Parameters: 
0:26      'p' (out 3-component vector of float)
0:?     Sequence
0:26      move second child to first child (temp 3-component vector of float)
0:26        'p' (out 3-component vector of float)
0:26        Convert int to float (temp 3-component vector of float)
0:26          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:26            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:26            Constant:
0:26              0 (const uint)
0:26      Branch: Return with expression
0:26        Convert int to float (temp 3-component vector of float)
0:26          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:26            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:26            Constant:
0:26              0 (const uint)
0:27  Function Definition: Fn_R_F3U(vf3; (temp 3-component vector of float)
0:27    Function Parameters: 
0:27      'p' (out 3-component vector of float)
0:?     Sequence
0:27      move second child to first child (temp 3-component vector of float)
0:27        'p' (out 3-component vector of float)
0:27        Convert uint to float (temp 3-component vector of float)
0:27          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:27            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:27            Constant:
0:27              3 (const uint)
0:27      Branch: Return with expression
0:27        Convert uint to float (temp 3-component vector of float)
0:27          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:27            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:27            Constant:
0:27              3 (const uint)
0:28  Function Definition: Fn_R_F3B(vf3; (temp 3-component vector of float)
0:28    Function Parameters: 
0:28      'p' (out 3-component vector of float)
0:?     Sequence
0:28      move second child to first child (temp 3-component vector of float)
0:28        'p' (out 3-component vector of float)
0:28        Convert bool to float (temp 3-component vector of float)
0:28          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:28            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:28            Constant:
0:28              1 (const uint)
0:28      Branch: Return with expression
0:28        Convert bool to float (temp 3-component vector of float)
0:28          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:28            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:28            Constant:
0:28              1 (const uint)
0:29  Function Definition: Fn_R_F3D(vf3; (temp 3-component vector of float)
0:29    Function Parameters: 
0:29      'p' (out 3-component vector of float)
0:?     Sequence
0:29      move second child to first child (temp 3-component vector of float)
0:29        'p' (out 3-component vector of float)
0:29        Convert double to float (temp 3-component vector of float)
0:29          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:29            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:29            Constant:
0:29              4 (const uint)
0:29      Branch: Return with expression
0:29        Convert double to float (temp 3-component vector of float)
0:29          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:29            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:29            Constant:
0:29              4 (const uint)
0:31  Function Definition: Fn_R_I3U(vi3; (temp 3-component vector of int)
0:31    Function Parameters: 
0:31      'p' (out 3-component vector of int)
0:?     Sequence
0:31      move second child to first child (temp 3-component vector of int)
0:31        'p' (out 3-component vector of int)
0:31        Convert uint to int (temp 3-component vector of int)
0:31          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:31            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:31            Constant:
0:31              3 (const uint)
0:31      Branch: Return with expression
0:31        Convert uint to int (temp 3-component vector of int)
0:31          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:31            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:31            Constant:
0:31              3 (const uint)
0:32  Function Definition: Fn_R_I3B(vi3; (temp 3-component vector of int)
0:32    Function Parameters: 
0:32      'p' (out 3-component vector of int)
0:?     Sequence
0:32      move second child to first child (temp 3-component vector of int)
0:32        'p' (out 3-component vector of int)
0:32        Convert bool to int (temp 3-component vector of int)
0:32          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:32            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:32            Constant:
0:32              1 (const uint)
0:32      Branch: Return with expression
0:32        Convert bool to int (temp 3-component vector of int)
0:32          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:32            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:32            Constant:
0:32              1 (const uint)
0:33  Function Definition: Fn_R_I3F(vi3; (temp 3-component vector of int)
0:33    Function Parameters: 
0:33      'p' (out 3-component vector of int)
0:?     Sequence
0:33      move second child to first child (temp 3-component vector of int)
0:33        'p' (out 3-component vector of int)
0:33        Convert float to int (temp 3-component vector of int)
0:33          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:33            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:33            Constant:
0:33              2 (const uint)
0:33      Branch: Return with expression
0:33        Convert float to int (temp 3-component vector of int)
0:33          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:33            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:33            Constant:
0:33              2 (const uint)
0:34  Function Definition: Fn_R_I3D(vi3; (temp 3-component vector of int)
0:34    Function Parameters: 
0:34      'p' (out 3-component vector of int)
0:?     Sequence
0:34      move second child to first child (temp 3-component vector of int)
0:34        'p' (out 3-component vector of int)
0:34        Convert double to int (temp 3-component vector of int)
0:34          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:34            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:34            Constant:
0:34              4 (const uint)
0:34      Branch: Return with expression
0:34        Convert double to int (temp 3-component vector of int)
0:34          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:34            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:34            Constant:
0:34              4 (const uint)
0:36  Function Definition: Fn_R_U3I(vu3; (temp 3-component vector of uint)
0:36    Function Parameters: 
0:36      'p' (out 3-component vector of uint)
0:?     Sequence
0:36      move second child to first child (temp 3-component vector of uint)
0:36        'p' (out 3-component vector of uint)
0:36        Convert int to uint (temp 3-component vector of uint)
0:36          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:36            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:36            Constant:
0:36              0 (const uint)
0:36      Branch: Return with expression
0:36        Convert int to uint (temp 3-component vector of uint)
0:36          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:36            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:36            Constant:
0:36              0 (const uint)
0:37  Function Definition: Fn_R_U3F(vu3; (temp 3-component vector of uint)
0:37    Function Parameters: 
0:37      'p' (out 3-component vector of uint)
0:?     Sequence
0:37      move second child to first child (temp 3-component vector of uint)
0:37        'p' (out 3-component vector of uint)
0:37        Convert float to uint (temp 3-component vector of uint)
0:37          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:37            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:37            Constant:
0:37              2 (const uint)
0:37      Branch: Return with expression
0:37        Convert float to uint (temp 3-component vector of uint)
0:37          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:37            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:37            Constant:
0:37              2 (const uint)
0:38  Function Definition: Fn_R_U3B(vu3; (temp 3-component vector of uint)
0:38    Function Parameters: 
0:38      'p' (out 3-component vector of uint)
0:?     Sequence
0:38      move second child to first child (temp 3-component vector of uint)
0:38        'p' (out 3-component vector of uint)
0:38        Convert bool to uint (temp 3-component vector of uint)
0:38          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:38            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:38            Constant:
0:38              1 (const uint)
0:38      Branch: Return with expression
0:38        Convert bool to uint (temp 3-component vector of uint)
0:38          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:38            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:38            Constant:
0:38              1 (const uint)
0:39  Function Definition: Fn_R_U3D(vu3; (temp 3-component vector of uint)
0:39    Function Parameters: 
0:39      'p' (out 3-component vector of uint)
0:?     Sequence
0:39      move second child to first child (temp 3-component vector of uint)
0:39        'p' (out 3-component vector of uint)
0:39        Convert double to uint (temp 3-component vector of uint)
0:39          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:39            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:39            Constant:
0:39              4 (const uint)
0:39      Branch: Return with expression
0:39        Convert double to uint (temp 3-component vector of uint)
0:39          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:39            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:39            Constant:
0:39              4 (const uint)
0:41  Function Definition: Fn_R_B3I(vb3; (temp 3-component vector of bool)
0:41    Function Parameters: 
0:41      'p' (out 3-component vector of bool)
0:?     Sequence
0:41      move second child to first child (temp 3-component vector of bool)
0:41        'p' (out 3-component vector of bool)
0:41        Convert int to bool (temp 3-component vector of bool)
0:41          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:41            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:41            Constant:
0:41              0 (const uint)
0:41      Branch: Return with expression
0:41        Convert int to bool (temp 3-component vector of bool)
0:41          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:41            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:41            Constant:
0:41              0 (const uint)
0:42  Function Definition: Fn_R_B3U(vb3; (temp 3-component vector of bool)
0:42    Function Parameters: 
0:42      'p' (out 3-component vector of bool)
0:?     Sequence
0:42      move second child to first child (temp 3-component vector of bool)
0:42        'p' (out 3-component vector of bool)
0:42        Convert uint to bool (temp 3-component vector of bool)
0:42          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:42            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:42            Constant:
0:42              3 (const uint)
0:42      Branch: Return with expression
0:42        Convert uint to bool (temp 3-component vector of bool)
0:42          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:42            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:42            Constant:
0:42              3 (const uint)
0:43  Function Definition: Fn_R_B3F(vb3; (temp 3-component vector of bool)
0:43    Function Parameters: 
0:43      'p' (out 3-component vector of bool)
0:?     Sequence
0:43      move second child to first child (temp 3-component vector of bool)
0:43        'p' (out 3-component vector of bool)
0:43        Convert float to bool (temp 3-component vector of bool)
0:43          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:43            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:43            Constant:
0:43              2 (const uint)
0:43      Branch: Return with expression
0:43        Convert float to bool (temp 3-component vector of bool)
0:43          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:43            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:43            Constant:
0:43              2 (const uint)
0:44  Function Definition: Fn_R_B3D(vb3; (temp 3-component vector of bool)
0:44    Function Parameters: 
0:44      'p' (out 3-component vector of bool)
0:?     Sequence
0:44      move second child to first child (temp 3-component vector of bool)
0:44        'p' (out 3-component vector of bool)
0:44        Convert double to bool (temp 3-component vector of bool)
0:44          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:44            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:44            Constant:
0:44              4 (const uint)
0:44      Branch: Return with expression
0:44        Convert double to bool (temp 3-component vector of bool)
0:44          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:44            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:44            Constant:
0:44              4 (const uint)
0:46  Function Definition: Fn_R_D3I(vd3; (temp 3-component vector of double)
0:46    Function Parameters: 
0:46      'p' (out 3-component vector of double)
0:?     Sequence
0:46      move second child to first child (temp 3-component vector of double)
0:46        'p' (out 3-component vector of double)
0:46        Convert int to double (temp 3-component vector of double)
0:46          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:46            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:46            Constant:
0:46              0 (const uint)
0:46      Branch: Return with expression
0:46        Convert int to double (temp 3-component vector of double)
0:46          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:46            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:46            Constant:
0:46              0 (const uint)
0:47  Function Definition: Fn_R_D3U(vd3; (temp 3-component vector of double)
0:47    Function Parameters: 
0:47      'p' (out 3-component vector of double)
0:?     Sequence
0:47      move second child to first child (temp 3-component vector of double)
0:47        'p' (out 3-component vector of double)
0:47        Convert uint to double (temp 3-component vector of double)
0:47          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:47            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:47            Constant:
0:47              3 (const uint)
0:47      Branch: Return with expression
0:47        Convert uint to double (temp 3-component vector of double)
0:47          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:47            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:47            Constant:
0:47              3 (const uint)
0:48  Function Definition: Fn_R_D3B(vd3; (temp 3-component vector of double)
0:48    Function Parameters: 
0:48      'p' (out 3-component vector of double)
0:?     Sequence
0:48      move second child to first child (temp 3-component vector of double)
0:48        'p' (out 3-component vector of double)
0:48        Convert bool to double (temp 3-component vector of double)
0:48          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:48            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:48            Constant:
0:48              1 (const uint)
0:48      Branch: Return with expression
0:48        Convert bool to double (temp 3-component vector of double)
0:48          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:48            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:48            Constant:
0:48              1 (const uint)
0:49  Function Definition: Fn_R_D3F(vd3; (temp 3-component vector of double)
0:49    Function Parameters: 
0:49      'p' (out 3-component vector of double)
0:?     Sequence
0:49      move second child to first child (temp 3-component vector of double)
0:49        'p' (out 3-component vector of double)
0:49        Convert float to double (temp 3-component vector of double)
0:49          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:49            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:49            Constant:
0:49              2 (const uint)
0:49      Branch: Return with expression
0:49        Convert float to double (temp 3-component vector of double)
0:49          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:49            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:49            Constant:
0:49              2 (const uint)
0:52  Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:52    Function Parameters: 
0:?     Sequence
0:54      Sequence
0:54        move second child to first child (temp 3-component vector of float)
0:54          'r00' (temp 3-component vector of float)
0:54          Convert int to float (temp 3-component vector of float)
0:54            i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:54              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:54              Constant:
0:54                0 (const uint)
0:55      Sequence
0:55        move second child to first child (temp 3-component vector of float)
0:55          'r01' (temp 3-component vector of float)
0:55          Convert bool to float (temp 3-component vector of float)
0:55            b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:55              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:55              Constant:
0:55                1 (const uint)
0:56      Sequence
0:56        move second child to first child (temp 3-component vector of float)
0:56          'r02' (temp 3-component vector of float)
0:56          Convert uint to float (temp 3-component vector of float)
0:56            u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:56              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:56              Constant:
0:56                3 (const uint)
0:57      Sequence
0:57        move second child to first child (temp 3-component vector of float)
0:57          'r03' (temp 3-component vector of float)
0:57          Convert double to float (temp 3-component vector of float)
0:57            d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:57              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:57              Constant:
0:57                4 (const uint)
0:59      Sequence
0:59        move second child to first child (temp 3-component vector of int)
0:59          'r10' (temp 3-component vector of int)
0:59          Convert bool to int (temp 3-component vector of int)
0:59            b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:59              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:59              Constant:
0:59                1 (const uint)
0:60      Sequence
0:60        move second child to first child (temp 3-component vector of int)
0:60          'r11' (temp 3-component vector of int)
0:60          Convert uint to int (temp 3-component vector of int)
0:60            u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:60              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:60              Constant:
0:60                3 (const uint)
0:61      Sequence
0:61        move second child to first child (temp 3-component vector of int)
0:61          'r12' (temp 3-component vector of int)
0:61          Convert float to int (temp 3-component vector of int)
0:61            f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:61              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:61              Constant:
0:61                2 (const uint)
0:62      Sequence
0:62        move second child to first child (temp 3-component vector of int)
0:62          'r13' (temp 3-component vector of int)
0:62          Convert double to int (temp 3-component vector of int)
0:62            d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:62              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:62              Constant:
0:62                4 (const uint)
0:64      Sequence
0:64        move second child to first child (temp 3-component vector of uint)
0:64          'r20' (temp 3-component vector of uint)
0:64          Convert bool to uint (temp 3-component vector of uint)
0:64            b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:64              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:64              Constant:
0:64                1 (const uint)
0:65      Sequence
0:65        move second child to first child (temp 3-component vector of uint)
0:65          'r21' (temp 3-component vector of uint)
0:65          Convert int to uint (temp 3-component vector of uint)
0:65            i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:65              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:65              Constant:
0:65                0 (const uint)
0:66      Sequence
0:66        move second child to first child (temp 3-component vector of uint)
0:66          'r22' (temp 3-component vector of uint)
0:66          Convert float to uint (temp 3-component vector of uint)
0:66            f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:66              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:66              Constant:
0:66                2 (const uint)
0:67      Sequence
0:67        move second child to first child (temp 3-component vector of uint)
0:67          'r23' (temp 3-component vector of uint)
0:67          Convert double to uint (temp 3-component vector of uint)
0:67            d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:67              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:67              Constant:
0:67                4 (const uint)
0:69      Sequence
0:69        move second child to first child (temp 3-component vector of bool)
0:69          'r30' (temp 3-component vector of bool)
0:69          Convert int to bool (temp 3-component vector of bool)
0:69            i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:69              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:69              Constant:
0:69                0 (const uint)
0:70      Sequence
0:70        move second child to first child (temp 3-component vector of bool)
0:70          'r31' (temp 3-component vector of bool)
0:70          Convert uint to bool (temp 3-component vector of bool)
0:70            u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:70              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:70              Constant:
0:70                3 (const uint)
0:71      Sequence
0:71        move second child to first child (temp 3-component vector of bool)
0:71          'r32' (temp 3-component vector of bool)
0:71          Convert float to bool (temp 3-component vector of bool)
0:71            f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:71              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:71              Constant:
0:71                2 (const uint)
0:72      Sequence
0:72        move second child to first child (temp 3-component vector of bool)
0:72          'r33' (temp 3-component vector of bool)
0:72          Convert double to bool (temp 3-component vector of bool)
0:72            d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:72              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:72              Constant:
0:72                4 (const uint)
0:74      Sequence
0:74        move second child to first child (temp 3-component vector of double)
0:74          'r40' (temp 3-component vector of double)
0:74          Convert int to double (temp 3-component vector of double)
0:74            i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:74              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:74              Constant:
0:74                0 (const uint)
0:75      Sequence
0:75        move second child to first child (temp 3-component vector of double)
0:75          'r41' (temp 3-component vector of double)
0:75          Convert uint to double (temp 3-component vector of double)
0:75            u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:75              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:75              Constant:
0:75                3 (const uint)
0:76      Sequence
0:76        move second child to first child (temp 3-component vector of double)
0:76          'r42' (temp 3-component vector of double)
0:76          Convert float to double (temp 3-component vector of double)
0:76            f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:76              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:76              Constant:
0:76                2 (const uint)
0:77      Sequence
0:77        move second child to first child (temp 3-component vector of double)
0:77          'r43' (temp 3-component vector of double)
0:77          Convert bool to double (temp 3-component vector of double)
0:77            b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:77              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:77              Constant:
0:77                1 (const uint)
0:80      multiply second child into first child (temp 3-component vector of float)
0:80        'r00' (temp 3-component vector of float)
0:80        Convert int to float (temp 3-component vector of float)
0:80          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:80            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:80            Constant:
0:80              0 (const uint)
0:81      multiply second child into first child (temp 3-component vector of float)
0:81        'r01' (temp 3-component vector of float)
0:81        Convert bool to float (temp 3-component vector of float)
0:81          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:81            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:81            Constant:
0:81              1 (const uint)
0:82      multiply second child into first child (temp 3-component vector of float)
0:82        'r02' (temp 3-component vector of float)
0:82        Convert uint to float (temp 3-component vector of float)
0:82          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:82            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:82            Constant:
0:82              3 (const uint)
0:83      multiply second child into first child (temp 3-component vector of float)
0:83        'r03' (temp 3-component vector of float)
0:83        Convert double to float (temp 3-component vector of float)
0:83          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:83            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:83            Constant:
0:83              4 (const uint)
0:85      multiply second child into first child (temp 3-component vector of int)
0:85        'r10' (temp 3-component vector of int)
0:85        Convert bool to int (temp 3-component vector of int)
0:85          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:85            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:85            Constant:
0:85              1 (const uint)
0:86      multiply second child into first child (temp 3-component vector of int)
0:86        'r11' (temp 3-component vector of int)
0:86        Convert uint to int (temp 3-component vector of int)
0:86          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:86            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:86            Constant:
0:86              3 (const uint)
0:87      multiply second child into first child (temp 3-component vector of int)
0:87        'r12' (temp 3-component vector of int)
0:87        Convert float to int (temp 3-component vector of int)
0:87          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:87            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:87            Constant:
0:87              2 (const uint)
0:88      multiply second child into first child (temp 3-component vector of int)
0:88        'r13' (temp 3-component vector of int)
0:88        Convert double to int (temp 3-component vector of int)
0:88          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:88            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:88            Constant:
0:88              4 (const uint)
0:90      multiply second child into first child (temp 3-component vector of uint)
0:90        'r20' (temp 3-component vector of uint)
0:90        Convert bool to uint (temp 3-component vector of uint)
0:90          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:90            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:90            Constant:
0:90              1 (const uint)
0:91      multiply second child into first child (temp 3-component vector of uint)
0:91        'r21' (temp 3-component vector of uint)
0:91        Convert int to uint (temp 3-component vector of uint)
0:91          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:91            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:91            Constant:
0:91              0 (const uint)
0:92      multiply second child into first child (temp 3-component vector of uint)
0:92        'r22' (temp 3-component vector of uint)
0:92        Convert float to uint (temp 3-component vector of uint)
0:92          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:92            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:92            Constant:
0:92              2 (const uint)
0:93      multiply second child into first child (temp 3-component vector of uint)
0:93        'r23' (temp 3-component vector of uint)
0:93        Convert double to uint (temp 3-component vector of uint)
0:93          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:93            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:93            Constant:
0:93              4 (const uint)
0:97      multiply second child into first child (temp 3-component vector of double)
0:97        'r40' (temp 3-component vector of double)
0:97        Convert int to double (temp 3-component vector of double)
0:97          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:97            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:97            Constant:
0:97              0 (const uint)
0:98      multiply second child into first child (temp 3-component vector of double)
0:98        'r41' (temp 3-component vector of double)
0:98        Convert uint to double (temp 3-component vector of double)
0:98          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:98            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:98            Constant:
0:98              3 (const uint)
0:99      multiply second child into first child (temp 3-component vector of double)
0:99        'r42' (temp 3-component vector of double)
0:99        Convert float to double (temp 3-component vector of double)
0:99          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:99            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:99            Constant:
0:99              2 (const uint)
0:100      multiply second child into first child (temp 3-component vector of double)
0:100        'r43' (temp 3-component vector of double)
0:100        Convert bool to double (temp 3-component vector of double)
0:100          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:100            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:100            Constant:
0:100              1 (const uint)
0:103      vector scale second child into first child (temp 3-component vector of float)
0:103        'r00' (temp 3-component vector of float)
0:103        Convert int to float (temp float)
0:103          is: direct index for structure (layout(offset=88 ) uniform int)
0:103            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:103            Constant:
0:103              5 (const uint)
0:104      vector scale second child into first child (temp 3-component vector of float)
0:104        'r01' (temp 3-component vector of float)
0:104        Convert bool to float (temp float)
0:104          bs: direct index for structure (layout(offset=92 ) uniform bool)
0:104            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:104            Constant:
0:104              6 (const uint)
0:105      vector scale second child into first child (temp 3-component vector of float)
0:105        'r02' (temp 3-component vector of float)
0:105        Convert uint to float (temp float)
0:105          us: direct index for structure (layout(offset=100 ) uniform uint)
0:105            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:105            Constant:
0:105              8 (const uint)
0:106      vector scale second child into first child (temp 3-component vector of float)
0:106        'r03' (temp 3-component vector of float)
0:106        Convert double to float (temp float)
0:106          ds: direct index for structure (layout(offset=104 ) uniform double)
0:106            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:106            Constant:
0:106              9 (const uint)
0:108      vector scale second child into first child (temp 3-component vector of int)
0:108        'r10' (temp 3-component vector of int)
0:108        Convert bool to int (temp int)
0:108          bs: direct index for structure (layout(offset=92 ) uniform bool)
0:108            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:108            Constant:
0:108              6 (const uint)
0:109      vector scale second child into first child (temp 3-component vector of int)
0:109        'r11' (temp 3-component vector of int)
0:109        Convert uint to int (temp int)
0:109          us: direct index for structure (layout(offset=100 ) uniform uint)
0:109            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:109            Constant:
0:109              8 (const uint)
0:110      vector scale second child into first child (temp 3-component vector of int)
0:110        'r12' (temp 3-component vector of int)
0:110        Convert float to int (temp int)
0:110          fs: direct index for structure (layout(offset=96 ) uniform float)
0:110            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:110            Constant:
0:110              7 (const uint)
0:111      vector scale second child into first child (temp 3-component vector of int)
0:111        'r13' (temp 3-component vector of int)
0:111        Convert double to int (temp int)
0:111          ds: direct index for structure (layout(offset=104 ) uniform double)
0:111            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:111            Constant:
0:111              9 (const uint)
0:113      vector scale second child into first child (temp 3-component vector of uint)
0:113        'r20' (temp 3-component vector of uint)
0:113        Convert bool to uint (temp uint)
0:113          bs: direct index for structure (layout(offset=92 ) uniform bool)
0:113            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:113            Constant:
0:113              6 (const uint)
0:114      vector scale second child into first child (temp 3-component vector of uint)
0:114        'r21' (temp 3-component vector of uint)
0:114        Convert int to uint (temp uint)
0:114          is: direct index for structure (layout(offset=88 ) uniform int)
0:114            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:114            Constant:
0:114              5 (const uint)
0:115      vector scale second child into first child (temp 3-component vector of uint)
0:115        'r22' (temp 3-component vector of uint)
0:115        Convert float to uint (temp uint)
0:115          fs: direct index for structure (layout(offset=96 ) uniform float)
0:115            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:115            Constant:
0:115              7 (const uint)
0:116      vector scale second child into first child (temp 3-component vector of uint)
0:116        'r23' (temp 3-component vector of uint)
0:116        Convert double to uint (temp uint)
0:116          ds: direct index for structure (layout(offset=104 ) uniform double)
0:116            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:116            Constant:
0:116              9 (const uint)
0:120      vector scale second child into first child (temp 3-component vector of double)
0:120        'r40' (temp 3-component vector of double)
0:120        Convert int to double (temp double)
0:120          is: direct index for structure (layout(offset=88 ) uniform int)
0:120            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:120            Constant:
0:120              5 (const uint)
0:121      vector scale second child into first child (temp 3-component vector of double)
0:121        'r41' (temp 3-component vector of double)
0:121        Convert uint to double (temp double)
0:121          us: direct index for structure (layout(offset=100 ) uniform uint)
0:121            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:121            Constant:
0:121              8 (const uint)
0:122      vector scale second child into first child (temp 3-component vector of double)
0:122        'r42' (temp 3-component vector of double)
0:122        Convert float to double (temp double)
0:122          fs: direct index for structure (layout(offset=96 ) uniform float)
0:122            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:122            Constant:
0:122              7 (const uint)
0:123      vector scale second child into first child (temp 3-component vector of double)
0:123        'r43' (temp 3-component vector of double)
0:123        Convert bool to double (temp double)
0:123          bs: direct index for structure (layout(offset=92 ) uniform bool)
0:123            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:123            Constant:
0:123              6 (const uint)
0:193      Sequence
0:193        move second child to first child (temp int)
0:193          'c1' (temp int)
0:193          Constant:
0:193            3 (const int)
0:194      Sequence
0:194        move second child to first child (temp int)
0:194          'c2' (temp int)
0:194          Constant:
0:194            3 (const int)
0:196      Sequence
0:196        move second child to first child (temp 4-component vector of float)
0:196          'outval' (temp 4-component vector of float)
0:?           Construct vec4 (temp 4-component vector of float)
0:196            Constant:
0:196              3.600000
0:196            Constant:
0:196              3.600000
0:196            Convert int to float (temp float)
0:196              'c1' (temp int)
0:196            Convert int to float (temp float)
0:196              'c2' (temp int)
0:199      move second child to first child (temp 4-component vector of float)
0:199        Color: direct index for structure (temp 4-component vector of float)
0:199          'psout' (temp structure{temp 4-component vector of float Color})
0:199          Constant:
0:199            0 (const int)
0:199        'outval' (temp 4-component vector of float)
0:200      Sequence
0:200        Sequence
0:200          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:200            Color: direct index for structure (temp 4-component vector of float)
0:200              'psout' (temp structure{temp 4-component vector of float Color})
0:200              Constant:
0:200                0 (const int)
0:200        Branch: Return
0:?   Linker Objects
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:?     'Color' (layout(location=0 ) out 4-component vector of float)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:19  Function Definition: Fn_F3(vf3; (temp void)
0:19    Function Parameters: 
0:19      'x' (in 3-component vector of float)
0:20  Function Definition: Fn_I3(vi3; (temp void)
0:20    Function Parameters: 
0:20      'x' (in 3-component vector of int)
0:21  Function Definition: Fn_U3(vu3; (temp void)
0:21    Function Parameters: 
0:21      'x' (in 3-component vector of uint)
0:22  Function Definition: Fn_B3(vb3; (temp void)
0:22    Function Parameters: 
0:22      'x' (in 3-component vector of bool)
0:23  Function Definition: Fn_D3(vd3; (temp void)
0:23    Function Parameters: 
0:23      'x' (in 3-component vector of double)
0:26  Function Definition: Fn_R_F3I(vf3; (temp 3-component vector of float)
0:26    Function Parameters: 
0:26      'p' (out 3-component vector of float)
0:?     Sequence
0:26      move second child to first child (temp 3-component vector of float)
0:26        'p' (out 3-component vector of float)
0:26        Convert int to float (temp 3-component vector of float)
0:26          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:26            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:26            Constant:
0:26              0 (const uint)
0:26      Branch: Return with expression
0:26        Convert int to float (temp 3-component vector of float)
0:26          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:26            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:26            Constant:
0:26              0 (const uint)
0:27  Function Definition: Fn_R_F3U(vf3; (temp 3-component vector of float)
0:27    Function Parameters: 
0:27      'p' (out 3-component vector of float)
0:?     Sequence
0:27      move second child to first child (temp 3-component vector of float)
0:27        'p' (out 3-component vector of float)
0:27        Convert uint to float (temp 3-component vector of float)
0:27          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:27            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:27            Constant:
0:27              3 (const uint)
0:27      Branch: Return with expression
0:27        Convert uint to float (temp 3-component vector of float)
0:27          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:27            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:27            Constant:
0:27              3 (const uint)
0:28  Function Definition: Fn_R_F3B(vf3; (temp 3-component vector of float)
0:28    Function Parameters: 
0:28      'p' (out 3-component vector of float)
0:?     Sequence
0:28      move second child to first child (temp 3-component vector of float)
0:28        'p' (out 3-component vector of float)
0:28        Convert bool to float (temp 3-component vector of float)
0:28          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:28            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:28            Constant:
0:28              1 (const uint)
0:28      Branch: Return with expression
0:28        Convert bool to float (temp 3-component vector of float)
0:28          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:28            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:28            Constant:
0:28              1 (const uint)
0:29  Function Definition: Fn_R_F3D(vf3; (temp 3-component vector of float)
0:29    Function Parameters: 
0:29      'p' (out 3-component vector of float)
0:?     Sequence
0:29      move second child to first child (temp 3-component vector of float)
0:29        'p' (out 3-component vector of float)
0:29        Convert double to float (temp 3-component vector of float)
0:29          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:29            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:29            Constant:
0:29              4 (const uint)
0:29      Branch: Return with expression
0:29        Convert double to float (temp 3-component vector of float)
0:29          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:29            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:29            Constant:
0:29              4 (const uint)
0:31  Function Definition: Fn_R_I3U(vi3; (temp 3-component vector of int)
0:31    Function Parameters: 
0:31      'p' (out 3-component vector of int)
0:?     Sequence
0:31      move second child to first child (temp 3-component vector of int)
0:31        'p' (out 3-component vector of int)
0:31        Convert uint to int (temp 3-component vector of int)
0:31          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:31            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:31            Constant:
0:31              3 (const uint)
0:31      Branch: Return with expression
0:31        Convert uint to int (temp 3-component vector of int)
0:31          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:31            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:31            Constant:
0:31              3 (const uint)
0:32  Function Definition: Fn_R_I3B(vi3; (temp 3-component vector of int)
0:32    Function Parameters: 
0:32      'p' (out 3-component vector of int)
0:?     Sequence
0:32      move second child to first child (temp 3-component vector of int)
0:32        'p' (out 3-component vector of int)
0:32        Convert bool to int (temp 3-component vector of int)
0:32          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:32            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:32            Constant:
0:32              1 (const uint)
0:32      Branch: Return with expression
0:32        Convert bool to int (temp 3-component vector of int)
0:32          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:32            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:32            Constant:
0:32              1 (const uint)
0:33  Function Definition: Fn_R_I3F(vi3; (temp 3-component vector of int)
0:33    Function Parameters: 
0:33      'p' (out 3-component vector of int)
0:?     Sequence
0:33      move second child to first child (temp 3-component vector of int)
0:33        'p' (out 3-component vector of int)
0:33        Convert float to int (temp 3-component vector of int)
0:33          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:33            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:33            Constant:
0:33              2 (const uint)
0:33      Branch: Return with expression
0:33        Convert float to int (temp 3-component vector of int)
0:33          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:33            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:33            Constant:
0:33              2 (const uint)
0:34  Function Definition: Fn_R_I3D(vi3; (temp 3-component vector of int)
0:34    Function Parameters: 
0:34      'p' (out 3-component vector of int)
0:?     Sequence
0:34      move second child to first child (temp 3-component vector of int)
0:34        'p' (out 3-component vector of int)
0:34        Convert double to int (temp 3-component vector of int)
0:34          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:34            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:34            Constant:
0:34              4 (const uint)
0:34      Branch: Return with expression
0:34        Convert double to int (temp 3-component vector of int)
0:34          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:34            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:34            Constant:
0:34              4 (const uint)
0:36  Function Definition: Fn_R_U3I(vu3; (temp 3-component vector of uint)
0:36    Function Parameters: 
0:36      'p' (out 3-component vector of uint)
0:?     Sequence
0:36      move second child to first child (temp 3-component vector of uint)
0:36        'p' (out 3-component vector of uint)
0:36        Convert int to uint (temp 3-component vector of uint)
0:36          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:36            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:36            Constant:
0:36              0 (const uint)
0:36      Branch: Return with expression
0:36        Convert int to uint (temp 3-component vector of uint)
0:36          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:36            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:36            Constant:
0:36              0 (const uint)
0:37  Function Definition: Fn_R_U3F(vu3; (temp 3-component vector of uint)
0:37    Function Parameters: 
0:37      'p' (out 3-component vector of uint)
0:?     Sequence
0:37      move second child to first child (temp 3-component vector of uint)
0:37        'p' (out 3-component vector of uint)
0:37        Convert float to uint (temp 3-component vector of uint)
0:37          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:37            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:37            Constant:
0:37              2 (const uint)
0:37      Branch: Return with expression
0:37        Convert float to uint (temp 3-component vector of uint)
0:37          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:37            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:37            Constant:
0:37              2 (const uint)
0:38  Function Definition: Fn_R_U3B(vu3; (temp 3-component vector of uint)
0:38    Function Parameters: 
0:38      'p' (out 3-component vector of uint)
0:?     Sequence
0:38      move second child to first child (temp 3-component vector of uint)
0:38        'p' (out 3-component vector of uint)
0:38        Convert bool to uint (temp 3-component vector of uint)
0:38          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:38            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:38            Constant:
0:38              1 (const uint)
0:38      Branch: Return with expression
0:38        Convert bool to uint (temp 3-component vector of uint)
0:38          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:38            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:38            Constant:
0:38              1 (const uint)
0:39  Function Definition: Fn_R_U3D(vu3; (temp 3-component vector of uint)
0:39    Function Parameters: 
0:39      'p' (out 3-component vector of uint)
0:?     Sequence
0:39      move second child to first child (temp 3-component vector of uint)
0:39        'p' (out 3-component vector of uint)
0:39        Convert double to uint (temp 3-component vector of uint)
0:39          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:39            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:39            Constant:
0:39              4 (const uint)
0:39      Branch: Return with expression
0:39        Convert double to uint (temp 3-component vector of uint)
0:39          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:39            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:39            Constant:
0:39              4 (const uint)
0:41  Function Definition: Fn_R_B3I(vb3; (temp 3-component vector of bool)
0:41    Function Parameters: 
0:41      'p' (out 3-component vector of bool)
0:?     Sequence
0:41      move second child to first child (temp 3-component vector of bool)
0:41        'p' (out 3-component vector of bool)
0:41        Convert int to bool (temp 3-component vector of bool)
0:41          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:41            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:41            Constant:
0:41              0 (const uint)
0:41      Branch: Return with expression
0:41        Convert int to bool (temp 3-component vector of bool)
0:41          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:41            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:41            Constant:
0:41              0 (const uint)
0:42  Function Definition: Fn_R_B3U(vb3; (temp 3-component vector of bool)
0:42    Function Parameters: 
0:42      'p' (out 3-component vector of bool)
0:?     Sequence
0:42      move second child to first child (temp 3-component vector of bool)
0:42        'p' (out 3-component vector of bool)
0:42        Convert uint to bool (temp 3-component vector of bool)
0:42          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:42            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:42            Constant:
0:42              3 (const uint)
0:42      Branch: Return with expression
0:42        Convert uint to bool (temp 3-component vector of bool)
0:42          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:42            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:42            Constant:
0:42              3 (const uint)
0:43  Function Definition: Fn_R_B3F(vb3; (temp 3-component vector of bool)
0:43    Function Parameters: 
0:43      'p' (out 3-component vector of bool)
0:?     Sequence
0:43      move second child to first child (temp 3-component vector of bool)
0:43        'p' (out 3-component vector of bool)
0:43        Convert float to bool (temp 3-component vector of bool)
0:43          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:43            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:43            Constant:
0:43              2 (const uint)
0:43      Branch: Return with expression
0:43        Convert float to bool (temp 3-component vector of bool)
0:43          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:43            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:43            Constant:
0:43              2 (const uint)
0:44  Function Definition: Fn_R_B3D(vb3; (temp 3-component vector of bool)
0:44    Function Parameters: 
0:44      'p' (out 3-component vector of bool)
0:?     Sequence
0:44      move second child to first child (temp 3-component vector of bool)
0:44        'p' (out 3-component vector of bool)
0:44        Convert double to bool (temp 3-component vector of bool)
0:44          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:44            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:44            Constant:
0:44              4 (const uint)
0:44      Branch: Return with expression
0:44        Convert double to bool (temp 3-component vector of bool)
0:44          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:44            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:44            Constant:
0:44              4 (const uint)
0:46  Function Definition: Fn_R_D3I(vd3; (temp 3-component vector of double)
0:46    Function Parameters: 
0:46      'p' (out 3-component vector of double)
0:?     Sequence
0:46      move second child to first child (temp 3-component vector of double)
0:46        'p' (out 3-component vector of double)
0:46        Convert int to double (temp 3-component vector of double)
0:46          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:46            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:46            Constant:
0:46              0 (const uint)
0:46      Branch: Return with expression
0:46        Convert int to double (temp 3-component vector of double)
0:46          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:46            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:46            Constant:
0:46              0 (const uint)
0:47  Function Definition: Fn_R_D3U(vd3; (temp 3-component vector of double)
0:47    Function Parameters: 
0:47      'p' (out 3-component vector of double)
0:?     Sequence
0:47      move second child to first child (temp 3-component vector of double)
0:47        'p' (out 3-component vector of double)
0:47        Convert uint to double (temp 3-component vector of double)
0:47          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:47            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:47            Constant:
0:47              3 (const uint)
0:47      Branch: Return with expression
0:47        Convert uint to double (temp 3-component vector of double)
0:47          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:47            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:47            Constant:
0:47              3 (const uint)
0:48  Function Definition: Fn_R_D3B(vd3; (temp 3-component vector of double)
0:48    Function Parameters: 
0:48      'p' (out 3-component vector of double)
0:?     Sequence
0:48      move second child to first child (temp 3-component vector of double)
0:48        'p' (out 3-component vector of double)
0:48        Convert bool to double (temp 3-component vector of double)
0:48          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:48            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:48            Constant:
0:48              1 (const uint)
0:48      Branch: Return with expression
0:48        Convert bool to double (temp 3-component vector of double)
0:48          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:48            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:48            Constant:
0:48              1 (const uint)
0:49  Function Definition: Fn_R_D3F(vd3; (temp 3-component vector of double)
0:49    Function Parameters: 
0:49      'p' (out 3-component vector of double)
0:?     Sequence
0:49      move second child to first child (temp 3-component vector of double)
0:49        'p' (out 3-component vector of double)
0:49        Convert float to double (temp 3-component vector of double)
0:49          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:49            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:49            Constant:
0:49              2 (const uint)
0:49      Branch: Return with expression
0:49        Convert float to double (temp 3-component vector of double)
0:49          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:49            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:49            Constant:
0:49              2 (const uint)
0:52  Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:52    Function Parameters: 
0:?     Sequence
0:54      Sequence
0:54        move second child to first child (temp 3-component vector of float)
0:54          'r00' (temp 3-component vector of float)
0:54          Convert int to float (temp 3-component vector of float)
0:54            i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:54              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:54              Constant:
0:54                0 (const uint)
0:55      Sequence
0:55        move second child to first child (temp 3-component vector of float)
0:55          'r01' (temp 3-component vector of float)
0:55          Convert bool to float (temp 3-component vector of float)
0:55            b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:55              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:55              Constant:
0:55                1 (const uint)
0:56      Sequence
0:56        move second child to first child (temp 3-component vector of float)
0:56          'r02' (temp 3-component vector of float)
0:56          Convert uint to float (temp 3-component vector of float)
0:56            u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:56              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:56              Constant:
0:56                3 (const uint)
0:57      Sequence
0:57        move second child to first child (temp 3-component vector of float)
0:57          'r03' (temp 3-component vector of float)
0:57          Convert double to float (temp 3-component vector of float)
0:57            d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:57              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:57              Constant:
0:57                4 (const uint)
0:59      Sequence
0:59        move second child to first child (temp 3-component vector of int)
0:59          'r10' (temp 3-component vector of int)
0:59          Convert bool to int (temp 3-component vector of int)
0:59            b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:59              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:59              Constant:
0:59                1 (const uint)
0:60      Sequence
0:60        move second child to first child (temp 3-component vector of int)
0:60          'r11' (temp 3-component vector of int)
0:60          Convert uint to int (temp 3-component vector of int)
0:60            u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:60              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:60              Constant:
0:60                3 (const uint)
0:61      Sequence
0:61        move second child to first child (temp 3-component vector of int)
0:61          'r12' (temp 3-component vector of int)
0:61          Convert float to int (temp 3-component vector of int)
0:61            f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:61              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:61              Constant:
0:61                2 (const uint)
0:62      Sequence
0:62        move second child to first child (temp 3-component vector of int)
0:62          'r13' (temp 3-component vector of int)
0:62          Convert double to int (temp 3-component vector of int)
0:62            d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:62              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:62              Constant:
0:62                4 (const uint)
0:64      Sequence
0:64        move second child to first child (temp 3-component vector of uint)
0:64          'r20' (temp 3-component vector of uint)
0:64          Convert bool to uint (temp 3-component vector of uint)
0:64            b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:64              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:64              Constant:
0:64                1 (const uint)
0:65      Sequence
0:65        move second child to first child (temp 3-component vector of uint)
0:65          'r21' (temp 3-component vector of uint)
0:65          Convert int to uint (temp 3-component vector of uint)
0:65            i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:65              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:65              Constant:
0:65                0 (const uint)
0:66      Sequence
0:66        move second child to first child (temp 3-component vector of uint)
0:66          'r22' (temp 3-component vector of uint)
0:66          Convert float to uint (temp 3-component vector of uint)
0:66            f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:66              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:66              Constant:
0:66                2 (const uint)
0:67      Sequence
0:67        move second child to first child (temp 3-component vector of uint)
0:67          'r23' (temp 3-component vector of uint)
0:67          Convert double to uint (temp 3-component vector of uint)
0:67            d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:67              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:67              Constant:
0:67                4 (const uint)
0:69      Sequence
0:69        move second child to first child (temp 3-component vector of bool)
0:69          'r30' (temp 3-component vector of bool)
0:69          Convert int to bool (temp 3-component vector of bool)
0:69            i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:69              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:69              Constant:
0:69                0 (const uint)
0:70      Sequence
0:70        move second child to first child (temp 3-component vector of bool)
0:70          'r31' (temp 3-component vector of bool)
0:70          Convert uint to bool (temp 3-component vector of bool)
0:70            u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:70              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:70              Constant:
0:70                3 (const uint)
0:71      Sequence
0:71        move second child to first child (temp 3-component vector of bool)
0:71          'r32' (temp 3-component vector of bool)
0:71          Convert float to bool (temp 3-component vector of bool)
0:71            f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:71              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:71              Constant:
0:71                2 (const uint)
0:72      Sequence
0:72        move second child to first child (temp 3-component vector of bool)
0:72          'r33' (temp 3-component vector of bool)
0:72          Convert double to bool (temp 3-component vector of bool)
0:72            d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:72              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:72              Constant:
0:72                4 (const uint)
0:74      Sequence
0:74        move second child to first child (temp 3-component vector of double)
0:74          'r40' (temp 3-component vector of double)
0:74          Convert int to double (temp 3-component vector of double)
0:74            i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:74              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:74              Constant:
0:74                0 (const uint)
0:75      Sequence
0:75        move second child to first child (temp 3-component vector of double)
0:75          'r41' (temp 3-component vector of double)
0:75          Convert uint to double (temp 3-component vector of double)
0:75            u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:75              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:75              Constant:
0:75                3 (const uint)
0:76      Sequence
0:76        move second child to first child (temp 3-component vector of double)
0:76          'r42' (temp 3-component vector of double)
0:76          Convert float to double (temp 3-component vector of double)
0:76            f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:76              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:76              Constant:
0:76                2 (const uint)
0:77      Sequence
0:77        move second child to first child (temp 3-component vector of double)
0:77          'r43' (temp 3-component vector of double)
0:77          Convert bool to double (temp 3-component vector of double)
0:77            b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:77              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:77              Constant:
0:77                1 (const uint)
0:80      multiply second child into first child (temp 3-component vector of float)
0:80        'r00' (temp 3-component vector of float)
0:80        Convert int to float (temp 3-component vector of float)
0:80          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:80            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:80            Constant:
0:80              0 (const uint)
0:81      multiply second child into first child (temp 3-component vector of float)
0:81        'r01' (temp 3-component vector of float)
0:81        Convert bool to float (temp 3-component vector of float)
0:81          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:81            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:81            Constant:
0:81              1 (const uint)
0:82      multiply second child into first child (temp 3-component vector of float)
0:82        'r02' (temp 3-component vector of float)
0:82        Convert uint to float (temp 3-component vector of float)
0:82          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:82            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:82            Constant:
0:82              3 (const uint)
0:83      multiply second child into first child (temp 3-component vector of float)
0:83        'r03' (temp 3-component vector of float)
0:83        Convert double to float (temp 3-component vector of float)
0:83          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:83            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:83            Constant:
0:83              4 (const uint)
0:85      multiply second child into first child (temp 3-component vector of int)
0:85        'r10' (temp 3-component vector of int)
0:85        Convert bool to int (temp 3-component vector of int)
0:85          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:85            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:85            Constant:
0:85              1 (const uint)
0:86      multiply second child into first child (temp 3-component vector of int)
0:86        'r11' (temp 3-component vector of int)
0:86        Convert uint to int (temp 3-component vector of int)
0:86          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:86            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:86            Constant:
0:86              3 (const uint)
0:87      multiply second child into first child (temp 3-component vector of int)
0:87        'r12' (temp 3-component vector of int)
0:87        Convert float to int (temp 3-component vector of int)
0:87          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:87            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:87            Constant:
0:87              2 (const uint)
0:88      multiply second child into first child (temp 3-component vector of int)
0:88        'r13' (temp 3-component vector of int)
0:88        Convert double to int (temp 3-component vector of int)
0:88          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:88            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:88            Constant:
0:88              4 (const uint)
0:90      multiply second child into first child (temp 3-component vector of uint)
0:90        'r20' (temp 3-component vector of uint)
0:90        Convert bool to uint (temp 3-component vector of uint)
0:90          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:90            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:90            Constant:
0:90              1 (const uint)
0:91      multiply second child into first child (temp 3-component vector of uint)
0:91        'r21' (temp 3-component vector of uint)
0:91        Convert int to uint (temp 3-component vector of uint)
0:91          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:91            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:91            Constant:
0:91              0 (const uint)
0:92      multiply second child into first child (temp 3-component vector of uint)
0:92        'r22' (temp 3-component vector of uint)
0:92        Convert float to uint (temp 3-component vector of uint)
0:92          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:92            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:92            Constant:
0:92              2 (const uint)
0:93      multiply second child into first child (temp 3-component vector of uint)
0:93        'r23' (temp 3-component vector of uint)
0:93        Convert double to uint (temp 3-component vector of uint)
0:93          d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double)
0:93            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:93            Constant:
0:93              4 (const uint)
0:97      multiply second child into first child (temp 3-component vector of double)
0:97        'r40' (temp 3-component vector of double)
0:97        Convert int to double (temp 3-component vector of double)
0:97          i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int)
0:97            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:97            Constant:
0:97              0 (const uint)
0:98      multiply second child into first child (temp 3-component vector of double)
0:98        'r41' (temp 3-component vector of double)
0:98        Convert uint to double (temp 3-component vector of double)
0:98          u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint)
0:98            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:98            Constant:
0:98              3 (const uint)
0:99      multiply second child into first child (temp 3-component vector of double)
0:99        'r42' (temp 3-component vector of double)
0:99        Convert float to double (temp 3-component vector of double)
0:99          f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float)
0:99            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:99            Constant:
0:99              2 (const uint)
0:100      multiply second child into first child (temp 3-component vector of double)
0:100        'r43' (temp 3-component vector of double)
0:100        Convert bool to double (temp 3-component vector of double)
0:100          b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool)
0:100            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:100            Constant:
0:100              1 (const uint)
0:103      vector scale second child into first child (temp 3-component vector of float)
0:103        'r00' (temp 3-component vector of float)
0:103        Convert int to float (temp float)
0:103          is: direct index for structure (layout(offset=88 ) uniform int)
0:103            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:103            Constant:
0:103              5 (const uint)
0:104      vector scale second child into first child (temp 3-component vector of float)
0:104        'r01' (temp 3-component vector of float)
0:104        Convert bool to float (temp float)
0:104          bs: direct index for structure (layout(offset=92 ) uniform bool)
0:104            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:104            Constant:
0:104              6 (const uint)
0:105      vector scale second child into first child (temp 3-component vector of float)
0:105        'r02' (temp 3-component vector of float)
0:105        Convert uint to float (temp float)
0:105          us: direct index for structure (layout(offset=100 ) uniform uint)
0:105            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:105            Constant:
0:105              8 (const uint)
0:106      vector scale second child into first child (temp 3-component vector of float)
0:106        'r03' (temp 3-component vector of float)
0:106        Convert double to float (temp float)
0:106          ds: direct index for structure (layout(offset=104 ) uniform double)
0:106            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:106            Constant:
0:106              9 (const uint)
0:108      vector scale second child into first child (temp 3-component vector of int)
0:108        'r10' (temp 3-component vector of int)
0:108        Convert bool to int (temp int)
0:108          bs: direct index for structure (layout(offset=92 ) uniform bool)
0:108            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:108            Constant:
0:108              6 (const uint)
0:109      vector scale second child into first child (temp 3-component vector of int)
0:109        'r11' (temp 3-component vector of int)
0:109        Convert uint to int (temp int)
0:109          us: direct index for structure (layout(offset=100 ) uniform uint)
0:109            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:109            Constant:
0:109              8 (const uint)
0:110      vector scale second child into first child (temp 3-component vector of int)
0:110        'r12' (temp 3-component vector of int)
0:110        Convert float to int (temp int)
0:110          fs: direct index for structure (layout(offset=96 ) uniform float)
0:110            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:110            Constant:
0:110              7 (const uint)
0:111      vector scale second child into first child (temp 3-component vector of int)
0:111        'r13' (temp 3-component vector of int)
0:111        Convert double to int (temp int)
0:111          ds: direct index for structure (layout(offset=104 ) uniform double)
0:111            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:111            Constant:
0:111              9 (const uint)
0:113      vector scale second child into first child (temp 3-component vector of uint)
0:113        'r20' (temp 3-component vector of uint)
0:113        Convert bool to uint (temp uint)
0:113          bs: direct index for structure (layout(offset=92 ) uniform bool)
0:113            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:113            Constant:
0:113              6 (const uint)
0:114      vector scale second child into first child (temp 3-component vector of uint)
0:114        'r21' (temp 3-component vector of uint)
0:114        Convert int to uint (temp uint)
0:114          is: direct index for structure (layout(offset=88 ) uniform int)
0:114            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:114            Constant:
0:114              5 (const uint)
0:115      vector scale second child into first child (temp 3-component vector of uint)
0:115        'r22' (temp 3-component vector of uint)
0:115        Convert float to uint (temp uint)
0:115          fs: direct index for structure (layout(offset=96 ) uniform float)
0:115            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:115            Constant:
0:115              7 (const uint)
0:116      vector scale second child into first child (temp 3-component vector of uint)
0:116        'r23' (temp 3-component vector of uint)
0:116        Convert double to uint (temp uint)
0:116          ds: direct index for structure (layout(offset=104 ) uniform double)
0:116            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:116            Constant:
0:116              9 (const uint)
0:120      vector scale second child into first child (temp 3-component vector of double)
0:120        'r40' (temp 3-component vector of double)
0:120        Convert int to double (temp double)
0:120          is: direct index for structure (layout(offset=88 ) uniform int)
0:120            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:120            Constant:
0:120              5 (const uint)
0:121      vector scale second child into first child (temp 3-component vector of double)
0:121        'r41' (temp 3-component vector of double)
0:121        Convert uint to double (temp double)
0:121          us: direct index for structure (layout(offset=100 ) uniform uint)
0:121            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:121            Constant:
0:121              8 (const uint)
0:122      vector scale second child into first child (temp 3-component vector of double)
0:122        'r42' (temp 3-component vector of double)
0:122        Convert float to double (temp double)
0:122          fs: direct index for structure (layout(offset=96 ) uniform float)
0:122            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:122            Constant:
0:122              7 (const uint)
0:123      vector scale second child into first child (temp 3-component vector of double)
0:123        'r43' (temp 3-component vector of double)
0:123        Convert bool to double (temp double)
0:123          bs: direct index for structure (layout(offset=92 ) uniform bool)
0:123            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:123            Constant:
0:123              6 (const uint)
0:193      Sequence
0:193        move second child to first child (temp int)
0:193          'c1' (temp int)
0:193          Constant:
0:193            3 (const int)
0:194      Sequence
0:194        move second child to first child (temp int)
0:194          'c2' (temp int)
0:194          Constant:
0:194            3 (const int)
0:196      Sequence
0:196        move second child to first child (temp 4-component vector of float)
0:196          'outval' (temp 4-component vector of float)
0:?           Construct vec4 (temp 4-component vector of float)
0:196            Constant:
0:196              3.600000
0:196            Constant:
0:196              3.600000
0:196            Convert int to float (temp float)
0:196              'c1' (temp int)
0:196            Convert int to float (temp float)
0:196              'c2' (temp int)
0:199      move second child to first child (temp 4-component vector of float)
0:199        Color: direct index for structure (temp 4-component vector of float)
0:199          'psout' (temp structure{temp 4-component vector of float Color})
0:199          Constant:
0:199            0 (const int)
0:199        'outval' (temp 4-component vector of float)
0:200      Sequence
0:200        Sequence
0:200          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:200            Color: direct index for structure (temp 4-component vector of float)
0:200              'psout' (temp structure{temp 4-component vector of float Color})
0:200              Constant:
0:200                0 (const int)
0:200        Branch: Return
0:?   Linker Objects
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:?     'Color' (layout(location=0 ) out 4-component vector of float)

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

                              Capability Shader
                              Capability Float64
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 587
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 11  "Fn_F3(vf3;"
                              Name 10  "x"
                              Name 18  "Fn_I3(vi3;"
                              Name 17  "x"
                              Name 25  "Fn_U3(vu3;"
                              Name 24  "x"
                              Name 32  "Fn_B3(vb3;"
                              Name 31  "x"
                              Name 39  "Fn_D3(vd3;"
                              Name 38  "x"
                              Name 43  "Fn_R_F3I(vf3;"
                              Name 42  "p"
                              Name 46  "Fn_R_F3U(vf3;"
                              Name 45  "p"
                              Name 49  "Fn_R_F3B(vf3;"
                              Name 48  "p"
                              Name 52  "Fn_R_F3D(vf3;"
                              Name 51  "p"
                              Name 56  "Fn_R_I3U(vi3;"
                              Name 55  "p"
                              Name 59  "Fn_R_I3B(vi3;"
                              Name 58  "p"
                              Name 62  "Fn_R_I3F(vi3;"
                              Name 61  "p"
                              Name 65  "Fn_R_I3D(vi3;"
                              Name 64  "p"
                              Name 69  "Fn_R_U3I(vu3;"
                              Name 68  "p"
                              Name 72  "Fn_R_U3F(vu3;"
                              Name 71  "p"
                              Name 75  "Fn_R_U3B(vu3;"
                              Name 74  "p"
                              Name 78  "Fn_R_U3D(vu3;"
                              Name 77  "p"
                              Name 82  "Fn_R_B3I(vb3;"
                              Name 81  "p"
                              Name 85  "Fn_R_B3U(vb3;"
                              Name 84  "p"
                              Name 88  "Fn_R_B3F(vb3;"
                              Name 87  "p"
                              Name 91  "Fn_R_B3D(vb3;"
                              Name 90  "p"
                              Name 95  "Fn_R_D3I(vd3;"
                              Name 94  "p"
                              Name 98  "Fn_R_D3U(vd3;"
                              Name 97  "p"
                              Name 101  "Fn_R_D3B(vd3;"
                              Name 100  "p"
                              Name 104  "Fn_R_D3F(vd3;"
                              Name 103  "p"
                              Name 106  "$Global"
                              MemberName 106($Global) 0  "i3"
                              MemberName 106($Global) 1  "b3"
                              MemberName 106($Global) 2  "f3"
                              MemberName 106($Global) 3  "u3"
                              MemberName 106($Global) 4  "d3"
                              MemberName 106($Global) 5  "is"
                              MemberName 106($Global) 6  "bs"
                              MemberName 106($Global) 7  "fs"
                              MemberName 106($Global) 8  "us"
                              MemberName 106($Global) 9  "ds"
                              Name 108  ""
                              Name 300  "r00"
                              Name 304  "r01"
                              Name 309  "r02"
                              Name 313  "r03"
                              Name 317  "r10"
                              Name 322  "r11"
                              Name 326  "r12"
                              Name 330  "r13"
                              Name 334  "r20"
                              Name 339  "r21"
                              Name 343  "r22"
                              Name 347  "r23"
                              Name 351  "r30"
                              Name 355  "r31"
                              Name 359  "r32"
                              Name 363  "r33"
                              Name 367  "r40"
                              Name 371  "r41"
                              Name 375  "r42"
                              Name 379  "r43"
                              Name 570  "c1"
                              Name 571  "c2"
                              Name 574  "outval"
                              Name 581  "PS_OUTPUT"
                              MemberName 581(PS_OUTPUT) 0  "Color"
                              Name 583  "psout"
                              Name 587  "Color"
                              MemberDecorate 106($Global) 0 Offset 0
                              MemberDecorate 106($Global) 1 Offset 16
                              MemberDecorate 106($Global) 2 Offset 32
                              MemberDecorate 106($Global) 3 Offset 48
                              MemberDecorate 106($Global) 4 Offset 64
                              MemberDecorate 106($Global) 5 Offset 88
                              MemberDecorate 106($Global) 6 Offset 92
                              MemberDecorate 106($Global) 7 Offset 96
                              MemberDecorate 106($Global) 8 Offset 100
                              MemberDecorate 106($Global) 9 Offset 104
                              Decorate 106($Global) Block
                              Decorate 108 DescriptorSet 0
                              Decorate 587(Color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 3
               8:             TypePointer Function 7(fvec3)
               9:             TypeFunction 2 8(ptr)
              13:             TypeInt 32 1
              14:             TypeVector 13(int) 3
              15:             TypePointer Function 14(ivec3)
              16:             TypeFunction 2 15(ptr)
              20:             TypeInt 32 0
              21:             TypeVector 20(int) 3
              22:             TypePointer Function 21(ivec3)
              23:             TypeFunction 2 22(ptr)
              27:             TypeBool
              28:             TypeVector 27(bool) 3
              29:             TypePointer Function 28(bvec3)
              30:             TypeFunction 2 29(ptr)
              34:             TypeFloat 64
              35:             TypeVector 34(float) 3
              36:             TypePointer Function 35(fvec3)
              37:             TypeFunction 2 36(ptr)
              41:             TypeFunction 7(fvec3) 8(ptr)
              54:             TypeFunction 14(ivec3) 15(ptr)
              67:             TypeFunction 21(ivec3) 22(ptr)
              80:             TypeFunction 28(bvec3) 29(ptr)
              93:             TypeFunction 35(fvec3) 36(ptr)
    106($Global):             TypeStruct 14(ivec3) 21(ivec3) 7(fvec3) 21(ivec3) 35(fvec3) 13(int) 20(int) 6(float) 20(int) 34(float)
             107:             TypePointer Uniform 106($Global)
             108:    107(ptr) Variable Uniform
             109:     13(int) Constant 0
             110:             TypePointer Uniform 14(ivec3)
             119:     13(int) Constant 3
             120:             TypePointer Uniform 21(ivec3)
             129:     13(int) Constant 1
             132:     20(int) Constant 0
             133:   21(ivec3) ConstantComposite 132 132 132
             135:    6(float) Constant 0
             136:    6(float) Constant 1065353216
             137:    7(fvec3) ConstantComposite 135 135 135
             138:    7(fvec3) ConstantComposite 136 136 136
             146:     13(int) Constant 4
             147:             TypePointer Uniform 35(fvec3)
             167:   14(ivec3) ConstantComposite 109 109 109
             168:   14(ivec3) ConstantComposite 129 129 129
             176:     13(int) Constant 2
             177:             TypePointer Uniform 7(fvec3)
             213:     20(int) Constant 1
             214:   21(ivec3) ConstantComposite 213 213 213
             256:   34(float) Constant 0 0
             257:   35(fvec3) ConstantComposite 256 256 256
             283:   34(float) Constant 0 1072693248
             284:   35(fvec3) ConstantComposite 283 283 283
             468:     13(int) Constant 5
             469:             TypePointer Uniform 13(int)
             475:     13(int) Constant 6
             476:             TypePointer Uniform 20(int)
             483:     13(int) Constant 8
             489:     13(int) Constant 9
             490:             TypePointer Uniform 34(float)
             509:     13(int) Constant 7
             510:             TypePointer Uniform 6(float)
             569:             TypePointer Function 13(int)
             572:             TypeVector 6(float) 4
             573:             TypePointer Function 572(fvec4)
             575:    6(float) Constant 1080452710
  581(PS_OUTPUT):             TypeStruct 572(fvec4)
             582:             TypePointer Function 581(PS_OUTPUT)
             586:             TypePointer Output 572(fvec4)
      587(Color):    586(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
        300(r00):      8(ptr) Variable Function
        304(r01):      8(ptr) Variable Function
        309(r02):      8(ptr) Variable Function
        313(r03):      8(ptr) Variable Function
        317(r10):     15(ptr) Variable Function
        322(r11):     15(ptr) Variable Function
        326(r12):     15(ptr) Variable Function
        330(r13):     15(ptr) Variable Function
        334(r20):     22(ptr) Variable Function
        339(r21):     22(ptr) Variable Function
        343(r22):     22(ptr) Variable Function
        347(r23):     22(ptr) Variable Function
        351(r30):     29(ptr) Variable Function
        355(r31):     29(ptr) Variable Function
        359(r32):     29(ptr) Variable Function
        363(r33):     29(ptr) Variable Function
        367(r40):     36(ptr) Variable Function
        371(r41):     36(ptr) Variable Function
        375(r42):     36(ptr) Variable Function
        379(r43):     36(ptr) Variable Function
         570(c1):    569(ptr) Variable Function
         571(c2):    569(ptr) Variable Function
     574(outval):    573(ptr) Variable Function
      583(psout):    582(ptr) Variable Function
             301:    110(ptr) AccessChain 108 109
             302:   14(ivec3) Load 301
             303:    7(fvec3) ConvertSToF 302
                              Store 300(r00) 303
             305:    120(ptr) AccessChain 108 129
             306:   21(ivec3) Load 305
             307:   28(bvec3) INotEqual 306 133
             308:    7(fvec3) Select 307 138 137
                              Store 304(r01) 308
             310:    120(ptr) AccessChain 108 119
             311:   21(ivec3) Load 310
             312:    7(fvec3) ConvertUToF 311
                              Store 309(r02) 312
             314:    147(ptr) AccessChain 108 146
             315:   35(fvec3) Load 314
             316:    7(fvec3) FConvert 315
                              Store 313(r03) 316
             318:    120(ptr) AccessChain 108 129
             319:   21(ivec3) Load 318
             320:   28(bvec3) INotEqual 319 133
             321:   14(ivec3) Select 320 168 167
                              Store 317(r10) 321
             323:    120(ptr) AccessChain 108 119
             324:   21(ivec3) Load 323
             325:   14(ivec3) Bitcast 324
                              Store 322(r11) 325
             327:    177(ptr) AccessChain 108 176
             328:    7(fvec3) Load 327
             329:   14(ivec3) ConvertFToS 328
                              Store 326(r12) 329
             331:    147(ptr) AccessChain 108 146
             332:   35(fvec3) Load 331
             333:   14(ivec3) ConvertFToS 332
                              Store 330(r13) 333
             335:    120(ptr) AccessChain 108 129
             336:   21(ivec3) Load 335
             337:   28(bvec3) INotEqual 336 133
             338:   21(ivec3) Select 337 214 133
                              Store 334(r20) 338
             340:    110(ptr) AccessChain 108 109
             341:   14(ivec3) Load 340
             342:   21(ivec3) Bitcast 341
                              Store 339(r21) 342
             344:    177(ptr) AccessChain 108 176
             345:    7(fvec3) Load 344
             346:   21(ivec3) ConvertFToU 345
                              Store 343(r22) 346
             348:    147(ptr) AccessChain 108 146
             349:   35(fvec3) Load 348
             350:   21(ivec3) ConvertFToU 349
                              Store 347(r23) 350
             352:    110(ptr) AccessChain 108 109
             353:   14(ivec3) Load 352
             354:   28(bvec3) INotEqual 353 133
                              Store 351(r30) 354
             356:    120(ptr) AccessChain 108 119
             357:   21(ivec3) Load 356
             358:   28(bvec3) INotEqual 357 133
                              Store 355(r31) 358
             360:    177(ptr) AccessChain 108 176
             361:    7(fvec3) Load 360
             362:   28(bvec3) FOrdNotEqual 361 137
                              Store 359(r32) 362
             364:    147(ptr) AccessChain 108 146
             365:   35(fvec3) Load 364
             366:   28(bvec3) FOrdNotEqual 365 257
                              Store 363(r33) 366
             368:    110(ptr) AccessChain 108 109
             369:   14(ivec3) Load 368
             370:   35(fvec3) ConvertSToF 369
                              Store 367(r40) 370
             372:    120(ptr) AccessChain 108 119
             373:   21(ivec3) Load 372
             374:   35(fvec3) ConvertUToF 373
                              Store 371(r41) 374
             376:    177(ptr) AccessChain 108 176
             377:    7(fvec3) Load 376
             378:   35(fvec3) FConvert 377
                              Store 375(r42) 378
             380:    120(ptr) AccessChain 108 129
             381:   21(ivec3) Load 380
             382:   28(bvec3) INotEqual 381 133
             383:   35(fvec3) Select 382 284 257
                              Store 379(r43) 383
             384:    110(ptr) AccessChain 108 109
             385:   14(ivec3) Load 384
             386:    7(fvec3) ConvertSToF 385
             387:    7(fvec3) Load 300(r00)
             388:    7(fvec3) FMul 387 386
                              Store 300(r00) 388
             389:    120(ptr) AccessChain 108 129
             390:   21(ivec3) Load 389
             391:   28(bvec3) INotEqual 390 133
             392:    7(fvec3) Select 391 138 137
             393:    7(fvec3) Load 304(r01)
             394:    7(fvec3) FMul 393 392
                              Store 304(r01) 394
             395:    120(ptr) AccessChain 108 119
             396:   21(ivec3) Load 395
             397:    7(fvec3) ConvertUToF 396
             398:    7(fvec3) Load 309(r02)
             399:    7(fvec3) FMul 398 397
                              Store 309(r02) 399
             400:    147(ptr) AccessChain 108 146
             401:   35(fvec3) Load 400
             402:    7(fvec3) FConvert 401
             403:    7(fvec3) Load 313(r03)
             404:    7(fvec3) FMul 403 402
                              Store 313(r03) 404
             405:    120(ptr) AccessChain 108 129
             406:   21(ivec3) Load 405
             407:   28(bvec3) INotEqual 406 133
             408:   14(ivec3) Select 407 168 167
             409:   14(ivec3) Load 317(r10)
             410:   14(ivec3) IMul 409 408
                              Store 317(r10) 410
             411:    120(ptr) AccessChain 108 119
             412:   21(ivec3) Load 411
             413:   14(ivec3) Bitcast 412
             414:   14(ivec3) Load 322(r11)
             415:   14(ivec3) IMul 414 413
                              Store 322(r11) 415
             416:    177(ptr) AccessChain 108 176
             417:    7(fvec3) Load 416
             418:   14(ivec3) ConvertFToS 417
             419:   14(ivec3) Load 326(r12)
             420:   14(ivec3) IMul 419 418
                              Store 326(r12) 420
             421:    147(ptr) AccessChain 108 146
             422:   35(fvec3) Load 421
             423:   14(ivec3) ConvertFToS 422
             424:   14(ivec3) Load 330(r13)
             425:   14(ivec3) IMul 424 423
                              Store 330(r13) 425
             426:    120(ptr) AccessChain 108 129
             427:   21(ivec3) Load 426
             428:   28(bvec3) INotEqual 427 133
             429:   21(ivec3) Select 428 214 133
             430:   21(ivec3) Load 334(r20)
             431:   21(ivec3) IMul 430 429
                              Store 334(r20) 431
             432:    110(ptr) AccessChain 108 109
             433:   14(ivec3) Load 432
             434:   21(ivec3) Bitcast 433
             435:   21(ivec3) Load 339(r21)
             436:   21(ivec3) IMul 435 434
                              Store 339(r21) 436
             437:    177(ptr) AccessChain 108 176
             438:    7(fvec3) Load 437
             439:   21(ivec3) ConvertFToU 438
             440:   21(ivec3) Load 343(r22)
             441:   21(ivec3) IMul 440 439
                              Store 343(r22) 441
             442:    147(ptr) AccessChain 108 146
             443:   35(fvec3) Load 442
             444:   21(ivec3) ConvertFToU 443
             445:   21(ivec3) Load 347(r23)
             446:   21(ivec3) IMul 445 444
                              Store 347(r23) 446
             447:    110(ptr) AccessChain 108 109
             448:   14(ivec3) Load 447
             449:   35(fvec3) ConvertSToF 448
             450:   35(fvec3) Load 367(r40)
             451:   35(fvec3) FMul 450 449
                              Store 367(r40) 451
             452:    120(ptr) AccessChain 108 119
             453:   21(ivec3) Load 452
             454:   35(fvec3) ConvertUToF 453
             455:   35(fvec3) Load 371(r41)
             456:   35(fvec3) FMul 455 454
                              Store 371(r41) 456
             457:    177(ptr) AccessChain 108 176
             458:    7(fvec3) Load 457
             459:   35(fvec3) FConvert 458
             460:   35(fvec3) Load 375(r42)
             461:   35(fvec3) FMul 460 459
                              Store 375(r42) 461
             462:    120(ptr) AccessChain 108 129
             463:   21(ivec3) Load 462
             464:   28(bvec3) INotEqual 463 133
             465:   35(fvec3) Select 464 284 257
             466:   35(fvec3) Load 379(r43)
             467:   35(fvec3) FMul 466 465
                              Store 379(r43) 467
             470:    469(ptr) AccessChain 108 468
             471:     13(int) Load 470
             472:    6(float) ConvertSToF 471
             473:    7(fvec3) Load 300(r00)
             474:    7(fvec3) VectorTimesScalar 473 472
                              Store 300(r00) 474
             477:    476(ptr) AccessChain 108 475
             478:     20(int) Load 477
             479:    27(bool) INotEqual 478 132
             480:    6(float) Select 479 136 135
             481:    7(fvec3) Load 304(r01)
             482:    7(fvec3) VectorTimesScalar 481 480
                              Store 304(r01) 482
             484:    476(ptr) AccessChain 108 483
             485:     20(int) Load 484
             486:    6(float) ConvertUToF 485
             487:    7(fvec3) Load 309(r02)
             488:    7(fvec3) VectorTimesScalar 487 486
                              Store 309(r02) 488
             491:    490(ptr) AccessChain 108 489
             492:   34(float) Load 491
             493:    6(float) FConvert 492
             494:    7(fvec3) Load 313(r03)
             495:    7(fvec3) VectorTimesScalar 494 493
                              Store 313(r03) 495
             496:    476(ptr) AccessChain 108 475
             497:     20(int) Load 496
             498:    27(bool) INotEqual 497 132
             499:     13(int) Select 498 129 109
             500:   14(ivec3) Load 317(r10)
             501:   14(ivec3) CompositeConstruct 499 499 499
             502:   14(ivec3) IMul 500 501
                              Store 317(r10) 502
             503:    476(ptr) AccessChain 108 483
             504:     20(int) Load 503
             505:     13(int) Bitcast 504
             506:   14(ivec3) Load 322(r11)
             507:   14(ivec3) CompositeConstruct 505 505 505
             508:   14(ivec3) IMul 506 507
                              Store 322(r11) 508
             511:    510(ptr) AccessChain 108 509
             512:    6(float) Load 511
             513:     13(int) ConvertFToS 512
             514:   14(ivec3) Load 326(r12)
             515:   14(ivec3) CompositeConstruct 513 513 513
             516:   14(ivec3) IMul 514 515
                              Store 326(r12) 516
             517:    490(ptr) AccessChain 108 489
             518:   34(float) Load 517
             519:     13(int) ConvertFToS 518
             520:   14(ivec3) Load 330(r13)
             521:   14(ivec3) CompositeConstruct 519 519 519
             522:   14(ivec3) IMul 520 521
                              Store 330(r13) 522
             523:    476(ptr) AccessChain 108 475
             524:     20(int) Load 523
             525:    27(bool) INotEqual 524 132
             526:     20(int) Select 525 213 132
             527:   21(ivec3) Load 334(r20)
             528:   21(ivec3) CompositeConstruct 526 526 526
             529:   21(ivec3) IMul 527 528
                              Store 334(r20) 529
             530:    469(ptr) AccessChain 108 468
             531:     13(int) Load 530
             532:     20(int) Bitcast 531
             533:   21(ivec3) Load 339(r21)
             534:   21(ivec3) CompositeConstruct 532 532 532
             535:   21(ivec3) IMul 533 534
                              Store 339(r21) 535
             536:    510(ptr) AccessChain 108 509
             537:    6(float) Load 536
             538:     20(int) ConvertFToU 537
             539:   21(ivec3) Load 343(r22)
             540:   21(ivec3) CompositeConstruct 538 538 538
             541:   21(ivec3) IMul 539 540
                              Store 343(r22) 541
             542:    490(ptr) AccessChain 108 489
             543:   34(float) Load 542
             544:     20(int) ConvertFToU 543
             545:   21(ivec3) Load 347(r23)
             546:   21(ivec3) CompositeConstruct 544 544 544
             547:   21(ivec3) IMul 545 546
                              Store 347(r23) 547
             548:    469(ptr) AccessChain 108 468
             549:     13(int) Load 548
             550:   34(float) ConvertSToF 549
             551:   35(fvec3) Load 367(r40)
             552:   35(fvec3) VectorTimesScalar 551 550
                              Store 367(r40) 552
             553:    476(ptr) AccessChain 108 483
             554:     20(int) Load 553
             555:   34(float) ConvertUToF 554
             556:   35(fvec3) Load 371(r41)
             557:   35(fvec3) VectorTimesScalar 556 555
                              Store 371(r41) 557
             558:    510(ptr) AccessChain 108 509
             559:    6(float) Load 558
             560:   34(float) FConvert 559
             561:   35(fvec3) Load 375(r42)
             562:   35(fvec3) VectorTimesScalar 561 560
                              Store 375(r42) 562
             563:    476(ptr) AccessChain 108 475
             564:     20(int) Load 563
             565:    27(bool) INotEqual 564 132
             566:   34(float) Select 565 283 256
             567:   35(fvec3) Load 379(r43)
             568:   35(fvec3) VectorTimesScalar 567 566
                              Store 379(r43) 568
                              Store 570(c1) 119
                              Store 571(c2) 119
             576:     13(int) Load 570(c1)
             577:    6(float) ConvertSToF 576
             578:     13(int) Load 571(c2)
             579:    6(float) ConvertSToF 578
             580:  572(fvec4) CompositeConstruct 575 575 577 579
                              Store 574(outval) 580
             584:  572(fvec4) Load 574(outval)
             585:    573(ptr) AccessChain 583(psout) 109
                              Store 585 584
             588:    573(ptr) AccessChain 583(psout) 109
             589:  572(fvec4) Load 588
                              Store 587(Color) 589
                              Return
                              FunctionEnd
  11(Fn_F3(vf3;):           2 Function None 9
           10(x):      8(ptr) FunctionParameter
              12:             Label
                              Return
                              FunctionEnd
  18(Fn_I3(vi3;):           2 Function None 16
           17(x):     15(ptr) FunctionParameter
              19:             Label
                              Return
                              FunctionEnd
  25(Fn_U3(vu3;):           2 Function None 23
           24(x):     22(ptr) FunctionParameter
              26:             Label
                              Return
                              FunctionEnd
  32(Fn_B3(vb3;):           2 Function None 30
           31(x):     29(ptr) FunctionParameter
              33:             Label
                              Return
                              FunctionEnd
  39(Fn_D3(vd3;):           2 Function None 37
           38(x):     36(ptr) FunctionParameter
              40:             Label
                              Return
                              FunctionEnd
43(Fn_R_F3I(vf3;):    7(fvec3) Function None 41
           42(p):      8(ptr) FunctionParameter
              44:             Label
             111:    110(ptr) AccessChain 108 109
             112:   14(ivec3) Load 111
             113:    7(fvec3) ConvertSToF 112
                              Store 42(p) 113
             114:    110(ptr) AccessChain 108 109
             115:   14(ivec3) Load 114
             116:    7(fvec3) ConvertSToF 115
                              ReturnValue 116
                              FunctionEnd
46(Fn_R_F3U(vf3;):    7(fvec3) Function None 41
           45(p):      8(ptr) FunctionParameter
              47:             Label
             121:    120(ptr) AccessChain 108 119
             122:   21(ivec3) Load 121
             123:    7(fvec3) ConvertUToF 122
                              Store 45(p) 123
             124:    120(ptr) AccessChain 108 119
             125:   21(ivec3) Load 124
             126:    7(fvec3) ConvertUToF 125
                              ReturnValue 126
                              FunctionEnd
49(Fn_R_F3B(vf3;):    7(fvec3) Function None 41
           48(p):      8(ptr) FunctionParameter
              50:             Label
             130:    120(ptr) AccessChain 108 129
             131:   21(ivec3) Load 130
             134:   28(bvec3) INotEqual 131 133
             139:    7(fvec3) Select 134 138 137
                              Store 48(p) 139
             140:    120(ptr) AccessChain 108 129
             141:   21(ivec3) Load 140
             142:   28(bvec3) INotEqual 141 133
             143:    7(fvec3) Select 142 138 137
                              ReturnValue 143
                              FunctionEnd
52(Fn_R_F3D(vf3;):    7(fvec3) Function None 41
           51(p):      8(ptr) FunctionParameter
              53:             Label
             148:    147(ptr) AccessChain 108 146
             149:   35(fvec3) Load 148
             150:    7(fvec3) FConvert 149
                              Store 51(p) 150
             151:    147(ptr) AccessChain 108 146
             152:   35(fvec3) Load 151
             153:    7(fvec3) FConvert 152
                              ReturnValue 153
                              FunctionEnd
56(Fn_R_I3U(vi3;):   14(ivec3) Function None 54
           55(p):     15(ptr) FunctionParameter
              57:             Label
             156:    120(ptr) AccessChain 108 119
             157:   21(ivec3) Load 156
             158:   14(ivec3) Bitcast 157
                              Store 55(p) 158
             159:    120(ptr) AccessChain 108 119
             160:   21(ivec3) Load 159
             161:   14(ivec3) Bitcast 160
                              ReturnValue 161
                              FunctionEnd
59(Fn_R_I3B(vi3;):   14(ivec3) Function None 54
           58(p):     15(ptr) FunctionParameter
              60:             Label
             164:    120(ptr) AccessChain 108 129
             165:   21(ivec3) Load 164
             166:   28(bvec3) INotEqual 165 133
             169:   14(ivec3) Select 166 168 167
                              Store 58(p) 169
             170:    120(ptr) AccessChain 108 129
             171:   21(ivec3) Load 170
             172:   28(bvec3) INotEqual 171 133
             173:   14(ivec3) Select 172 168 167
                              ReturnValue 173
                              FunctionEnd
62(Fn_R_I3F(vi3;):   14(ivec3) Function None 54
           61(p):     15(ptr) FunctionParameter
              63:             Label
             178:    177(ptr) AccessChain 108 176
             179:    7(fvec3) Load 178
             180:   14(ivec3) ConvertFToS 179
                              Store 61(p) 180
             181:    177(ptr) AccessChain 108 176
             182:    7(fvec3) Load 181
             183:   14(ivec3) ConvertFToS 182
                              ReturnValue 183
                              FunctionEnd
65(Fn_R_I3D(vi3;):   14(ivec3) Function None 54
           64(p):     15(ptr) FunctionParameter
              66:             Label
             186:    147(ptr) AccessChain 108 146
             187:   35(fvec3) Load 186
             188:   14(ivec3) ConvertFToS 187
                              Store 64(p) 188
             189:    147(ptr) AccessChain 108 146
             190:   35(fvec3) Load 189
             191:   14(ivec3) ConvertFToS 190
                              ReturnValue 191
                              FunctionEnd
69(Fn_R_U3I(vu3;):   21(ivec3) Function None 67
           68(p):     22(ptr) FunctionParameter
              70:             Label
             194:    110(ptr) AccessChain 108 109
             195:   14(ivec3) Load 194
             196:   21(ivec3) Bitcast 195
                              Store 68(p) 196
             197:    110(ptr) AccessChain 108 109
             198:   14(ivec3) Load 197
             199:   21(ivec3) Bitcast 198
                              ReturnValue 199
                              FunctionEnd
72(Fn_R_U3F(vu3;):   21(ivec3) Function None 67
           71(p):     22(ptr) FunctionParameter
              73:             Label
             202:    177(ptr) AccessChain 108 176
             203:    7(fvec3) Load 202
             204:   21(ivec3) ConvertFToU 203
                              Store 71(p) 204
             205:    177(ptr) AccessChain 108 176
             206:    7(fvec3) Load 205
             207:   21(ivec3) ConvertFToU 206
                              ReturnValue 207
                              FunctionEnd
75(Fn_R_U3B(vu3;):   21(ivec3) Function None 67
           74(p):     22(ptr) FunctionParameter
              76:             Label
             210:    120(ptr) AccessChain 108 129
             211:   21(ivec3) Load 210
             212:   28(bvec3) INotEqual 211 133
             215:   21(ivec3) Select 212 214 133
                              Store 74(p) 215
             216:    120(ptr) AccessChain 108 129
             217:   21(ivec3) Load 216
             218:   28(bvec3) INotEqual 217 133
             219:   21(ivec3) Select 218 214 133
                              ReturnValue 219
                              FunctionEnd
78(Fn_R_U3D(vu3;):   21(ivec3) Function None 67
           77(p):     22(ptr) FunctionParameter
              79:             Label
             222:    147(ptr) AccessChain 108 146
             223:   35(fvec3) Load 222
             224:   21(ivec3) ConvertFToU 223
                              Store 77(p) 224
             225:    147(ptr) AccessChain 108 146
             226:   35(fvec3) Load 225
             227:   21(ivec3) ConvertFToU 226
                              ReturnValue 227
                              FunctionEnd
82(Fn_R_B3I(vb3;):   28(bvec3) Function None 80
           81(p):     29(ptr) FunctionParameter
              83:             Label
             230:    110(ptr) AccessChain 108 109
             231:   14(ivec3) Load 230
             232:   28(bvec3) INotEqual 231 133
                              Store 81(p) 232
             233:    110(ptr) AccessChain 108 109
             234:   14(ivec3) Load 233
             235:   28(bvec3) INotEqual 234 133
                              ReturnValue 235
                              FunctionEnd
85(Fn_R_B3U(vb3;):   28(bvec3) Function None 80
           84(p):     29(ptr) FunctionParameter
              86:             Label
             238:    120(ptr) AccessChain 108 119
             239:   21(ivec3) Load 238
             240:   28(bvec3) INotEqual 239 133
                              Store 84(p) 240
             241:    120(ptr) AccessChain 108 119
             242:   21(ivec3) Load 241
             243:   28(bvec3) INotEqual 242 133
                              ReturnValue 243
                              FunctionEnd
88(Fn_R_B3F(vb3;):   28(bvec3) Function None 80
           87(p):     29(ptr) FunctionParameter
              89:             Label
             246:    177(ptr) AccessChain 108 176
             247:    7(fvec3) Load 246
             248:   28(bvec3) FOrdNotEqual 247 137
                              Store 87(p) 248
             249:    177(ptr) AccessChain 108 176
             250:    7(fvec3) Load 249
             251:   28(bvec3) FOrdNotEqual 250 137
                              ReturnValue 251
                              FunctionEnd
91(Fn_R_B3D(vb3;):   28(bvec3) Function None 80
           90(p):     29(ptr) FunctionParameter
              92:             Label
             254:    147(ptr) AccessChain 108 146
             255:   35(fvec3) Load 254
             258:   28(bvec3) FOrdNotEqual 255 257
                              Store 90(p) 258
             259:    147(ptr) AccessChain 108 146
             260:   35(fvec3) Load 259
             261:   28(bvec3) FOrdNotEqual 260 257
                              ReturnValue 261
                              FunctionEnd
95(Fn_R_D3I(vd3;):   35(fvec3) Function None 93
           94(p):     36(ptr) FunctionParameter
              96:             Label
             264:    110(ptr) AccessChain 108 109
             265:   14(ivec3) Load 264
             266:   35(fvec3) ConvertSToF 265
                              Store 94(p) 266
             267:    110(ptr) AccessChain 108 109
             268:   14(ivec3) Load 267
             269:   35(fvec3) ConvertSToF 268
                              ReturnValue 269
                              FunctionEnd
98(Fn_R_D3U(vd3;):   35(fvec3) Function None 93
           97(p):     36(ptr) FunctionParameter
              99:             Label
             272:    120(ptr) AccessChain 108 119
             273:   21(ivec3) Load 272
             274:   35(fvec3) ConvertUToF 273
                              Store 97(p) 274
             275:    120(ptr) AccessChain 108 119
             276:   21(ivec3) Load 275
             277:   35(fvec3) ConvertUToF 276
                              ReturnValue 277
                              FunctionEnd
101(Fn_R_D3B(vd3;):   35(fvec3) Function None 93
          100(p):     36(ptr) FunctionParameter
             102:             Label
             280:    120(ptr) AccessChain 108 129
             281:   21(ivec3) Load 280
             282:   28(bvec3) INotEqual 281 133
             285:   35(fvec3) Select 282 284 257
                              Store 100(p) 285
             286:    120(ptr) AccessChain 108 129
             287:   21(ivec3) Load 286
             288:   28(bvec3) INotEqual 287 133
             289:   35(fvec3) Select 288 284 257
                              ReturnValue 289
                              FunctionEnd
104(Fn_R_D3F(vd3;):   35(fvec3) Function None 93
          103(p):     36(ptr) FunctionParameter
             105:             Label
             292:    177(ptr) AccessChain 108 176
             293:    7(fvec3) Load 292
             294:   35(fvec3) FConvert 293
                              Store 103(p) 294
             295:    177(ptr) AccessChain 108 176
             296:    7(fvec3) Load 295
             297:   35(fvec3) FConvert 296
                              ReturnValue 297
                              FunctionEnd
