aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2006-03-30 12:11:16 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2006-03-30 12:11:16 +0000
commit7d3a3b01c3f43635a798a0e03765aef9fdf17e9e (patch)
tree1f3a7815ffe634bd001cb95eeac2b85a5f17f19b /gcc
parent5cd88d6857dffe4f10c834c773c300881ec20e32 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/config/i386/i386.c20
-rw-r--r--gcc/testsuite/ChangeLog9
-rw-r--r--gcc/testsuite/gcc.target/i386/sselibm-1.c8
-rw-r--r--gcc/testsuite/gcc.target/i386/sselibm-2.c8
-rw-r--r--gcc/testsuite/gcc.target/i386/sselibm-3.c14
-rw-r--r--gcc/testsuite/gcc.target/i386/sselibm-4.c19
-rw-r--r--gcc/testsuite/gcc.target/i386/sselibm-5.c27
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 } } */