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:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     '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})


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:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     '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})

// 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
