* Partially revert my previous commit.
authorUros Bizjak <uros@gcc.gnu.org>
Mon, 13 Jun 2016 23:11:27 +0000 (01:11 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Mon, 13 Jun 2016 23:11:27 +0000 (01:11 +0200)
From-SVN: r237418

17 files changed:
gcc/ChangeLog
gcc/config/i386/i386-builtin-types.def
gcc/config/i386/i386.c
gcc/doc/extend.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/float128-3.c [deleted file]
gcc/testsuite/gcc.target/i386/quad-sse4.c [deleted file]
libgcc/ChangeLog
libgcc/config.host
libgcc/config/i386/32/t-softfp
libgcc/config/i386/32/tf-signs.c
libgcc/config/i386/64/t-softfp [deleted file]
libgcc/config/i386/64/tf-signs.c [deleted file]
libgcc/config/i386/libgcc-glibc.ver
libgcc/config/ia64/libgcc-glibc.ver
libgcc/config/ia64/t-softfp
libgcc/config/ia64/tf-signs.c

index 5e62a97dcff4cf930d82e6cba98718de80b0fbc2..5c3375e550e11fa482fd51af76533ef808756a87 100644 (file)
@@ -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>
 
index dba9ecb28e1f36ee169cd7abec73215b0338176a..7eb6fc96e66f8d50520a6847bd41641b0c97520d 100644 (file)
@@ -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)
index 4e52d93914157966935fbd33428d87a70e2c95ee..c5e5e1238a53674d9184d3c5c816ab418af34dda 100644 (file)
@@ -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)
index 859f6847fda06f56e8674909a52ed5820eac7e05..06d52b8ce0d21e6638e21acf27a6ef219bf1b7b2 100644 (file)
@@ -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.
index d77a5eabca8fd4029b4b177060e6be0e66b25703..45862f3851cec23018fd14a1a6eaa5dc9472399b 100644 (file)
@@ -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 (file)
index 99bcd49..0000000
+++ /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 (file)
index a08ea27..0000000
+++ /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" } } */
index 557a041f71a6db31f512b452086eb90e63c80064..19d60115bc81f66544f558f26b5f79f887f9263e 100644 (file)
@@ -1,15 +1,3 @@
-2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
-
-       * config.host (i[34567]86-*-* | x86_64-*-*): Always include
-       i386/${host_address}/t-softfp in tmake_file.
-       * config/i386/32/t-softfp: Update comment for __builtin_copysignq.
-       * config/i386/32/tf-signs.c: Add __signbittf2 fallback function.
-       * config/i386/64/t-softfp: New file.
-       * config/i386/64/tf-signs.c: Ditto.
-       * config/i386/libgcc-bsd.ver: Add __signbittf2.
-       * config/i386/libgcc-glibc.ver: Ditto.
-       * config/i386/libgcc-sol2.ver: Ditto.
-
 2016-06-05  Aaron Conole  <aconole@redhat.com>
            Nathan Sidwell  <nathan@acm.org>
 
index 0cd688ddd69087e4293a5a77022e07ed128a1b39..7899216af6c40b3ab11f0a37119da15d7752ef8a 100644 (file)
@@ -1361,7 +1361,9 @@ i[34567]86-*-darwin* | x86_64-*-darwin* | \
   i[34567]86-*-freebsd* | x86_64-*-freebsd* | \
   i[34567]86-*-openbsd* | x86_64-*-openbsd*)
        tmake_file="${tmake_file} t-softfp-tf"
-       tmake_file="${tmake_file} i386/${host_address}/t-softfp"
+       if test "${host_address}" = 32; then
+               tmake_file="${tmake_file} i386/${host_address}/t-softfp"
+       fi
        tmake_file="${tmake_file} i386/t-softfp t-softfp"
        ;;
 esac
index f27e7e64c220311c9bf217aaa574176f379fb1d0..a48a5b3b11615d3cb84211996e17fd8dcaa88b4c 100644 (file)
@@ -1,6 +1,5 @@
 # Omit TImode functions
 softfp_int_modes := si di
 
-# Provide fallbacks for __builtin_copysignq, __builtin_fabsq
-# and __builtin_signbitq.
+# Provide fallbacks for __builtin_copysignq and __builtin_fabsq.
 LIB2ADD += $(srcdir)/config/i386/32/tf-signs.c
