re PR tree-optimization/77536 (Vectorizer not maintaining relationship of relative...
authorPat Haugen <pthaugen@us.ibm.com>
Tue, 13 Sep 2016 15:58:52 +0000 (15:58 +0000)
committerPat Haugen <pthaugen@gcc.gnu.org>
Tue, 13 Sep 2016 15:58:52 +0000 (15:58 +0000)
PR tree-optimization/77536
PR rtl-optimization/68212
* config/rs6000/rs6000.md (div->recip splitter): Remove
optimize_insn_for_speed_p condition.

From-SVN: r240113

gcc/ChangeLog
gcc/config/rs6000/rs6000.md

index a11a273ea8b11794e7ced23bf19ac9246c663635..58ab8355a75dae773d3cecefb51b0dff298938a3 100644 (file)
@@ -1,3 +1,10 @@
+2016-09-13  Pat Haugen  <pthaugen@us.ibm.com>
+
+       PR tree-optimization/77536
+       PR rtl-optimization/68212
+       * config/rs6000/rs6000.md (div->recip splitter): Remove
+       optimize_insn_for_speed_p condition.
+
 2016-09-13  Maciej W. Rozycki  <macro@imgtec.com>
 
        * optabs.c (prepare_cmp_insn): Update documentation comment.
index 7da4370242d51fd72bb00cb7f8e1bbcd4cefcab4..8d09c8cd2ddb583f60add5fbe024954abbc035c5 100644 (file)
 ;; Split to create division from FRE/FRES/etc. and fixup instead of the normal
 ;; hardware division.  This is only done before register allocation and with
 ;; -ffast-math.  This must appear before the divsf3/divdf3 insns.
+;; We used to also check optimize_insn_for_speed_p () but problems with guessed
+;; frequencies (pr68212/pr77536) yields that unreliable so it was removed.
 (define_split
   [(set (match_operand:RECIPF 0 "gpc_reg_operand" "")
        (div:RECIPF (match_operand 1 "gpc_reg_operand" "")
                    (match_operand 2 "gpc_reg_operand" "")))]
   "RS6000_RECIP_AUTO_RE_P (<MODE>mode)
-   && can_create_pseudo_p () && optimize_insn_for_speed_p ()
-   && flag_finite_math_only && !flag_trapping_math && flag_reciprocal_math"
+   && can_create_pseudo_p () && flag_finite_math_only
+   && !flag_trapping_math && flag_reciprocal_math"
   [(const_int 0)]
 {
   rs6000_emit_swdiv (operands[0], operands[1], operands[2], true);