diff options
author | Richard Guenther <rguenther@suse.de> | 2006-03-30 12:11:16 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2006-03-30 12:11:16 +0000 |
commit | 7d3a3b01c3f43635a798a0e03765aef9fdf17e9e (patch) | |
tree | 1f3a7815ffe634bd001cb95eeac2b85a5f17f19b /gcc | |
parent | 5cd88d6857dffe4f10c834c773c300881ec20e32 (diff) | |
download | gcc-7d3a3b01c3f43635a798a0e03765aef9fdf17e9e.zip gcc-7d3a3b01c3f43635a798a0e03765aef9fdf17e9e.tar.gz gcc-7d3a3b01c3f43635a798a0e03765aef9fdf17e9e.tar.bz2 |
Makefile.am: Do not build dbl-64 variants.
2006-03-30 Richard Guenther <rguenther@suse.de>
* i386/Makefile.am: Do not build dbl-64 variants.
* i386/Makefile.in: Regenerate.
* dbl-64: Remove.
* config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
variants with double arguments.
* gcc.target/i386/sselibm-1.c: Adjust for libgcc-math partial
removal.
* gcc.target/i386/sselibm-2.c: Likewise.
* gcc.target/i386/sselibm-3.c: Likewise.
* gcc.target/i386/sselibm-4.c: Likewise.
* gcc.target/i386/sselibm-5.c: Likewise.
From-SVN: r112530
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 20 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/sselibm-1.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/sselibm-2.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/sselibm-3.c | 14 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/sselibm-4.c | 19 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/sselibm-5.c | 27 |
8 files changed, 32 insertions, 78 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 125f01a2..f7679d1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-03-30 Richard Guenther <rguenther@suse.de> + + * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic + variants with double arguments. + 2006-03-29 David Edelsohn <edelsohn@gnu.org> * genpreds.c (write_tm_constrs_h): Delete variable p. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 5ba4a52..da4b135 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -15349,7 +15349,7 @@ ix86_init_mmx_sse_builtins (void) static void ix86_init_sse_abi_builtins (void) { - tree dbl, flt, dbl2, flt2; + tree flt, flt2; /* Bail out in case the template definitions are not available. */ if (! built_in_decls [BUILT_IN_SIN] @@ -15359,18 +15359,10 @@ ix86_init_sse_abi_builtins (void) return; /* Build the function types as variants of the existing ones. */ - dbl = build_variant_type_copy (TREE_TYPE (built_in_decls [BUILT_IN_SIN])); - TYPE_ATTRIBUTES (dbl) - = tree_cons (get_identifier ("sseregparm"), - NULL_TREE, TYPE_ATTRIBUTES (dbl)); flt = build_variant_type_copy (TREE_TYPE (built_in_decls [BUILT_IN_SINF])); TYPE_ATTRIBUTES (flt) = tree_cons (get_identifier ("sseregparm"), NULL_TREE, TYPE_ATTRIBUTES (flt)); - dbl2 = build_variant_type_copy (TREE_TYPE (built_in_decls [BUILT_IN_ATAN2])); - TYPE_ATTRIBUTES (dbl2) - = tree_cons (get_identifier ("sseregparm"), - NULL_TREE, TYPE_ATTRIBUTES (dbl2)); flt2 = build_variant_type_copy (TREE_TYPE (built_in_decls [BUILT_IN_ATAN2F])); TYPE_ATTRIBUTES (flt2) = tree_cons (get_identifier ("sseregparm"), @@ -15383,25 +15375,15 @@ ix86_init_sse_abi_builtins (void) BUILT_IN_NORMAL, \ "__libm_sse2_" # name, NULL_TREE) - def_builtin (ACOS, acos, dbl); def_builtin (ACOSF, acosf, flt); - def_builtin (ASIN, asin, dbl); def_builtin (ASINF, asinf, flt); - def_builtin (ATAN, atan, dbl); def_builtin (ATANF, atanf, flt); - def_builtin (ATAN2, atan2, dbl2); def_builtin (ATAN2F, atan2f, flt2); - def_builtin (COS, cos, dbl); def_builtin (COSF, cosf, flt); - def_builtin (EXP, exp, dbl); def_builtin (EXPF, expf, flt); - def_builtin (LOG10, log10, dbl); def_builtin (LOG10F, log10f, flt); - def_builtin (LOG, log, dbl); def_builtin (LOGF, logf, flt); - def_builtin (SIN, sin, dbl); def_builtin (SINF, sinf, flt); - def_builtin (TAN, tan, dbl); def_builtin (TANF, tanf, flt); #undef def_builtin diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 91e2220..53f2522 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2006-03-30 Richard Guenther <rguenther@suse.de> + + * gcc.target/i386/sselibm-1.c: Adjust for libgcc-math partial + removal. + * gcc.target/i386/sselibm-2.c: Likewise. + * gcc.target/i386/sselibm-3.c: Likewise. + * gcc.target/i386/sselibm-4.c: Likewise. + * gcc.target/i386/sselibm-5.c: Likewise. + 2006-03-28 Roger Sayle <roger@eyesopen.com> * gcc.dg/fold-andxor-1.c: New test case. diff --git a/gcc/testsuite/gcc.target/i386/sselibm-1.c b/gcc/testsuite/gcc.target/i386/sselibm-1.c index 1e9f0c6..82f553b 100644 --- a/gcc/testsuite/gcc.target/i386/sselibm-1.c +++ b/gcc/testsuite/gcc.target/i386/sselibm-1.c @@ -2,11 +2,11 @@ /* { dg-options "-msse2 -mfpmath=sse" } */ /* { dg-require-effective-target ilp32 } */ -double sin(double); +float sinf(float); -double foo(double x) +float foo(float x) { - return sin(x); + return sinf(x); } -/* { dg-final { scan-assembler-not "__libm_sse2_sin" } } */ +/* { dg-final { scan-assembler-not "__libm_sse2_sinf" } } */ diff --git a/gcc/testsuite/gcc.target/i386/sselibm-2.c b/gcc/testsuite/gcc.target/i386/sselibm-2.c index 8450262..9c479b6 100644 --- a/gcc/testsuite/gcc.target/i386/sselibm-2.c +++ b/gcc/testsuite/gcc.target/i386/sselibm-2.c @@ -2,11 +2,11 @@ /* { dg-options "-msse2 -mfpmath=sse -msselibm" } */ /* { dg-require-effective-target ilp32 } */ -double sin(double); +float sinf(float); -double foo(double x) +float foo(float x) { - return sin(x); + return sinf(x); } -/* { dg-final { scan-assembler "__libm_sse2_sin" } } */ +/* { dg-final { scan-assembler "__libm_sse2_sinf" } } */ diff --git a/gcc/testsuite/gcc.target/i386/sselibm-3.c b/gcc/testsuite/gcc.target/i386/sselibm-3.c index 76c1134..eaa8d8f 100644 --- a/gcc/testsuite/gcc.target/i386/sselibm-3.c +++ b/gcc/testsuite/gcc.target/i386/sselibm-3.c @@ -2,18 +2,18 @@ /* { dg-options "-O1 -msse2 -mfpmath=sse -msselibm" } */ /* { dg-require-effective-target ilp32 } */ -double sin(double); -double (*mysin)(double) = sin; +float sinf(float); +float (*mysin)(float) = sinf; -double f1(double x) +float f1(float x) { - return sin(x); + return sinf(x); } -double f2(double x) +float f2(float x) { - /* Verify we do not expand the following call to __libm_sse2_sin. */ + /* Verify we do not expand the following call to __libm_sse2_sinf. */ return (*mysin)(x); } -/* { dg-final { scan-assembler-times "__libm_sse2_sin" 1 } } */ +/* { dg-final { scan-assembler-times "__libm_sse2_sinf" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/sselibm-4.c b/gcc/testsuite/gcc.target/i386/sselibm-4.c index ad20bce..152672a 100644 --- a/gcc/testsuite/gcc.target/i386/sselibm-4.c +++ b/gcc/testsuite/gcc.target/i386/sselibm-4.c @@ -2,17 +2,6 @@ /* { dg-options "-O1 -msse2 -mfpmath=sse -msselibm" } */ /* { dg-require-effective-target ilp32 } */ -extern double acos(double); -extern double asin(double); -extern double atan(double); -extern double atan2(double, double); -extern double cos(double); -extern double exp(double); -extern double log10(double); -extern double log(double); -extern double sin(double); -extern double tan(double); - extern float acosf(float); extern float asinf(float); extern float atanf(float); @@ -30,10 +19,4 @@ float foof(float x) + log10f(x) + logf(x) + sinf(x) + tanf(x); } -double foo(double x) -{ - return acos(x) + asin(x) + atan(x) + atan2(x, x) + cos(x) + exp(x) - + log10(x) + log(x) + sin(x) + tan(x); -} - -/* { dg-final { scan-assembler-times "__libm_sse2" 20 } } */ +/* { dg-final { scan-assembler-times "__libm_sse2" 10 } } */ diff --git a/gcc/testsuite/gcc.target/i386/sselibm-5.c b/gcc/testsuite/gcc.target/i386/sselibm-5.c index c749319..b7e4690 100644 --- a/gcc/testsuite/gcc.target/i386/sselibm-5.c +++ b/gcc/testsuite/gcc.target/i386/sselibm-5.c @@ -2,17 +2,6 @@ /* { dg-options "-O1 -msse2 -mfpmath=sse -msselibm" } */ /* { dg-require-effective-target ilp32 } */ -extern double acos(double); -extern double asin(double); -extern double atan(double); -extern double atan2(double, double); -extern double cos(double); -extern double exp(double); -extern double log10(double); -extern double log(double); -extern double sin(double); -extern double tan(double); - extern float acosf(float); extern float asinf(float); extern float atanf(float); @@ -38,18 +27,4 @@ float foof(float x) + __builtin_sse2_tanf(x); } -double foo(double x) -{ - return __builtin_sse2_acos(x) - + __builtin_sse2_asin(x) - + __builtin_sse2_atan(x) - + __builtin_sse2_atan2(x, x) - + __builtin_sse2_cos(x) - + __builtin_sse2_exp(x) - + __builtin_sse2_log10(x) - + __builtin_sse2_log(x) - + __builtin_sse2_sin(x) - + __builtin_sse2_tan(x); -} - -/* { dg-final { scan-assembler-times "__libm_sse2" 20 } } */ +/* { dg-final { scan-assembler-times "__libm_sse2" 10 } } */ |