glsl/builtins: Add missing mix(genType, genType, bvec) built-ins.
[mesa.git] / src / glsl / builtins / ir / outerProduct.ir
1 ((function outerProduct
2 (signature mat2
3 (parameters
4 (declare (in) vec2 u)
5 (declare (in) vec2 v))
6 ((declare () mat2 m)
7 (assign (xy) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))
8 (assign (xy) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))
9 (return (var_ref m))))
10
11 (signature mat2x3
12 (parameters
13 (declare (in) vec3 u)
14 (declare (in) vec2 v))
15 ((declare () mat2x3 m)
16 (assign (xyz) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))
17 (assign (xyz) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))
18 (return (var_ref m))))
19
20 (signature mat2x4
21 (parameters
22 (declare (in) vec4 u)
23 (declare (in) vec2 v))
24 ((declare () mat2x4 m)
25 (assign (xyzw) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))
26 (assign (xyzw) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))
27 (return (var_ref m))))
28
29 (signature mat3x2
30 (parameters
31 (declare (in) vec2 u)
32 (declare (in) vec3 v))
33 ((declare () mat3x2 m)
34 (assign (xy) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))
35 (assign (xy) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))
36 (assign (xy) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref u) (swiz z (var_ref v))))
37 (return (var_ref m))
38 ))
39
40 (signature mat3
41 (parameters
42 (declare (in) vec3 u)
43 (declare (in) vec3 v))
44 ((declare () mat3 m)
45 (assign (xyz) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))
46 (assign (xyz) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))
47 (assign (xyz) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref u) (swiz z (var_ref v))))
48 (return (var_ref m))))
49
50 (signature mat3x4
51 (parameters
52 (declare (in) vec4 u)
53 (declare (in) vec3 v))
54 ((declare () mat3x4 m)
55 (assign (xyzw) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))
56 (assign (xyzw) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))
57 (assign (xyzw) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref u) (swiz z (var_ref v))))
58 (return (var_ref m))))
59
60 (signature mat4x2
61 (parameters
62 (declare (in) vec2 u)
63 (declare (in) vec4 v))
64 ((declare () mat4x2 m)
65 (assign (xy) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))
66 (assign (xy) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))
67 (assign (xy) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref u) (swiz z (var_ref v))))
68 (assign (xy) (array_ref (var_ref m) (constant int (3))) (expression vec2 * (var_ref u) (swiz w (var_ref v))))
69 (return (var_ref m))))
70
71 (signature mat4x3
72 (parameters
73 (declare (in) vec3 u)
74 (declare (in) vec4 v))
75 ((declare () mat4x3 m)
76 (assign (xyz) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))
77 (assign (xyz) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))
78 (assign (xyz) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref u) (swiz z (var_ref v))))
79 (assign (xyz) (array_ref (var_ref m) (constant int (3))) (expression vec3 * (var_ref u) (swiz w (var_ref v))))
80 (return (var_ref m))))
81
82 (signature mat4
83 (parameters
84 (declare (in) vec4 u)
85 (declare (in) vec4 v))
86 ((declare () mat4 m)
87 (assign (xyzw) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))
88 (assign (xyzw) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))
89 (assign (xyzw) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref u) (swiz z (var_ref v))))
90 (assign (xyzw) (array_ref (var_ref m) (constant int (3))) (expression vec4 * (var_ref u) (swiz w (var_ref v))))
91 (return (var_ref m))))
92 ))