[Bug regression/55754] New: FAIL: gcc.target/arm/unsigned-extend-2.c scan-assembler ands

ktkachov at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Dec 20 14:00:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55754

             Bug #: 55754
           Summary: FAIL: gcc.target/arm/unsigned-extend-2.c
                    scan-assembler ands
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: regression
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: ktkachov@gcc.gnu.org
                CC: ramana.radhakrishnan@arm.com, richard.earnshaw@arm.com
            Target: arm-none-eabi


FAIL: gcc.target/arm/unsigned-extend-2.c scan-assembler ands
FAIL: gcc.target/arm/unsigned-extend-2.c scan-assembler-not uxtb
FAIL: gcc.target/arm/unsigned-extend-2.c scan-assembler-not cmp

Bisection shows r194608 introduces the FAILs.

In particular the following snippet causes the test FAIL:

   /* 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 (mode == SImode
+  if (!op0_preserve_value
+      && mode == SImode
       && GET_CODE (*op0) == ZERO_EXTEND
       && GET_CODE (XEXP (*op0, 0)) == SUBREG
       && GET_MODE (XEXP (*op0, 0)) == QImode


This change disables the transformation that the testcase is looking for.

Thanks,
Kyrill



More information about the Gcc-bugs mailing list