Add tests for -mcpu=future that test the generation of PADDI (and PLI which becomes PADDI).
2020-06-01 Michael Meissner <meiss...@linux.ibm.com> * gcc.target/powerpc/prefix-add.c: New test. * gcc.target/powerpc/prefix-si-constant.c: New test. * gcc.target/powerpc/prefix-di-constant.c: New test. --- gcc/testsuite/gcc.target/powerpc/prefix-add.c | 14 ++++++++++++++ gcc/testsuite/gcc.target/powerpc/prefix-di-constant.c | 13 +++++++++++++ gcc/testsuite/gcc.target/powerpc/prefix-ds-dq.c | 0 gcc/testsuite/gcc.target/powerpc/prefix-si-constant.c | 12 ++++++++++++ 4 files changed, 39 insertions(+) create mode 100644 gcc/testsuite/gcc.target/powerpc/prefix-add.c create mode 100644 gcc/testsuite/gcc.target/powerpc/prefix-di-constant.c create mode 100644 gcc/testsuite/gcc.target/powerpc/prefix-ds-dq.c create mode 100644 gcc/testsuite/gcc.target/powerpc/prefix-si-constant.c diff --git a/gcc/testsuite/gcc.target/powerpc/prefix-add.c b/gcc/testsuite/gcc.target/powerpc/prefix-add.c new file mode 100644 index 0000000..26ef23e0 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/prefix-add.c @@ -0,0 +1,14 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target powerpc_prefixed_addr } */ +/* { dg-options "-O2 -mdejagnu-cpu=future" } */ + +/* Test that PADDI is generated to add a large constant. */ +unsigned long +add (unsigned long a) +{ + return a + 0x12345U; +} + +/* { dg-final { scan-assembler {\mpaddi\M} } } */ +/* { dg-final { scan-assembler-not {\maddi\M} } } */ +/* { dg-final { scan-assembler-not {\maddis\M} } } */ diff --git a/gcc/testsuite/gcc.target/powerpc/prefix-di-constant.c b/gcc/testsuite/gcc.target/powerpc/prefix-di-constant.c new file mode 100644 index 0000000..389fdaa --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/prefix-di-constant.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target powerpc_prefixed_addr } */ +/* { dg-require-effective-target lp64 } */ +/* { dg-options "-O2 -mdejagnu-cpu=future" } */ + +/* Test that PLI (PADDI) is generated to load a large constant. */ +unsigned long long +large (void) +{ + return 0x12345678ULL; +} + +/* { dg-final { scan-assembler {\mpli\M} } } */ diff --git a/gcc/testsuite/gcc.target/powerpc/prefix-ds-dq.c b/gcc/testsuite/gcc.target/powerpc/prefix-ds-dq.c new file mode 100644 index 0000000..e69de29 diff --git a/gcc/testsuite/gcc.target/powerpc/prefix-si-constant.c b/gcc/testsuite/gcc.target/powerpc/prefix-si-constant.c new file mode 100644 index 0000000..269fc0f --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/prefix-si-constant.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target powerpc_prefixed_addr } */ +/* { dg-options "-O2 -mdejagnu-cpu=future" } */ + +/* Test that PLI (PADDI) is generated to load a large constant for SImode. */ +void +large_si (unsigned int *p) +{ + *p = 0x12345U; +} + +/* { dg-final { scan-assembler {\mpli\M} } } */ -- 1.8.3.1