re PR target/64652 ([SH] ICE when using -mdiv=call-fp)
authorOleg Endo <olegendo@gcc.gnu.org>
Sun, 18 Jan 2015 18:12:53 +0000 (18:12 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Sun, 18 Jan 2015 18:12:53 +0000 (18:12 +0000)
gcc/
PR target/64652
* config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
reg appear first in the parallel.

gcc/testsuite/
PR target/64652
* gcc.target/sh/torture/pr64652.c: New.

From-SVN: r219824

gcc/ChangeLog
gcc/config/sh/sh.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sh/torture/pr64652.c [new file with mode: 0644]

index a858d1f154f0898c2f2cf3e2b6ab0e0c74a7f944..2e3dc27e2f1f3b978fdb9967c16d5646d5eaa0a4 100644 (file)
@@ -1,3 +1,9 @@
+2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/64652
+       * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
+       reg appear first in the parallel.
+
 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
 
        * ipa-reference.c (set_reference_optimization_summary,
index d9d5d0a810bcaec75d82b1f1567bea538b408a86..50f374c9bf818a6084018b2ddd8ceb70d9316db9 100644 (file)
    (clobber (reg:SI R4_REG))
    (clobber (reg:SI R5_REG))
    (clobber (reg:SI FPSCR_STAT_REG))
-   (use (reg:SI FPSCR_MODES_REG))
-   (use (match_operand:SI 1 "arith_reg_operand" "r"))]
+   (use (match_operand:SI 1 "arith_reg_operand" "r"))
+   (use (reg:SI FPSCR_MODES_REG))]
   "TARGET_FPU_DOUBLE && ! TARGET_FPU_SINGLE"
   "jsr @%1%#"
   [(set_attr "type" "sfunc")
    (clobber (reg:DF DR0_REG))
    (clobber (reg:DF DR2_REG))
    (clobber (reg:SI FPSCR_STAT_REG))
-   (use (reg:SI FPSCR_MODES_REG))
-   (use (match_operand:SI 1 "arith_reg_operand" "r"))]
+   (use (match_operand:SI 1 "arith_reg_operand" "r"))
+   (use (reg:SI FPSCR_MODES_REG))]
   "TARGET_FPU_DOUBLE && ! TARGET_FPU_SINGLE"
   "jsr @%1%#"
   [(set_attr "type" "sfunc")
index 801d87ebfc6c358d164e17e138c1a5e1ba68a338..e03e4606b78944c069be3a2e8c7ab5d44c3b9eff 100644 (file)
@@ -1,3 +1,8 @@
+2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/64652
+       * gcc.target/sh/torture/pr64652.c: New.
+
 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
 
        * gcc.dg/ipa/ipa-icf-32.c: Update template.
diff --git a/gcc/testsuite/gcc.target/sh/torture/pr64652.c b/gcc/testsuite/gcc.target/sh/torture/pr64652.c
new file mode 100644 (file)
index 0000000..0ecfb9c
--- /dev/null
@@ -0,0 +1,10 @@
+/* Check that using -mdiv=call-fp compiles without fuzz.  */
+/* { dg-do compile }  */
+/* { dg-additional-options "-mdiv=call-fp" }  */
+/* { dg-skip-if "" { "sh*-*-*" } { "-m5*" } { "" } }  */
+
+int
+test (int a, int b, int c, int d)
+{
+  return (a / b) + c + d;
+}