This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH,ARM][6/6] Tests for LDRD/STRD/LDM/STM generation for Cortex-A9/A15


This patch adds many new tests that are designed to check that
LDRD/STRD/LDM/STM instructions are generated as expected for various
configurations of gcc with O2/Os for Cortex-A9/A15 and ARM/Thumb. The tests
cover merging individual LDR/STR into double or multiple instructions
(peepholes), as well as direct generation of these instruction for struct
copy (movmemqi).

There are 30 functions (*.inc files), checked in 224 different
configurations, each of which is a separate test (*.c files). The test are
automatically generated by the attached creatests.py script (attached for
reference).

These tests might be sensitive to changes in register allocation and
scheduling. The main reason for including these tests is to provide a
partial specification for what is expected to be generated in every
configuration.

2011-10-28  Greta Yorsh  <Greta.Yorsh@arm.com>

        * gcc.target/arm/cortexa/load2commute.inc: New file.
        * gcc.target/arm/cortexa/load2dep.inc: New file.
        * gcc.target/arm/cortexa/load2.inc: New file.
        * gcc.target/arm/cortexa/load2nocommute2.inc: New file.
        * gcc.target/arm/cortexa/load2nocommute.inc: New file.
        * gcc.target/arm/cortexa/load2-offset4.inc: New file.
        * gcc.target/arm/cortexa/load2-offset8.inc: New file.
        * gcc.target/arm/cortexa/load2-offsetminus4.inc: New file.
        * gcc.target/arm/cortexa/load2t.inc: New file.
        * gcc.target/arm/cortexa/load3.inc: New file.
        * gcc.target/arm/cortexa/load3t.inc: New file.
        * gcc.target/arm/cortexa/load-store.inc: New file.
        * gcc.target/arm/cortexa/store2const.inc: New file.
        * gcc.target/arm/cortexa/store2dep.inc: New file.
        * gcc.target/arm/cortexa/store2.inc: New file.
        * gcc.target/arm/cortexa/store2-offset4.inc: New file.
        * gcc.target/arm/cortexa/store2-offset8.inc: New file.
        * gcc.target/arm/cortexa/store2-offsetminus4.inc: New file.
        * gcc.target/arm/cortexa/store2t.inc: New file.
        * gcc.target/arm/cortexa/store2t-offset4.inc: New file.
        * gcc.target/arm/cortexa/store2t-offsetminus4.inc: New file.
        * gcc.target/arm/cortexa/store2wback.inc: New file.
        * gcc.target/arm/cortexa/store2wbackloop.inc: New file.
        * gcc.target/arm/cortexa/store3.inc: New file.
        * gcc.target/arm/cortexa/store3-offset4.inc: New file.
        * gcc.target/arm/cortexa/store3-offset8.inc: New file.
        * gcc.target/arm/cortexa/struct-copy-0.inc: New file.
        * gcc.target/arm/cortexa/struct-copy-1.inc: New file.
        * gcc.target/arm/cortexa/struct-copy-2.inc: New file.
        * gcc.target/arm/cortexa/struct-copy-3.inc: New file.

        * gcc.target/arm/cortexa/a15-arm-O2-load2.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-load2commute.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-load2dep.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-load2nocommute2.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-load2nocommute.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-load2-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-load2-offset8.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-load2-offsetminus4.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-load2t.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-load3.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-load3t.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-load-store.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-store2.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-store2const.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-store2dep.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-store2-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-store2-offset8.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-store2-offsetminus4.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-store2t.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-store2t-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-store2t-offsetminus4.c: New
file.
        * gcc.target/arm/cortexa/a15-arm-O2-store2wback.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-store2wbackloop.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-store3.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-store3-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-store3-offset8.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-struct-copy-0.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-struct-copy-1.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-struct-copy-2.c: New file.
        * gcc.target/arm/cortexa/a15-arm-O2-struct-copy-3.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-load2.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-load2commute.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-load2dep.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-load2nocommute2.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-load2nocommute.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-load2-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-load2-offset8.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-load2-offsetminus4.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-load2t.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-load3.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-load-store.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-store2.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-store2const.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-store2-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-store2-offset8.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-store2-offsetminus4.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-store2t.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-store2t-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-store2t-offsetminus4.c: New
