diff options
author | Roger Sayle <roger@eyesopen.com> | 2005-02-08 03:38:26 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2005-02-08 03:38:26 +0000 |
commit | f8eacd975b94717a0ae1dd9d062a2d51d89dbc3f (patch) | |
tree | 7db421c076fd06b7d2b5e6245315fae25a27e846 | |
parent | 6a8c830d8d62cfd7f9a2fb453632f3bab72e71f4 (diff) | |
download | gcc-f8eacd975b94717a0ae1dd9d062a2d51d89dbc3f.zip gcc-f8eacd975b94717a0ae1dd9d062a2d51d89dbc3f.tar.gz gcc-f8eacd975b94717a0ae1dd9d062a2d51d89dbc3f.tar.bz2 |
simplify-rtx.c (simplify_relational_operation_1): Avoid creating zero extensions of BImode operands.
* simplify-rtx.c (simplify_relational_operation_1): Avoid creating
zero extensions of BImode operands. Call lowpart_subreg instead
of gen_lowpart_common and gen_lowpart_SUBREG.
From-SVN: r94730
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/simplify-rtx.c | 15 |
2 files changed, 10 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index adc9206..fbd956b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-02-07 Roger Sayle <roger@eyesopen.com> + + * simplify-rtx.c (simplify_relational_operation_1): Avoid creating + zero extensions of BImode operands. Call lowpart_subreg instead + of gen_lowpart_common and gen_lowpart_SUBREG. + 2005-02-07 Nathanael Nerode <neroden@gcc.gnu.org> PR ada/19489 diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index a92fc3c..95735e6 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -2886,19 +2886,12 @@ simplify_relational_operation_1 (enum rtx_code code, enum machine_mode mode, && op1 == const0_rtx && GET_MODE_CLASS (mode) == MODE_INT && cmp_mode != VOIDmode + && cmp_mode != BImode && nonzero_bits (op0, cmp_mode) == 1 && STORE_FLAG_VALUE == 1) - { - rtx tmp; - if (GET_MODE_SIZE (mode) > GET_MODE_SIZE (cmp_mode)) - return simplify_gen_unary (ZERO_EXTEND, mode, op0, cmp_mode); - tmp = gen_lowpart_common (mode, op0); - if (tmp) - return tmp; - if (GET_MODE (op0) != mode) - return gen_lowpart_SUBREG (mode, op0); - return op0; - } + return GET_MODE_SIZE (mode) > GET_MODE_SIZE (cmp_mode) + ? simplify_gen_unary (ZERO_EXTEND, mode, op0, cmp_mode) + : lowpart_subreg (mode, op0, cmp_mode); return NULL_RTX; } |