1 #pragma version(1)
2 #pragma rs java_package_name(foo)
3 
4 int i;
5 int2 i2;
6 int3 i3;
7 int4 i4;
8 
9 float f;
10 float2 f2;
11 float3 f3;
12 float4 f4;
13 
14 #define TEST_FUNC_1(fnc)    \
15     f = fnc(f);             \
16     f2 = fnc(f2);           \
17     f3 = fnc(f3);           \
18     f4 = fnc(f4);
19 
20 #define TEST_FUNC_1_RI(fnc) \
21     i = fnc(f);             \
22     i2 = fnc(f2);           \
23     i3 = fnc(f3);           \
24     i4 = fnc(f4);
25 
26 #define TEST_FUNC_2(fnc)    \
27     f = fnc(f, f);          \
28     f2 = fnc(f2, f2);       \
29     f3 = fnc(f3, f3);       \
30     f4 = fnc(f4, f4);
31 
32 #define TEST_FUNC_2P(fnc)   \
33     f = fnc(f, &f);         \
34     f2 = fnc(f2, &f2);      \
35     f3 = fnc(f3, &f3);      \
36     f4 = fnc(f4, &f4);
37 
38 #define TEST_FUNC_2PI(fnc)  \
39     f = fnc(f, &i);         \
40     f2 = fnc(f2, &i2);      \
41     f3 = fnc(f3, &i3);      \
42     f4 = fnc(f4, &i4);
43 
44 #define TEST_FUNC_2F(fnc)   \
45     f = fnc(f, f);          \
46     f2 = fnc(f2, f2);       \
47     f3 = fnc(f3, f3);       \
48     f4 = fnc(f4, f4);
49 
50 #define TEST_FUNC_2I(fnc)   \
51     f = fnc(f, i);          \
52     f2 = fnc(f2, i);        \
53     f3 = fnc(f3, i);        \
54     f4 = fnc(f4, i);
55 
56 #define TEST_FUNC_2IN(fnc)  \
57     f = fnc(f, i);          \
58     f2 = fnc(f2, i2);       \
59     f3 = fnc(f3, i3);       \
60     f4 = fnc(f4, i4);
61 
62 #define TEST_FUNC_3(fnc)    \
63     f = fnc(f, f, f);       \
64     f2 = fnc(f2, f2, f2);   \
65     f3 = fnc(f3, f3, f3);   \
66     f4 = fnc(f4, f4, f4);
67 
68 #define TEST_FUNC_3PI(fnc)  \
69     f = fnc(f, f, &i);      \
70     f2 = fnc(f2, f2, &i2);  \
71     f3 = fnc(f3, f3, &i3);  \
72     f4 = fnc(f4, f4, &i4);
73 
74 void compile_all_math_fp_ops() {
75     TEST_FUNC_1(acos);
76     TEST_FUNC_1(acosh);
77     TEST_FUNC_1(acospi);
78     TEST_FUNC_1(asin);
79     TEST_FUNC_1(asinh);
80     TEST_FUNC_1(asinpi);
81     TEST_FUNC_1(atan);
82     TEST_FUNC_2(atan2);
83     TEST_FUNC_1(atanh);
84     TEST_FUNC_1(atanpi);
85     TEST_FUNC_2(atan2pi);
86     TEST_FUNC_1(cbrt);
87     TEST_FUNC_1(ceil);
88     TEST_FUNC_2(copysign);
89     TEST_FUNC_1(cos);
90     TEST_FUNC_1(cosh);
91     TEST_FUNC_1(cospi);
92     TEST_FUNC_1(erfc);
93     TEST_FUNC_1(erf);
94     TEST_FUNC_1(exp);
95     TEST_FUNC_1(exp2);
96     TEST_FUNC_1(exp10);
97     TEST_FUNC_1(expm1);
98     TEST_FUNC_1(fabs);
99     TEST_FUNC_2(fdim);
100     TEST_FUNC_1(floor);
101     TEST_FUNC_3(fma);
102     TEST_FUNC_2(fmax);
103     TEST_FUNC_2F(fmax);
104     TEST_FUNC_2(fmin);
105     TEST_FUNC_2F(fmin);
106     TEST_FUNC_2(fmod);
107     TEST_FUNC_2P(fract);
108     TEST_FUNC_2PI(frexp);
109     TEST_FUNC_2(hypot);
110     TEST_FUNC_1_RI(ilogb);
111     TEST_FUNC_2IN(ldexp);
112     TEST_FUNC_2I(ldexp);
113     TEST_FUNC_1(lgamma);
114     TEST_FUNC_2PI(lgamma);
115     TEST_FUNC_1(log);
116     TEST_FUNC_1(log2);
117     TEST_FUNC_1(log10);
118     TEST_FUNC_1(log1p);
119     TEST_FUNC_1(logb);
120     TEST_FUNC_3(mad);
121     TEST_FUNC_2P(modf);
122     //TEST_FUNC_1(nan);
123     TEST_FUNC_2(nextafter);
124     TEST_FUNC_2(pow);
125     TEST_FUNC_2I(pown);
126     TEST_FUNC_2(powr);
127     TEST_FUNC_2(remainder);
128     TEST_FUNC_3PI(remquo);
129     TEST_FUNC_1(rint);
130     TEST_FUNC_2I(rootn);
131     TEST_FUNC_1(round);
132     TEST_FUNC_1(rsqrt);
133     TEST_FUNC_1(sin);
134     TEST_FUNC_2P(sincos);
135     TEST_FUNC_1(sinh);
136     TEST_FUNC_1(sinpi);
137     TEST_FUNC_1(sqrt);
138     TEST_FUNC_1(tan);
139     TEST_FUNC_1(tanh);
140     TEST_FUNC_1(tanpi);
141     TEST_FUNC_1(tgamma);
142     TEST_FUNC_1(trunc);
143 
144     return;
145 }
146 
147