diff options
author | Andreas Krebbel <Andreas.Krebbel@de.ibm.com> | 2012-12-20 15:20:06 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2012-12-20 15:20:06 +0000 |
commit | 5ff3c4f398f344051ac0495ae9aecad7af83dd62 (patch) | |
tree | 3fffded1757ced8661367ad75f348d611b857dc1 | |
parent | 8ed812cc4be88f3bd042cecfa42a402df08d10d0 (diff) | |
download | gcc-5ff3c4f398f344051ac0495ae9aecad7af83dd62.zip gcc-5ff3c4f398f344051ac0495ae9aecad7af83dd62.tar.gz gcc-5ff3c4f398f344051ac0495ae9aecad7af83dd62.tar.bz2 |
re PR regression/55754 (FAIL: gcc.target/arm/unsigned-extend-2.c scan-assembler ands)
2012-12-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
PR target/55754
* config/arm/arm.c (arm_canonicalize_comparison): Remove
op0_preserve_value check for zero_extend to and transformation.
From-SVN: r194636
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ca9844f..5c51847 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-12-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> + + PR target/55754 + * config/arm/arm.c (arm_canonicalize_comparison): Remove + op0_preserve_value check for zero_extend to and transformation. + 2012-12-20 Teresa Johnson <tejohnson@google.com> Jakub Jelinek <jakub@redhat.com> diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index be4428b..4484bc9 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -3619,8 +3619,7 @@ arm_canonicalize_comparison (int *code, rtx *op0, rtx *op1, /* If *op0 is (zero_extend:SI (subreg:QI (reg:SI) 0)) and comparing with const0_rtx, change it to (and:SI (reg:SI) (const_int 255)), to facilitate possible combining with a cmp into 'ands'. */ - if (!op0_preserve_value - && mode == SImode + if (mode == SImode && GET_CODE (*op0) == ZERO_EXTEND && GET_CODE (XEXP (*op0, 0)) == SUBREG && GET_MODE (XEXP (*op0, 0)) == QImode |