re PR rtl-optimization/54524 (Spurious add on sum of bitshifts (forward-propagate issue))

2012-11-02  Andrew Pinski  <apinski@cavium.com>

        PR rtl-opt/54524
        * simplify-rtx.c (simplify_relational_operation_1): Don't simplify
        (LTU/GEU (PLUS a 0) 0) into (GEU/LTU a 0) since they are not equivalent.

From-SVN: r193111
This commit is contained in:
Andrew Pinski 2012-11-02 23:32:32 +00:00 committed by Andrew Pinski
parent 556ea3915a
commit 5352ea68e3
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2012-11-02 Andrew Pinski <apinski@cavium.com>
PR rtl-opt/54524
* simplify-rtx.c (simplify_relational_operation_1): Don't simplify
(LTU/GEU (PLUS a 0) 0) into (GEU/LTU a 0) since they are not equivalent.
2012-11-02 Jan Hubicka <jh@suse.cz>
* tree-ssa-loop-niter.c (double_int_cmp, bound_index,

View File

@ -4546,7 +4546,9 @@ simplify_relational_operation_1 (enum rtx_code code, enum machine_mode mode,
&& GET_CODE (op0) == PLUS
&& CONST_INT_P (XEXP (op0, 1))
&& (rtx_equal_p (op1, XEXP (op0, 0))
|| rtx_equal_p (op1, XEXP (op0, 1))))
|| rtx_equal_p (op1, XEXP (op0, 1)))
/* (LTU/GEU (PLUS a 0) 0) is not the same as (GEU/LTU a 0). */
&& XEXP (op0, 1) != const0_rtx)
{
rtx new_cmp
= simplify_gen_unary (NEG, cmp_mode, XEXP (op0, 1), cmp_mode);