glsl/builtins: Add missing mix(genType, genType, bvec) built-ins.
[mesa.git] / src / glsl / builtins / ir / atan.ir
1 ((function atan
2 (signature float
3 (parameters
4 (declare (in) float y_over_x))
5 ((return (call asin ((expression float *
6 (var_ref y_over_x)
7 (expression float rsq
8 (expression float +
9 (expression float *
10 (var_ref y_over_x)
11 (var_ref y_over_x))
12 (constant float (1.0))))))))))
13
14 (signature vec2
15 (parameters
16 (declare (in) vec2 y_over_x))
17 ((return (call asin ((expression vec2 *
18 (var_ref y_over_x)
19 (expression vec2 rsq
20 (expression vec2 +
21 (expression vec2 *
22 (var_ref y_over_x)
23 (var_ref y_over_x))
24 (constant float (1.0))))))))))
25
26 (signature vec3
27 (parameters
28 (declare (in) vec3 y_over_x))
29 ((return (call asin ((expression vec3 *
30 (var_ref y_over_x)
31 (expression vec3 rsq
32 (expression vec3 +
33 (expression vec3 *
34 (var_ref y_over_x)
35 (var_ref y_over_x))
36 (constant float (1.0))))))))))
37
38 (signature vec4
39 (parameters
40 (declare (in) vec4 y_over_x))
41 ((return (call asin ((expression vec4 *
42 (var_ref y_over_x)
43 (expression vec4 rsq
44 (expression vec4 +
45 (expression vec4 *
46 (var_ref y_over_x)
47 (var_ref y_over_x))
48 (constant float (1.0))))))))))
49
50 (signature float
51 (parameters
52 (declare (in ) float y)
53 (declare (in ) float x)
54 )
55 (
56 (declare () float r)
57 (if (expression bool >
58 (expression float abs (var_ref x))
59 (expression float * (constant float (1.0e-8)) (expression float abs (var_ref y)))) (
60 (assign (x) (var_ref r) (call atan ((expression float / (var_ref y) (var_ref x)))))
61 (if (expression bool < (var_ref x) (constant float (0.000000)) ) (
62 (if (expression bool >= (var_ref y) (constant float (0.000000)) )
63 ((assign (x) (var_ref r) (expression float + (var_ref r) (constant float (3.141593)))))
64 ((assign (x) (var_ref r) (expression float - (var_ref r) (constant float (3.141593))))))
65 )
66 (
67 ))
68 )
69 (
70 (declare () float sgn)
71 (assign (x) (var_ref sgn) (expression float sign (var_ref y)))
72 (assign (x) (var_ref r) (expression float * (var_ref sgn) (constant float (1.5707965))))
73 ))
74
75 (return (var_ref r) )
76 ))
77
78
79
80 (signature vec2
81 (parameters
82 (declare (in) vec2 y)
83 (declare (in) vec2 x))
84 ((declare () vec2 r)
85 (assign (x) (var_ref r)
86 (call atan ((swiz x (var_ref y))
87 (swiz x (var_ref x)))))
88 (assign (y) (var_ref r)
89 (call atan ((swiz y (var_ref y))
90 (swiz y (var_ref x)))))
91 (return (var_ref r))))
92
93 (signature vec3
94 (parameters
95 (declare (in) vec3 y)
96 (declare (in) vec3 x))
97 ((declare () vec3 r)
98 (assign (x) (var_ref r)
99 (call atan ((swiz x (var_ref y))
100 (swiz x (var_ref x)))))
101 (assign (y) (var_ref r)
102 (call atan ((swiz y (var_ref y))
103 (swiz y (var_ref x)))))
104 (assign (z) (var_ref r)
105 (call atan ((swiz z (var_ref y))
106 (swiz z (var_ref x)))))
107 (return (var_ref r))))
108
109 (signature vec4
110 (parameters
111 (declare (in) vec4 y)
112 (declare (in) vec4 x))
113 ((declare () vec4 r)
114 (assign (x) (var_ref r)
115 (call atan ((swiz x (var_ref y))
116 (swiz x (var_ref x)))))
117 (assign (y) (var_ref r)
118 (call atan ((swiz y (var_ref y))
119 (swiz y (var_ref x)))))
120 (assign (z) (var_ref r)
121 (call atan ((swiz z (var_ref y))
122 (swiz z (var_ref x)))))
123 (assign (w) (var_ref r)
124 (call atan ((swiz w (var_ref y))
125 (swiz w (var_ref x)))))
126 (return (var_ref r)))))
127
128 ))