mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-24 02:39:11 +08:00
sh4a-fprun.c: Add test_sinf and test_cosf noinline wrappers around sinf and cosf.
* gcc.target/sh/sh4a-fprun.c: Add test_sinf and test_cosf noinline wrappers around sinf and cosf. From-SVN: r193419
This commit is contained in:
parent
ed15a7eeaa
commit
358ac8ff1c
@ -1,3 +1,8 @@
|
||||
2012-11-11 Oleg Endo <olegendo@gcc.gnu.org>
|
||||
|
||||
* gcc.target/sh/sh4a-fprun.c: Add test_sinf and test_cosf noinline
|
||||
wrappers around sinf and cosf.
|
||||
|
||||
2012-11-11 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR middle-end/55247
|
||||
|
@ -11,25 +11,43 @@ float sqrt_arg = 4.0f, sqrt_res = 2.0f;
|
||||
float dg2rad_f;
|
||||
double dg2rad_d;
|
||||
|
||||
void check_f (float res, float expected) {
|
||||
float __attribute__ ((noinline))
|
||||
test_sinf (float x)
|
||||
{
|
||||
return sinf (x);
|
||||
}
|
||||
|
||||
float __attribute ((noinline))
|
||||
test_cosf (float x)
|
||||
{
|
||||
return cosf (x);
|
||||
}
|
||||
|
||||
void
|
||||
check_f (float res, float expected)
|
||||
{
|
||||
if (res >= expected - 0.001f && res <= expected + 0.001f)
|
||||
return;
|
||||
|
||||
abort ();
|
||||
}
|
||||
|
||||
void check_d (double res, double expected) {
|
||||
void
|
||||
check_d (double res, double expected)
|
||||
{
|
||||
if (res >= expected - 0.001 && res <= expected + 0.001)
|
||||
return;
|
||||
|
||||
abort ();
|
||||
}
|
||||
|
||||
int main() {
|
||||
int
|
||||
main()
|
||||
{
|
||||
check_f (sqrtf(sqrt_arg), sqrt_res);
|
||||
dg2rad_f = dg2rad_d = atan(1) / 45;
|
||||
check_f (sinf(90*dg2rad_f), 1);
|
||||
check_f (cosf(90*dg2rad_f), 0);
|
||||
check_f (test_sinf(90*dg2rad_f), 1);
|
||||
check_f (test_cosf(90*dg2rad_f), 0);
|
||||
check_d (sin(-90*dg2rad_d), -1);
|
||||
check_d (cos(180*dg2rad_d), -1);
|
||||
check_d (sin(-45*dg2rad_d) * cosf(135*dg2rad_f), 0.5);
|
||||
|
Loading…
Reference in New Issue
Block a user