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