aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meissner <meissner@linux.vnet.ibm.com>2016-05-24 17:21:18 +0000
committerKelvin Nilsen <kelvin@gcc.gnu.org>2016-05-24 17:21:18 +0000
commitb924c14061a12854caa9c6d5a624e49d490ec932 (patch)
tree755fde5dd48708d81eda1bd2e84c9b50d738aa9f
parent4d50af48a30363fa9c7fc5b3bd6dd232100aa0e0 (diff)
gcc/testsuite/ChangeLog:
2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com> Kelvin Nilsen <kelvin@gcc.gnu.org> * gcc.target/powerpc/p9-vpermr.c: New test for ISA 3.0 vpermr support. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@236655 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.target/powerpc/p9-vpermr.c21
2 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d27369c87f5..3eef44ef92e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
+ Kelvin Nilsen <kelvin@gcc.gnu.org>
+
+ * gcc.target/powerpc/p9-vpermr.c: New test for ISA 3.0 vpermr
+ support.
+
2016-05-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/69872
diff --git a/gcc/testsuite/gcc.target/powerpc/p9-vpermr.c b/gcc/testsuite/gcc.target/powerpc/p9-vpermr.c
new file mode 100644
index 00000000000..7e7a266e1ec
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/p9-vpermr.c
@@ -0,0 +1,21 @@
+/* { dg-do compile { target { powerpc64le-*-* } } } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
+/* { dg-options "-mcpu=power9 -O2" } */
+
+/* Test generation of VPERMR/XXPERMR on ISA 3.0 in little endian. */
+
+#include <altivec.h>
+
+vector long long
+permute (vector long long *p, vector long long *q, vector unsigned char mask)
+{
+ vector long long a = *p;
+ vector long long b = *q;
+
+ /* Force a, b to be in altivec registers to select vpermr insn. */
+ __asm__ (" # a: %x0, b: %x1" : "+v" (a), "+v" (b));
+
+ return vec_perm (a, b, mask);
+}
+
+/* { dg-final { scan-assembler "vpermr\|xxpermr" } } */