file.
        * gcc.target/arm/cortexa/a15-arm-Os-store3.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-store3-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-store3-offset8.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-struct-copy-0.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-struct-copy-1.c: New file.
        * gcc.target/arm/cortexa/a15-arm-Os-struct-copy-3.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-load2.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-load2commute.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-load2dep.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-load2nocommute2.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-load2nocommute.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-load2-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-load2-offset8.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-load2-offsetminus4.c: New
file.
        * gcc.target/arm/cortexa/a15-thumb-O2-load2t.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-load3.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-load3t.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-load-store.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-store2.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-store2const.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-store2dep.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-store2-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-store2-offset8.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-store2-offsetminus4.c: New
file.
        * gcc.target/arm/cortexa/a15-thumb-O2-store2t.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-store2t-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-store2t-offsetminus4.c: New
file.
        * gcc.target/arm/cortexa/a15-thumb-O2-store2wback.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-store2wbackloop.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-store3.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-store3-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-store3-offset8.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-struct-copy-0.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-struct-copy-1.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-struct-copy-2.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-O2-struct-copy-3.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-load2.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-load2commute.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-load2dep.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-load2nocommute2.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-load2nocommute.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-load2-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-load2-offset8.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-load2-offsetminus4.c: New
file.
        * gcc.target/arm/cortexa/a15-thumb-Os-load2t.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-load3.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-load-store.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-store2.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-store2const.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-store2dep.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-store2-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-store2-offset8.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-store2-offsetminus4.c: New
file.
        * gcc.target/arm/cortexa/a15-thumb-Os-store2wback.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-store2wbackloop.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-store3.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-store3-offset4.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-store3-offset8.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-struct-copy-0.c: New file.
        * gcc.target/arm/cortexa/a15-thumb-Os-struct-copy-1.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-load2commute.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-load2nocommute2.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-load2nocommute.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-load2t.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-load3.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-load3t.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-store2.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-store2const.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-store2-offset4.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-store2-offset8.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-store2-offsetminus4.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-store2t.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-store2t-offset4.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-store2t-offsetminus4.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-store3.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-store3-offset4.c: New file.
        * gcc.target/arm/cortexa/a9-arm-O2-store3-offset8.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-load2.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-load2commute.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-load2nocommute2.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-load2nocommute.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-load2-offset4.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-load2-offset8.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-load2-offsetminus4.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-load2t.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-load3.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-store2.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-store2const.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-store2-offset4.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-store2-offset8.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-store2-offsetminus4.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-store2t.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-store2t-offset4.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-store2t-offsetminus4.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-store3.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-store3-offset4.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-store3-offset8.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-struct-copy-0.c: New file.
        * gcc.target/arm/cortexa/a9-arm-Os-struct-copy-1.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-load2commute.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-load2nocommute2.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-load2nocommute.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-load2t.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-load3.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-load3t.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-store2.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-store2const.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-store2dep.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-store2-offset4.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-store2-offset8.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-store2-offsetminus4.c: New
file.
        * gcc.target/arm/cortexa/a9-thumb-O2-store2t.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-store2t-offset4.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-store2t-offsetminus4.c: New
file.
        * gcc.target/arm/cortexa/a9-thumb-O2-store2wback.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-store2wbackloop.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-store3.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-store3-offset4.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-O2-store3-offset8.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-load2.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-load2commute.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-load2nocommute2.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-load2nocommute.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-load2-offset4.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-load2-offset8.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-load2-offsetminus4.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-load2t.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-load3.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-store2.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-store2const.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-store2dep.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-store2-offset4.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-store2-offset8.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-store2-offsetminus4.c: New
file.
        * gcc.target/arm/cortexa/a9-thumb-Os-store2t.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-store2t-offset4.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-store2t-offsetminus4.c: New
file.
        * gcc.target/arm/cortexa/a9-thumb-Os-store2wback.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-store2wbackloop.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-store3.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-store3-offset4.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-store3-offset8.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-struct-copy-0.c: New file.
        * gcc.target/arm/cortexa/a9-thumb-Os-struct-copy-1.c: New file.

Attachment: 6-cortexa-tests.patch
Description: Binary data

Attachment: creatests.py
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]