re PR tree-optimization/69467 (Pattern X * C1 CMP 0 to X CMP 0 causes performance drop on 32-bit x86.)

2016-01-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/69467
	* match.pd: Guard X * CST CMP 0 pattern with single_use.

From-SVN: r232821
This commit is contained in:
Richard Biener 2016-01-26 12:05:22 +00:00 committed by Richard Biener
parent 22a08dd126
commit bc6e9db416
2 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2016-01-26 Richard Biener <rguenther@suse.de>
PR middle-end/69467
* match.pd: Guard X * CST CMP 0 pattern with single_use.
2016-01-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/69452

View File

@ -1821,12 +1821,13 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
(for cmp (simple_comparison)
scmp (swapped_simple_comparison)
(simplify
(cmp (mult @0 INTEGER_CST@1) integer_zerop@2)
(cmp (mult@3 @0 INTEGER_CST@1) integer_zerop@2)
/* Handle unfolded multiplication by zero. */
(if (integer_zerop (@1))
(cmp @1 @2)
(if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0))
&& TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (@0)))
&& TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (@0))
&& single_use (@3))
/* If @1 is negative we swap the sense of the comparison. */
(if (tree_int_cst_sgn (@1) < 0)
(scmp @0 @2)