aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>2016-09-16 21:28:52 +0000
committerWilliam Schmidt <wschmidt@gcc.gnu.org>2016-09-16 21:28:52 +0000
commit9a42726b2e41d0d0d45bdf0c08ef59b9b6fde07d (patch)
tree7858b480c9f25effa75ae36e586da412abb94476 /gcc/testsuite/gcc.target
parent8f03e02f36105e7b3c7d21ce2368f3e3147d091a (diff)
downloadgcc-9a42726b2e41d0d0d45bdf0c08ef59b9b6fde07d.zip
gcc-9a42726b2e41d0d0d45bdf0c08ef59b9b6fde07d.tar.gz
gcc-9a42726b2e41d0d0d45bdf0c08ef59b9b6fde07d.tar.bz2
re PR target/77613 (Powerpc64le: redundant swaps in autovectorised loop)
[gcc] 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR target/77613 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for splat with truncate. [gcc/testsuite] 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR target/77613 * gcc.target/powerpc/swaps-p8-25.c: New. From-SVN: r240199
Diffstat (limited to 'gcc/testsuite/gcc.target')
-rw-r--r--gcc/testsuite/gcc.target/powerpc/swaps-p8-25.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/powerpc/swaps-p8-25.c b/gcc/testsuite/gcc.target/powerpc/swaps-p8-25.c
new file mode 100644
index 0000000..5b99948
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/swaps-p8-25.c
@@ -0,0 +1,18 @@
+/* { dg-do compile { target { powerpc64le-*-* } } } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-options "-mcpu=power8 -O3 " } */
+/* { dg-final { scan-assembler "lxvd2x" } } */
+/* { dg-final { scan-assembler "stxvd2x" } } */
+/* { dg-final { scan-assembler-not "xxpermdi" } } */
+
+/* Verify that swap optimization works correctly for a truncating splat. */
+
+/* Test case to resolve PR77613. */
+
+void pr77613 (signed short a, signed short *x, signed short *y)
+{
+ unsigned long i;
+
+ for (i = 0; i < 1024; i++)
+ y[i] = a * x[i] + y[i];
+}