diff mbox

[PATCH[2/n] Remove GENERIC stmt combining from SCCVN

Message ID alpine.LSU.2.11.1506251517260.26650@zhemvz.fhfr.qr
State New
Headers show

Commit Message

Richard Biener June 25, 2015, 1:19 p.m. UTC
This shows up in gcc.dg/tree-ssa/reassoc-13.c where the 'reassoc:'
case in fold_binary happily handles floats if flag_associative_math.
Thus here, too.

Bootstrap & regtest ongoing on x86_64-unknown-linux-gnu.

Richard.

2015-06-25  Richard Biener  <rguenther@suse.de>

	* match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
diff mbox

Patch

Index: gcc/match.pd
===================================================================
--- gcc/match.pd	(revision 224893)
+++ gcc/match.pd	(working copy)
@@ -561,9 +578,10 @@  (define_operator_list swapped_tcc_compar
        && !TYPE_OVERFLOW_SANITIZED (type))
    (convert @1)))
 
- /* We can't reassociate floating-point or fixed-point plus or minus
-    because of saturation to +-Inf.  */
- (if (!FLOAT_TYPE_P (type) && !FIXED_POINT_TYPE_P (type))
+ /* We can't reassociate floating-point unless -fassociative-math
+    or fixed-point plus or minus because of saturation to +-Inf.  */
+ (if ((!FLOAT_TYPE_P (type) || flag_associative_math)
+      && !FIXED_POINT_TYPE_P (type))
 
   /* Match patterns that allow contracting a plus-minus pair
      irrespective of overflow issues.  */