aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2016-06-14 01:11:27 +0200
committerUros Bizjak <uros@gcc.gnu.org>2016-06-14 01:11:27 +0200
commit7d6aa9a605a0f8cb000fe6d9412b00fa76af33f3 (patch)
treeb0f1f69d6423cadc10006215a17ee7f6d81b519c /gcc
parent385c7747b78f0e178666fb7f376d21389a3f0bb8 (diff)
downloadgcc-7d6aa9a605a0f8cb000fe6d9412b00fa76af33f3.zip
gcc-7d6aa9a605a0f8cb000fe6d9412b00fa76af33f3.tar.gz
gcc-7d6aa9a605a0f8cb000fe6d9412b00fa76af33f3.tar.bz2
* Partially revert my previous commit.
From-SVN: r237418
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/i386/i386-builtin-types.def1
-rw-r--r--gcc/config/i386/i386.c41
-rw-r--r--gcc/doc/extend.texi1
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/gcc.target/i386/float128-3.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/quad-sse4.c11
7 files changed, 10 insertions, 80 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5e62a97..5c3375e5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,15 +1,7 @@
2016-06-13 Uros Bizjak <ubizjak@gmail.com>
- * config/i386/i386-builtin-types.def (INT_FTYPE_FLOAT128):
- New function type.
- * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_SIGNBITQ]: New.
- (ix86_init_builtins): Add __builtin_signbitq function.
- (ix86_expand_args_builtin): Handle INT_FTYPE_FLOAT128.
- (ix86_expand_builtin): Handle IX86_BUILTIN_SIGNBITQ.
* config/i386/i386.md (signbittf2): New expander.
* config/i386/sse.md (ptesttf2): New insn pattern.
- * doc/extend.texi (x86 Built-in Functions): Document
- __builtin_signbitq.
2016-06-13 David Malcolm <dmalcolm@redhat.com>
diff --git a/gcc/config/i386/i386-builtin-types.def b/gcc/config/i386/i386-builtin-types.def
index dba9ecb..7eb6fc9 100644
--- a/gcc/config/i386/i386-builtin-types.def
+++ b/gcc/config/i386/i386-builtin-types.def
@@ -202,7 +202,6 @@ DEF_FUNCTION_TYPE (INT, V8QI)
DEF_FUNCTION_TYPE (INT, V8SF)
DEF_FUNCTION_TYPE (INT, V32QI)
DEF_FUNCTION_TYPE (INT, PCCHAR)
-DEF_FUNCTION_TYPE (INT, FLOAT128)
DEF_FUNCTION_TYPE (INT64, INT64)
DEF_FUNCTION_TYPE (INT64, V2DF)
DEF_FUNCTION_TYPE (INT64, V4SF)
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 4e52d93..c5e5e12 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -32722,7 +32722,6 @@ enum ix86_builtins
IX86_BUILTIN_NANSQ,
IX86_BUILTIN_FABSQ,
IX86_BUILTIN_COPYSIGNQ,
- IX86_BUILTIN_SIGNBITQ,
/* Vectorizer support builtins. */
IX86_BUILTIN_CPYSGNPS,
@@ -33984,8 +33983,6 @@ static const struct builtin_description bdesc_args[] =
{ OPTION_MASK_ISA_SSE4_1, CODE_FOR_sse4_1_mulv2siv2di3, "__builtin_ia32_pmuldq128", IX86_BUILTIN_PMULDQ128, UNKNOWN, (int) V2DI_FTYPE_V4SI_V4SI },
{ OPTION_MASK_ISA_SSE4_1, CODE_FOR_mulv4si3, "__builtin_ia32_pmulld128", IX86_BUILTIN_PMULLD128, UNKNOWN, (int) V4SI_FTYPE_V4SI_V4SI },
- { OPTION_MASK_ISA_SSE4_1, CODE_FOR_signbittf2, 0, IX86_BUILTIN_SIGNBITQ, UNKNOWN, (int) INT_FTYPE_FLOAT128 },
-
/* SSE4.1 */
{ OPTION_MASK_ISA_ROUND, CODE_FOR_sse4_1_roundpd, "__builtin_ia32_roundpd", IX86_BUILTIN_ROUNDPD, UNKNOWN, (int) V2DF_FTYPE_V2DF_INT },
{ OPTION_MASK_ISA_ROUND, CODE_FOR_sse4_1_roundps, "__builtin_ia32_roundps", IX86_BUILTIN_ROUNDPS, UNKNOWN, (int) V4SF_FTYPE_V4SF_INT },
@@ -38302,13 +38299,6 @@ ix86_init_builtins (void)
TREE_READONLY (decl) = 1;
ix86_builtins[(int) IX86_BUILTIN_COPYSIGNQ] = decl;
- ftype = ix86_get_builtin_func_type (INT_FTYPE_FLOAT128);
- decl = add_builtin_function ("__builtin_signbitq", ftype,
- IX86_BUILTIN_SIGNBITQ, BUILT_IN_MD,
- "__signbittf2", NULL_TREE);
- TREE_READONLY (decl) = 1;
- ix86_builtins[(int) IX86_BUILTIN_SIGNBITQ] = decl;
-
ix86_init_tm_builtins ();
ix86_init_mmx_sse_builtins ();
ix86_init_mpx_builtins ();
@@ -39138,7 +39128,6 @@ ix86_expand_args_builtin (const struct builtin_description *d,
case INT_FTYPE_V4SF:
case INT_FTYPE_V2DF:
case INT_FTYPE_V32QI:
- case INT_FTYPE_FLOAT128:
case V16QI_FTYPE_V16QI:
case V8SI_FTYPE_V8SF:
case V8SI_FTYPE_V4SI:
@@ -42649,26 +42638,16 @@ rdseed_step:
i < ARRAY_SIZE (bdesc_args);
i++, d++)
if (d->code == fcode)
- {
- switch (fcode)
- {
- case IX86_BUILTIN_FABSQ:
- case IX86_BUILTIN_COPYSIGNQ:
- if (!TARGET_SSE)
- /* Emit a normal call if SSE isn't available. */
- return expand_call (exp, target, ignore);
- break;
- case IX86_BUILTIN_SIGNBITQ:
- if (!TARGET_SSE4_1)
- /* Emit a normal call if SSE4_1 isn't available. */
- return expand_call (exp, target, ignore);
- break;
- default:
- break;
- }
-
- return ix86_expand_args_builtin (d, exp, target);
- }
+ switch (fcode)
+ {
+ case IX86_BUILTIN_FABSQ:
+ case IX86_BUILTIN_COPYSIGNQ:
+ if (!TARGET_SSE)
+ /* Emit a normal call if SSE isn't available. */
+ return expand_call (exp, target, ignore);
+ default:
+ return ix86_expand_args_builtin (d, exp, target);
+ }
for (i = 0, d = bdesc_comi; i < ARRAY_SIZE (bdesc_comi); i++, d++)
if (d->code == fcode)
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 859f684..06d52b8 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -18480,7 +18480,6 @@ of them implement the function that is part of the name.
@smallexample
__float128 __builtin_fabsq (__float128)
__float128 __builtin_copysignq (__float128, __float128)
-int __builtin_signbitq (__float128)
@end smallexample
The following built-in functions are always available.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d77a5ea..45862f3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,10 +1,3 @@
-2016-06-13 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/float128-3.c: New test.
- * gcc.target/i386/quad-sse4.c: Ditto.
- * gcc.target/i386/quad-sse.c: Use -msse instead of -msse2.
- Update scan strings.
-
2016-06-13 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/71498
diff --git a/gcc/testsuite/gcc.target/i386/float128-3.c b/gcc/testsuite/gcc.target/i386/float128-3.c
deleted file mode 100644
index 99bcd49..0000000
--- a/gcc/testsuite/gcc.target/i386/float128-3.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* { dg-do run } */
-/* { dg-options "-O2 -msse4.1" } */
-/* { dg-require-effective-target sse4 } */
-
-#include "sse4_1-check.h"
-
-extern void abort (void);
-
-static void
-sse4_1_test (void)
-{
- static volatile __float128 a;
-
- a = -1.2q;
- if (!__builtin_signbitq (a))
- abort ();
-
- a = 1.2q;
- if (__builtin_signbitq (a))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/quad-sse4.c b/gcc/testsuite/gcc.target/i386/quad-sse4.c
deleted file mode 100644
index a08ea27..0000000
--- a/gcc/testsuite/gcc.target/i386/quad-sse4.c
+++ /dev/null
@@ -1,11 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -msse4.1" } */
-
-__float128 x;
-
-int __test_1(void)
-{
- return __builtin_signbitq (x);
-}
-
-/* { dg-final { scan-assembler-not "signbit" } } */