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
This commit is contained in:
Andreas Krebbel 2012-12-20 15:20:06 +00:00 committed by Andreas Krebbel
parent 8ed812cc4b
commit 5ff3c4f398
2 changed files with 7 additions and 2 deletions

View file

@ -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>

View file

@ -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