[Bug target/94595] gcc.target/arm/thumb2-cond-cmp-*.c fail for cortex-m

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Sep 30 14:55:54 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94595

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Christophe Lyon <clyon@gcc.gnu.org>:

https://gcc.gnu.org/g:ef11f5b37b0a62dbad9ed37613a3799dc98f6f8b

commit r11-3564-gef11f5b37b0a62dbad9ed37613a3799dc98f6f8b
Author: Christophe Lyon <christophe.lyon@linaro.org>
Date:   Mon Sep 7 14:53:38 2020 +0000

    arm: [testsuite] Skip thumb2-cond-cmp tests on Cortex-M [PR94595]

    Since r204778 (g571880a0a4c512195aa7d41929ba6795190887b2), we favor
    branches over IT blocks on Cortex-M. As a result, instead of
    generating two nested IT blocks in thumb2-cond-cmp-[1234].c, we
    generate either a single IT block, or use branches depending on
    conditions tested by the program.

    Since this was a deliberate change and the tests still pass as
    expected on Cortex-A, this patch skips them when targetting
    Cortex-M. The avoids the failures on Cortex M3, M4, and M33.  This
    patch makes the testcases unsupported on Cortex-M7 although they pass
    in this case because this CPU has different branch costs.

    I tried to relax the scan-assembler directives using eg. cmpne|subne
    or cmpgt|ble but that seemed fragile.

    2020-09-07  Christophe Lyon  <christophe.lyon@linaro.org>

            gcc/testsuite/
            PR target/94595
            * gcc.target/arm/thumb2-cond-cmp-1.c: Skip if arm_cortex_m.
            * gcc.target/arm/thumb2-cond-cmp-2.c: Skip if arm_cortex_m.
            * gcc.target/arm/thumb2-cond-cmp-3.c: Skip if arm_cortex_m.
            * gcc.target/arm/thumb2-cond-cmp-4.c: Skip if arm_cortex_m.


More information about the Gcc-bugs mailing list