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: unassig...@gcc.gnu.org

        ReportedBy: ktkac...@gcc.gnu.org

                CC: ramana.radhakrish...@arm.com, richard.earns...@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

Reply via email to