]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix 42747, make -mvsx enable sqrt
authorMichael Meissner <meissner@linux.vnet.ibm.com>
Thu, 14 Jan 2010 22:52:02 +0000 (22:52 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Thu, 14 Jan 2010 22:52:02 +0000 (22:52 +0000)
From-SVN: r155923

gcc/ChangeLog
gcc/config/rs6000/rs6000.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/pr42747.c [new file with mode: 0644]

index ce96cca5aca5d8e705bb087c681a6f36a39c7de3..17c9a4b5128982868cb557b737bc1f81b5ef510c 100644 (file)
@@ -1,3 +1,10 @@
+2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/42747
+       * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
+       to allow generation of the xssqrtdp instruction on power7.
+       (sqrtdf2_fpr): Ditto.
+
 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/42674
index f30cb38d2464cb10f81de31e8e099c0ffaca2895..08475b65e545d7e8154a3ef7ffab39f5e4f3e8f5 100644 (file)
@@ -1,6 +1,6 @@
 ;; Machine description for IBM RISC System 6000 (POWER) for GNU C compiler
 ;; Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-;; 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+;; 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
 ;; Free Software Foundation, Inc.
 ;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
 
   [(set_attr "type" "dmul")
    (set_attr "fp_type" "fp_maddsub_d")])
 
-(define_insn "sqrtdf2"
+(define_expand "sqrtdf2"
+  [(set (match_operand:DF 0 "gpc_reg_operand" "")
+       (sqrt:DF (match_operand:DF 1 "gpc_reg_operand" "")))]
+  "(TARGET_PPC_GPOPT || TARGET_POWER2) && TARGET_HARD_FLOAT && TARGET_FPRS 
+   && TARGET_DOUBLE_FLOAT"
+  "")
+
+(define_insn "*sqrtdf2_fpr"
   [(set (match_operand:DF 0 "gpc_reg_operand" "=d")
        (sqrt:DF (match_operand:DF 1 "gpc_reg_operand" "d")))]
   "(TARGET_PPC_GPOPT || TARGET_POWER2) && TARGET_HARD_FLOAT && TARGET_FPRS 
index f4d13bedd86a16b5a25eb32e83c713287e49e647..f527fce46b6e25bbf219d3b3e60c85cf1597228e 100644 (file)
@@ -1,3 +1,7 @@
+2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * gcc.target/powerpc/pr42747.c: New file.
+
 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/42674
diff --git a/gcc/testsuite/gcc.target/powerpc/pr42747.c b/gcc/testsuite/gcc.target/powerpc/pr42747.c
new file mode 100644 (file)
index 0000000..9e7310e
--- /dev/null
@@ -0,0 +1,8 @@
+/* { dg-do compile { target { powerpc*-*-* } } } */
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
+/* { dg-require-effective-target powerpc_vsx_ok } */
+/* { dg-options "-O2 -mcpu=power7 -ffast-math" } */
+
+double foo (double x) { return __builtin_sqrt (x); }
+
+/* { dg-final { scan-assembler "xssqrtdp" } } */