index d74c86a72820750e4ba5f49bc68ebbf8d616bab8..1e30626715fe2409b6873aba1e7b2e84d488b68e 100644 (file)
@@ -37,7 +37,6 @@ union _FP_UNION_Q
 
 __float128 __copysigntf3 (__float128, __float128);
 __float128 __fabstf2 (__float128);
-int __signbittf2 (__float128);
 
 __float128
 __copysigntf3 (__float128 a, __float128 b)
@@ -61,13 +60,3 @@ __fabstf2 (__float128 a)
 
   return A.flt;
 }
-
-int
-__signbittf2 (__float128 a)
-{
-  union _FP_UNION_Q A;
-
-  A.flt = a;
-
-  return A.bits.sign;
-}
diff --git a/libgcc/config/i386/64/t-softfp b/libgcc/config/i386/64/t-softfp
deleted file mode 100644 (file)
index f159f74..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# Provide fallbacks for __builtin_signbitq
-LIB2ADD += $(srcdir)/config/i386/64/tf-signs.c
diff --git a/libgcc/config/i386/64/tf-signs.c b/libgcc/config/i386/64/tf-signs.c
deleted file mode 100644 (file)
index 29dfaef..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (C) 2016 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-union _FP_UNION_Q
-{
-   __float128 flt;
-   struct 
-   {
-      unsigned long long frac0 : 64;
-      unsigned long long frac1 : 48;
-      unsigned exp : 15;
-      unsigned sign : 1;
-   } bits __attribute__((packed));
-};
-
-int __signbittf3 (__float128);
-
-int
-__signbittf2 (__float128 a)
-{
-  union _FP_UNION_Q A;
-
-  A.flt = a;
-
-  return A.bits.sign;
-}
index 6f664dc3f56d3d5a417096bff62674a75d85fa2a..443f8d6647ae3962fbaba80400fe4bedd6fc124b 100644 (file)
@@ -152,10 +152,6 @@ GCC_4.8.0 {
   __cpu_model
   __cpu_indicator_init
 }
-
-GCC_7.0.0 {
-  __signbittf2
-}
 %else
 GCC_4.4.0 {
   __addtf3
@@ -197,8 +193,4 @@ GCC_4.8.0 {
   __cpu_model
   __cpu_indicator_init
 }
-
-GCC_7.0.0 {
-  __signbittf2
-}
 %endif
index 99efbf5a5f4937ef49009a27a718b6807ba9157a..730ccc298e289c9a65e95c606f970acc9087461a 100644 (file)
@@ -95,3 +95,7 @@ GCC_4.4.0 {
   __trunctfxf2
   __unordtf2
 }
+
+GCC_7.0.0 {
+  __signbittf2
+}
index 0ac35e72da776691b17285ae08772baf398cae6a..96a65e88533eca995ac9fc8b830f1be679ef2280 100644 (file)
@@ -1,4 +1,5 @@
-# Provide fallbacks for __builtin_copysignq and __builtin_fabsq.
+# Provide fallbacks for __builtin_copysignq, __builtin_fabsq
+# and __builtin_signbitq.
 LIB2ADD += $(srcdir)/config/ia64/tf-signs.c
 
 LIB2ADD += $(srcdir)/config/ia64/sfp-exceptions.c
index 3ff3f6ba24f3190875c671458280eb777571a11c..aacaed4895fb396b2fadc92db13450fe12397f91 100644 (file)
@@ -26,8 +26,8 @@ union _FP_UNION_Q
    __float128 flt;
    struct 
    {
-      unsigned long frac1 : 64;
-      unsigned long frac0 : 48;
+      unsigned long frac0 : 64;
+      unsigned long frac1 : 48;
       unsigned exp : 15;
       unsigned sign : 1;
    } bits __attribute__((packed));
@@ -35,6 +35,7 @@ union _FP_UNION_Q
 
 __float128 __copysigntf3 (__float128, __float128);
 __float128 __fabstf2 (__float128);
+int __signbittf2 (__float128);
 
 __float128
 __copysigntf3 (__float128 a, __float128 b)
@@ -58,3 +59,13 @@ __fabstf2 (__float128 a)
 
   return A.flt;
 }
+
+int
+__signbittf2 (__float128 a)
+{
+  union _FP_UNION_Q A;
+
+  A.flt = a;
+
+  return A.bits.sign;
+}