diff options
author | Andrew Pinski <apinski@cavium.com> | 2012-11-02 23:32:32 +0000 |
---|---|---|
committer | Andrew Pinski <apinski@cavium.com> | 2012-11-02 23:32:32 +0000 |
commit | f63eafcd326ce38938878cce960afd58c38fefc8 (patch) | |
tree | b2da9394c1af97b14041472f1c6a7ffc41a66ccd /gcc/simplify-rtx.c | |
parent | 1dfa4c9f376085bc2267483c2c6e050ac4f963a8 (diff) |
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.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@193111 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/simplify-rtx.c')
-rw-r--r-- | gcc/simplify-rtx.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index cb63b80500e..6c50d301fe0 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -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); |