diff options
author | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
---|---|---|
committer | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
commit | 554fd8c5195424bdbcabf5de30fdc183aba391bd (patch) | |
tree | 976dc5ab7fddf506dadce60ae936f43f58787092 /gcc/testsuite/gcc.target/i386/math-torture | |
download | cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2 cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.xz |
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig;
imported gcc-4.6.4 source tree from verified upstream tarball.
downloading a git-generated archive based on the 'upstream' tag
should provide you with a source tree that is binary identical
to the one extracted from the above tarball.
if you have obtained the source via the command 'git clone',
however, do note that line-endings of files in your working
directory might differ from line-endings of the respective
files in the upstream repository.
Diffstat (limited to 'gcc/testsuite/gcc.target/i386/math-torture')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/math-torture/ceil.c | 15 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/math-torture/floor.c | 15 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/math-torture/lceil.c | 26 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/math-torture/lfloor.c | 26 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/math-torture/lrint.c | 26 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/math-torture/lround.c | 26 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp | 70 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/math-torture/nearbyint.c | 15 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/math-torture/rint.c | 15 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/math-torture/round.c | 15 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/math-torture/trunc.c | 14 |
11 files changed, 263 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/math-torture/ceil.c b/gcc/testsuite/gcc.target/i386/math-torture/ceil.c new file mode 100644 index 000000000..dfccd7af4 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/math-torture/ceil.c @@ -0,0 +1,15 @@ +/* { dg-do assemble } */ + +float testlf (float x) +{ + return __builtin_ceilf (x); +} +double testl (double x) +{ + return __builtin_ceil (x); +} +long double testll (long double x) +{ + return __builtin_ceill (x); +} + diff --git a/gcc/testsuite/gcc.target/i386/math-torture/floor.c b/gcc/testsuite/gcc.target/i386/math-torture/floor.c new file mode 100644 index 000000000..0c3aa9156 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/math-torture/floor.c @@ -0,0 +1,15 @@ +/* { dg-do assemble } */ + +float testlf (float x) +{ + return __builtin_floorf (x); +} +double testl (double x) +{ + return __builtin_floor (x); +} +long double testll (long double x) +{ + return __builtin_floorl (x); +} + diff --git a/gcc/testsuite/gcc.target/i386/math-torture/lceil.c b/gcc/testsuite/gcc.target/i386/math-torture/lceil.c new file mode 100644 index 000000000..d09847904 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/math-torture/lceil.c @@ -0,0 +1,26 @@ +/* { dg-do assemble } */ + +long testlf (float x) +{ + return __builtin_lceilf (x); +} +long testl (double x) +{ + return __builtin_lceil (x); +} +long testll (long double x) +{ + return __builtin_lceill (x); +} +long long testllf (float x) +{ + return __builtin_llceilf (x); +} +long long testll_ (double x) +{ + return __builtin_llceil (x); +} +long long testlll (long double x) +{ + return __builtin_llceill (x); +} diff --git a/gcc/testsuite/gcc.target/i386/math-torture/lfloor.c b/gcc/testsuite/gcc.target/i386/math-torture/lfloor.c new file mode 100644 index 000000000..2c2e96f2e --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/math-torture/lfloor.c @@ -0,0 +1,26 @@ +/* { dg-do assemble } */ + +long testlf (float x) +{ + return __builtin_lfloorf (x); +} +long testl (double x) +{ + return __builtin_lfloor (x); +} +long testll (long double x) +{ + return __builtin_lfloorl (x); +} +long long testllf (float x) +{ + return __builtin_llfloorf (x); +} +long long testll_ (double x) +{ + return __builtin_llfloor (x); +} +long long testlll (long double x) +{ + return __builtin_llfloorl (x); +} diff --git a/gcc/testsuite/gcc.target/i386/math-torture/lrint.c b/gcc/testsuite/gcc.target/i386/math-torture/lrint.c new file mode 100644 index 000000000..73b75b7ad --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/math-torture/lrint.c @@ -0,0 +1,26 @@ +/* { dg-do assemble } */ + +long testlf (float x) +{ + return __builtin_lrintf (x); +} +long testl (double x) +{ + return __builtin_lrint (x); +} +long testll (long double x) +{ + return __builtin_lrintl (x); +} +long long testllf (float x) +{ + return __builtin_llrintf (x); +} +long long testll_ (double x) +{ + return __builtin_llrint (x); +} +long long testlll (long double x) +{ + return __builtin_llrintl (x); +} diff --git a/gcc/testsuite/gcc.target/i386/math-torture/lround.c b/gcc/testsuite/gcc.target/i386/math-torture/lround.c new file mode 100644 index 000000000..756356d62 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/math-torture/lround.c @@ -0,0 +1,26 @@ +/* { dg-do assemble } */ + +long testlf (float x) +{ + return __builtin_lroundf (x); +} +long testl (double x) +{ + return __builtin_lround (x); +} +long testll (long double x) +{ + return __builtin_lroundl (x); +} +long long testllf (float x) +{ + return __builtin_llroundf (x); +} +long long testll_ (double x) +{ + return __builtin_llround (x); +} +long long testlll (long double x) +{ + return __builtin_llroundl (x); +} diff --git a/gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp b/gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp new file mode 100644 index 000000000..2b1d63de1 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp @@ -0,0 +1,70 @@ +# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. +# +# This file is part of GCC. +# +# GCC is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GCC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. + +# This harness is for tests that should be run at all optimisation levels. + +load_lib target-supports.exp + +# Exit immediately if this isn't a x86 target. +if { ![istarget i?86*-*-*] && ![istarget x86_64-*-*] } then { + return +} + +set MATH_TORTURE_OPTIONS [list \ + { -O0 } \ + { -O0 -mfpmath=387 } \ + { -O0 -mfpmath=387 -ffast-math } \ + { -O2 } \ + { -O2 -mfpmath=387 } \ + { -O2 -mfpmath=387 -ffast-math } \ +] + +if { [check_effective_target_sse] } { + lappend MATH_TORTURE_OPTIONS \ + { -O0 -msse -mno-sse2 -mfpmath=sse } \ + { -O0 -msse -mno-sse2 -mfpmath=sse,387 } \ + { -O0 -msse -mno-sse2 -mfpmath=sse -ffast-math } \ + { -O0 -msse -mno-sse2 -mfpmath=sse,387 -ffast-math } \ + { -O2 -msse -mno-sse2 -mfpmath=sse } \ + { -O2 -msse -mno-sse2 -mfpmath=sse,387 } \ + { -O2 -msse -mno-sse2 -mfpmath=sse -ffast-math } \ + { -O2 -msse -mno-sse2 -mfpmath=sse,387 -ffast-math } \ +} + +if { [check_effective_target_sse2] } { + lappend MATH_TORTURE_OPTIONS \ + { -O0 -msse -msse2 -mfpmath=sse } \ + { -O0 -msse -msse2 -mfpmath=sse,387 } \ + { -O0 -msse -msse2 -mfpmath=sse -ffast-math } \ + { -O0 -msse -msse2 -mfpmath=sse,387 -ffast-math } \ + { -O2 -msse -msse2 -mfpmath=sse } \ + { -O2 -msse -msse2 -mfpmath=sse,387 } \ + { -O2 -msse -msse2 -mfpmath=sse -ffast-math } \ + { -O2 -msse -msse2 -mfpmath=sse,387 -ffast-math } \ +} + +load_lib gcc-dg.exp +load_lib torture-options.exp + +torture-init +set-torture-options $MATH_TORTURE_OPTIONS {{}} $LTO_TORTURE_OPTIONS + +dg-init +gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.c]] "" +torture-finish +dg-finish diff --git a/gcc/testsuite/gcc.target/i386/math-torture/nearbyint.c b/gcc/testsuite/gcc.target/i386/math-torture/nearbyint.c new file mode 100644 index 000000000..dd646f012 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/math-torture/nearbyint.c @@ -0,0 +1,15 @@ +/* { dg-do assemble } */ + +float testlf (float x) +{ + return __builtin_nearbyintf (x); +} +double testl (double x) +{ + return __builtin_nearbyint (x); +} +long double testll (long double x) +{ + return __builtin_nearbyintl (x); +} + diff --git a/gcc/testsuite/gcc.target/i386/math-torture/rint.c b/gcc/testsuite/gcc.target/i386/math-torture/rint.c new file mode 100644 index 000000000..f9dfff7ca --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/math-torture/rint.c @@ -0,0 +1,15 @@ +/* { dg-do assemble } */ + +float testlf (float x) +{ + return __builtin_rintf (x); +} +double testl (double x) +{ + return __builtin_rint (x); +} +long double testll (long double x) +{ + return __builtin_rintl (x); +} + diff --git a/gcc/testsuite/gcc.target/i386/math-torture/round.c b/gcc/testsuite/gcc.target/i386/math-torture/round.c new file mode 100644 index 000000000..fddac7abb --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/math-torture/round.c @@ -0,0 +1,15 @@ +/* { dg-do assemble } */ + +float testlf (float x) +{ + return __builtin_roundf (x); +} +double testl (double x) +{ + return __builtin_round (x); +} +long double testll (long double x) +{ + return __builtin_roundl (x); +} + diff --git a/gcc/testsuite/gcc.target/i386/math-torture/trunc.c b/gcc/testsuite/gcc.target/i386/math-torture/trunc.c new file mode 100644 index 000000000..a71e026c5 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/math-torture/trunc.c @@ -0,0 +1,14 @@ +/* { dg-do assemble } */ + +float testlf (float x) +{ + return __builtin_truncf (x); +} +double testl (double x) +{ + return __builtin_trunc (x); +} +long double testll (long double x) +{ + return __builtin_truncl (x); +} |