This testcase tests that with -mcpu=power8 we do not generate any mtvsr* instructions, and we do the copy with {l,st}xvd2x.
This currently fails with -m32. That is an RA problem; I'll open a new PR for that. Committing. 2019-07-08 Segher Boessenkool <seg...@kernel.crashing.org> gcc/testsuite/ PR rtl-optimization/88233 * gcc.target/powerpc/pr88233.c: New testcase. --- gcc/testsuite/gcc.target/powerpc/pr88233.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 gcc/testsuite/gcc.target/powerpc/pr88233.c diff --git a/gcc/testsuite/gcc.target/powerpc/pr88233.c b/gcc/testsuite/gcc.target/powerpc/pr88233.c new file mode 100644 index 0000000..fa47b57 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr88233.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mcpu=power8" } */ + +typedef struct { double a[2]; } A; +A +foo (const A *a) +{ + return *a; +} + +/* { dg-final { scan-assembler-not {\mmtvsr} } } */ +/* { dg-final { scan-assembler-times {\mlxvd2x\M} 1 } } */ +/* { dg-final { scan-assembler-times {\mstxvd2x\M} 1 } } */ -- 1.8.3.1