summaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorKelvin Nilsen <kelvin@gcc.gnu.org>2020-05-11 21:37:41 -0500
committerBill Schmidt <wschmidt@linux.ibm.com>2020-05-11 21:37:41 -0500
commit3ebd168b443d946f9381d012176e38598987b133 (patch)
tree9361733f78b8198215b383cbf7aa0d288640c403 /gcc/testsuite
parentb8eaa7545b643a418aa44054b8f2d79a2b3c6ef2 (diff)
rs6000: Built-in cleanups for vec_clzm, vec_ctzm, and vec_gnb
Changes to the built-in specification occurred after early patches added support for these. The name of vec_clzm became vec_cntlzm, and vec_ctzm became vec_cnttzm. Four of the overloaded forms of vec_gnb were removed, and the fourth argument redefined as an unsigned int, not an unsigned char. This patch reflects those changes in the code and test cases. Eight of the vec_gnb test cases are removed as a result. [gcc] 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> * config/rs6000/altivec.h (vec_clzm): Rename to vec_cntlzm. (vec_ctzm): Rename to vec_cnttzm. * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change fourth operand for vec_ternarylogic to require compatibility with unsigned SImode rather than unsigned QImode. * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Remove overloaded forms of vec_gnb that are no longer needed. * doc/extend.texi (PowerPC AltiVec Built-in Functions Available for a Future Architecture): Replace vec_clzm with vec_cntlzm; replace vec_ctzm with vec_cntlzm; remove four unwanted forms of vec_gnb; move vec_ternarylogic documentation into this section and replace const unsigned char with const unsigned int as its fourth argument. [gcc/testsuite] 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> * gcc.target/powerpc/vec-clzm-0.c: Rename to... * gcc.target/powerpc/vec-cntlzm-0.c: ...this. * gcc.target/powerpc/vec-clzm-1.c: Rename to... * gcc.target/powerpc/vec-cntlzm-1.c: ...this. * gcc.target/powerpc/vec-ctzm-0.c: Rename to... * gcc.target/powerpc/vec-cnttzm-0.c: ...this. * gcc.target/powerpc/vec-ctzm-1.c: Rename to... * gcc.target/powerpc/vec-cnttzm-1.c: ...this. * gcc.target/powerpc/vec-gnb-8.c: Rename to... * gcc.target/powerpc/vec-gnb-0.c: ...this, deleting the old file. * gcc.target/powerpc/vec-gnb-9.c: Rename to... * gcc.target/powerpc/vec-gnb-1.c: ...this, deleting the old file. * gcc.target/powerpc/vec-gnb-10.c: Rename to... * gcc.target/powerpc/vec-gnb-2.c: ...this, deleting the old file. * gcc.target/powerpc/vec-gnb-3.c: Delete. * gcc.target/powerpc/vec-gnb-4.c: Delete. * gcc.target/powerpc/vec-gnb-5.c: Delete. * gcc.target/powerpc/vec-gnb-6.c: Delete. * gcc.target/powerpc/vec-gnb-7.c: Delete.
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog22
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-cntlzm-0.c (renamed from gcc/testsuite/gcc.target/powerpc/vec-clzm-0.c)12
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-cntlzm-1.c (renamed from gcc/testsuite/gcc.target/powerpc/vec-clzm-1.c)12
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-cnttzm-0.c (renamed from gcc/testsuite/gcc.target/powerpc/vec-ctzm-0.c)12
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-cnttzm-1.c (renamed from gcc/testsuite/gcc.target/powerpc/vec-ctzm-1.c)12
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-gnb-0.c22
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-gnb-1.c23
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-gnb-10.c72
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-gnb-2.c31
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-gnb-3.c72
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-gnb-4.c71
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-gnb-5.c71
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-gnb-6.c71
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-gnb-7.c71
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-gnb-8.c75
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vec-gnb-9.c74
16 files changed, 81 insertions, 642 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 960dff0f1e3..5064e684b6b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,25 @@
+2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
+
+ * gcc.target/powerpc/vec-clzm-0.c: Rename to...
+ * gcc.target/powerpc/vec-cntlzm-0.c: ...this.
+ * gcc.target/powerpc/vec-clzm-1.c: Rename to...
+ * gcc.target/powerpc/vec-cntlzm-1.c: ...this.
+ * gcc.target/powerpc/vec-ctzm-0.c: Rename to...
+ * gcc.target/powerpc/vec-cnttzm-0.c: ...this.
+ * gcc.target/powerpc/vec-ctzm-1.c: Rename to...
+ * gcc.target/powerpc/vec-cnttzm-1.c: ...this.
+ * gcc.target/powerpc/vec-gnb-8.c: Rename to...
+ * gcc.target/powerpc/vec-gnb-0.c: ...this, deleting the old file.
+ * gcc.target/powerpc/vec-gnb-9.c: Rename to...
+ * gcc.target/powerpc/vec-gnb-1.c: ...this, deleting the old file.
+ * gcc.target/powerpc/vec-gnb-10.c: Rename to...
+ * gcc.target/powerpc/vec-gnb-2.c: ...this, deleting the old file.
+ * gcc.target/powerpc/vec-gnb-3.c: Delete.
+ * gcc.target/powerpc/vec-gnb-4.c: Delete.
+ * gcc.target/powerpc/vec-gnb-5.c: Delete.
+ * gcc.target/powerpc/vec-gnb-6.c: Delete.
+ * gcc.target/powerpc/vec-gnb-7.c: Delete.
+
2020-05-11 Carl Love <cel@us.ibm.com>
* gcc.target/powerpc/xxgenpc-runnable.c: New.
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-clzm-0.c b/gcc/testsuite/gcc.target/powerpc/vec-cntlzm-0.c
index 099c5dc99bf..6fe0cbd8875 100644
--- a/gcc/testsuite/gcc.target/powerpc/vec-clzm-0.c
+++ b/gcc/testsuite/gcc.target/powerpc/vec-cntlzm-0.c
@@ -6,10 +6,10 @@
extern void abort (void);
vector unsigned long long int
-do_vec_clzm (vector unsigned long long int source,
+do_vec_cntlzm (vector unsigned long long int source,
vector unsigned long long int mask)
{
- return vec_clzm (source, mask);
+ return vec_cntlzm (source, mask);
}
int main (int argc, char *argv [])
@@ -39,13 +39,13 @@ int main (int argc, char *argv [])
vector unsigned long long int result_ba = { 2, 0 };
vector unsigned long long int result_bb = { 0, 1 };
- if (!vec_all_eq (do_vec_clzm (source_a, mask_a), result_aa))
+ if (!vec_all_eq (do_vec_cntlzm (source_a, mask_a), result_aa))
abort ();
- if (!vec_all_eq (do_vec_clzm (source_a, mask_b), result_ab))
+ if (!vec_all_eq (do_vec_cntlzm (source_a, mask_b), result_ab))
abort ();
- if (!vec_all_eq (do_vec_clzm (source_b, mask_a), result_ba))
+ if (!vec_all_eq (do_vec_cntlzm (source_b, mask_a), result_ba))
abort ();
- if (!vec_all_eq (do_vec_clzm (source_b, mask_b), result_bb))
+ if (!vec_all_eq (do_vec_cntlzm (source_b, mask_b), result_bb))
abort ();
return 0;
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-clzm-1.c b/gcc/testsuite/gcc.target/powerpc/vec-cntlzm-1.c
index 43b86114487..7e058ed8843 100644
--- a/gcc/testsuite/gcc.target/powerpc/vec-clzm-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/vec-cntlzm-1.c
@@ -7,10 +7,10 @@
extern void abort (void);
vector unsigned long long int
-do_vec_clzm (vector unsigned long long int source,
+do_vec_cntlzm (vector unsigned long long int source,
vector unsigned long long int mask)
{
- return vec_clzm (source, mask);
+ return vec_cntlzm (source, mask);
}
int main (int argc, char *argv [])
@@ -40,13 +40,13 @@ int main (int argc, char *argv [])
vector unsigned long long int result_ba = { 2, 0 };
vector unsigned long long int result_bb = { 0, 1 };
- if (!vec_all_eq (do_vec_clzm (source_a, mask_a), result_aa))
+ if (!vec_all_eq (do_vec_cntlzm (source_a, mask_a), result_aa))
abort ();
- if (!vec_all_eq (do_vec_clzm (source_a, mask_b), result_ab))
+ if (!vec_all_eq (do_vec_cntlzm (source_a, mask_b), result_ab))
abort ();
- if (!vec_all_eq (do_vec_clzm (source_b, mask_a), result_ba))
+ if (!vec_all_eq (do_vec_cntlzm (source_b, mask_a), result_ba))
abort ();
- if (!vec_all_eq (do_vec_clzm (source_b, mask_b), result_bb))
+ if (!vec_all_eq (do_vec_cntlzm (source_b, mask_b), result_bb))
abort ();
return 0;
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-ctzm-0.c b/gcc/testsuite/gcc.target/powerpc/vec-cnttzm-0.c
index 315edf4d4cd..94fac3bf817 100644
--- a/gcc/testsuite/gcc.target/powerpc/vec-ctzm-0.c
+++ b/gcc/testsuite/gcc.target/powerpc/vec-cnttzm-0.c
@@ -6,10 +6,10 @@
extern void abort (void);
vector unsigned long long int
-do_vec_ctzm (vector unsigned long long int source,
+do_vec_cnttzm (vector unsigned long long int source,
vector unsigned long long int mask)
{
- return vec_ctzm (source, mask);
+ return vec_cnttzm (source, mask);
}
int main (int argc, char *argv [])
@@ -39,13 +39,13 @@ int main (int argc, char *argv [])
vector unsigned long long int result_ba = { 0, 0 };
vector unsigned long long int result_bb = { 1, 2 };
- if (!vec_all_eq (do_vec_ctzm (source_a, mask_a), result_aa))
+ if (!vec_all_eq (do_vec_cnttzm (source_a, mask_a), result_aa))
abort ();
- if (!vec_all_eq (do_vec_ctzm (source_a, mask_b), result_ab))
+ if (!vec_all_eq (do_vec_cnttzm (source_a, mask_b), result_ab))
abort ();
- if (!vec_all_eq (do_vec_ctzm (source_b, mask_a),result_ba))
+ if (!vec_all_eq (do_vec_cnttzm (source_b, mask_a),result_ba))
abort ();
- if (!vec_all_eq (do_vec_ctzm (source_b, mask_b), result_bb))
+ if (!vec_all_eq (do_vec_cnttzm (source_b, mask_b), result_bb))
abort ();
return 0;
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-ctzm-1.c b/gcc/testsuite/gcc.target/powerpc/vec-cnttzm-1.c
index 3dc4a03ab09..27ff3bd4961 100644
--- a/gcc/testsuite/gcc.target/powerpc/vec-ctzm-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/vec-cnttzm-1.c
@@ -7,10 +7,10 @@
extern void abort (void);
vector unsigned long long int
-do_vec_ctzm (vector unsigned long long int source,
+do_vec_cnttzm (vector unsigned long long int source,
vector unsigned long long int mask)
{
- return vec_ctzm (source, mask);
+ return vec_cnttzm (source, mask);
}
int main (int argc, char *argv [])
@@ -40,13 +40,13 @@ int main (int argc, char *argv [])
vector unsigned long long int result_ba = { 0, 0 };
vector unsigned long long int result_bb = { 1, 2 };
- if (!vec_all_eq (do_vec_ctzm (source_a, mask_a), result_aa))
+ if (!vec_all_eq (do_vec_cnttzm (source_a, mask_a), result_aa))
abort ();
- if (!vec_all_eq (do_vec_ctzm (source_a, mask_b), result_ab))
+ if (!vec_all_eq (do_vec_cnttzm (source_a, mask_b), result_ab))
abort ();
- if (!vec_all_eq (do_vec_ctzm (source_b, mask_a),result_ba))
+ if (!vec_all_eq (do_vec_cnttzm (source_b, mask_a),result_ba))
abort ();
- if (!vec_all_eq (do_vec_ctzm (source_b, mask_b), result_bb))
+ if (!vec_all_eq (do_vec_cnttzm (source_b, mask_b), result_bb))
abort ();
return 0;
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-gnb-0.c b/gcc/testsuite/gcc.target/powerpc/vec-gnb-0.c
index a95c29cf31d..f18bb16ffb2 100644
--- a/gcc/testsuite/gcc.target/powerpc/vec-gnb-0.c
+++ b/gcc/testsuite/gcc.target/powerpc/vec-gnb-0.c
@@ -5,10 +5,8 @@
extern void abort (void);
-/* This test is replicated for every different vector type since
- vec_gnb is polymorphic. */
unsigned long long int
-do_vec_gnb (vector unsigned char source, int stride)
+do_vec_gnb (vector unsigned __int128 source, int stride)
{
switch (stride)
{
@@ -46,15 +44,15 @@ main (int argc, char *argv [])
/* The last array element appears in the left-most (first) bit
positions of the vector register. */
- vector unsigned char source_a = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x88, 0x88, 0x88, 0x88 };
- vector unsigned char source_b = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 };
- vector unsigned char source_c = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 };
- vector unsigned char source_d = {
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 };
+ vector unsigned __int128 source_a =
+ { ((unsigned __int128) 0x8888888800000000ull) << 64 };
+ vector unsigned __int128 source_b =
+ { ((unsigned __int128) 0x8080808080808080ull) << 64 };
+ vector unsigned __int128 source_c =
+ { ((unsigned __int128) 0x8888888888888888ull) << 64 };
+ vector unsigned __int128 source_d =
+ { 0x8080808080808080ull |
+ ((unsigned __int128) 0x8080808080808080ull) << 64 };
unsigned long long int results [] =
{ 0xaaaa000000000000ull, 0xaaaa000000000000ull,
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-gnb-1.c b/gcc/testsuite/gcc.target/powerpc/vec-gnb-1.c
index e8ceed55994..ee9c44f88b2 100644
--- a/gcc/testsuite/gcc.target/powerpc/vec-gnb-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/vec-gnb-1.c
@@ -6,10 +6,8 @@
extern void abort (void);
-/* This test is replicated for every different vector type since
- vec_gnb is polymorphic. */
unsigned long long int
-do_vec_gnb (vector unsigned char source, int stride)
+do_vec_gnb (vector unsigned __int128 source, int stride)
{
switch (stride)
{
@@ -47,15 +45,15 @@ main (int argc, char *argv [])
/* The last array element appears in the left-most (first) bit
positions of the vector register. */
- vector unsigned char source_a = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x88, 0x88, 0x88, 0x88 };
- vector unsigned char source_b = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 };
- vector unsigned char source_c = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 };
- vector unsigned char source_d = {
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 };
+ vector unsigned __int128 source_a =
+ { ((unsigned __int128) 0x8888888800000000ull) << 64 };
+ vector unsigned __int128 source_b =
+ { ((unsigned __int128) 0x8080808080808080ull) << 64 };
+ vector unsigned __int128 source_c =
+ { ((unsigned __int128) 0x8888888888888888ull) << 64 };
+ vector unsigned __int128 source_d =
+ { 0x8080808080808080ull |
+ ((unsigned __int128) 0x8080808080808080ull) << 64 };
unsigned long long int results [] =
{ 0xaaaa000000000000ull, 0xaaaa000000000000ull,
@@ -72,4 +70,3 @@ main (int argc, char *argv [])
return 0;
}
-
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-gnb-10.c b/gcc/testsuite/gcc.target/powerpc/vec-gnb-10.c
deleted file mode 100644
index 73ff0d9fea7..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vec-gnb-10.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mdejagnu-cpu=future" } */
-
-#include <altivec.h>
-
-extern void abort (void);
-
-unsigned long long int
-do_vec_gnb (vector unsigned char source, unsigned char stride)
-{
- switch (stride)
- {
- case 2:
- return vec_gnb (source, 0); /* { dg-error "between 2 and 7" } */
- case 3:
- return vec_gnb (source, -1); /* { dg-error "between 2 and 7" } */
- case 4:
- return vec_gnb (source, 8); /* { dg-error "between 2 and 7" } */
- case 5:
- return vec_gnb (source, 1); /* { dg-error "between 2 and 7" } */
- case 6:
- return vec_gnb (source, stride); /* { dg-error "unsigned literal" } */
- case 7:
- return vec_gnb (source, 7);
-
- default:
- /* Illegal value of stride */
- abort ();
- return 0;
- }
-}
-
-int
-main (int argc, char *argv [])
-{
- /* For result = 0xaaaa_0000_0000_0000, use:
- stride = 2: binary 1x0x_1x0x_1x0x_... = 0x8888_8888_0000_0000, 0
- stride = 4: binary 1xxx_0xxx_1xxx_0xxxx = 0x8080_8080_8080_8080, 0
-
- For result = 0xaaaa_aaaa_0000_0000, use:
- stride = 2: source = 0x8888_8888_8888_8888, 0x0 }
- stride = 4: source = { 0x8080_8080_8080_8080, 0x8080_8080_8080_8080 }
- */
-
- /* The last array element appears in the left-most (first) bit
- positions of the vector register. */
- vector unsigned char source_a = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x88, 0x88, 0x88, 0x88 };
- vector unsigned char source_b = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 };
- vector unsigned char source_c = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 };
- vector unsigned char source_d = {
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 };
-
- unsigned long long int results [] =
- { 0xaaaa000000000000ull, 0xaaaa000000000000ull,
- 0xaaaaaaaa00000000ull, 0xaaaaaaaa00000000ull };
-
- if (do_vec_gnb (source_a, 2) != results [0])
- abort ();
- if (do_vec_gnb (source_b, 4) != results [1])
- abort ();
- if (do_vec_gnb (source_c, 2) != results [2])
- abort ();
- if (do_vec_gnb (source_d, 4) != results [3])
- abort ();
-
- return 0;
-}
-
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-gnb-2.c b/gcc/testsuite/gcc.target/powerpc/vec-gnb-2.c
index eb51a8db219..591f701e820 100644
--- a/gcc/testsuite/gcc.target/powerpc/vec-gnb-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/vec-gnb-2.c
@@ -5,23 +5,21 @@
extern void abort (void);
-/* This test is replicated for every different vector type since
- vec_gnb is polymorphic. */
unsigned long long int
-do_vec_gnb (vector unsigned short int source, int stride)
+do_vec_gnb (vector unsigned __int128 source, int stride)
{
switch (stride)
{
case 2:
- return vec_gnb (source, 2);
+ return vec_gnb (source, 0); /* { dg-error "between 2 and 7" } */
case 3:
- return vec_gnb (source, 3);
+ return vec_gnb (source, -1); /* { dg-error "between 2 and 7" } */
case 4:
- return vec_gnb (source, 4);
+ return vec_gnb (source, 8); /* { dg-error "between 2 and 7" } */
case 5:
- return vec_gnb (source, 5);
+ return vec_gnb (source, 1); /* { dg-error "between 2 and 7" } */
case 6:
- return vec_gnb (source, 6);
+ return vec_gnb (source, stride); /* { dg-error "unsigned literal" } */
case 7:
return vec_gnb (source, 7);
@@ -46,13 +44,15 @@ main (int argc, char *argv [])
/* The last array element appears in the left-most (first) bit
positions of the vector register. */
- vector unsigned short int source_a = { 0, 0, 0, 0, 0, 0, 0x8888, 0x8888 };
- vector unsigned short int source_b = {
- 0, 0, 0, 0, 0x8080, 0x8080, 0x8080, 0x8080 };
- vector unsigned short int source_c = {
- 0, 0, 0, 0, 0x8888, 0x8888, 0x8888, 0x8888 };
- vector unsigned short int source_d = {
- 0x8080, 0x8080, 0x8080, 0x8080, 0x8080, 0x8080, 0x8080, 0x8080 };
+ vector unsigned __int128 source_a =
+ { ((unsigned __int128) 0x8888888800000000ull) << 64 };
+ vector unsigned __int128 source_b =
+ { ((unsigned __int128) 0x8080808080808080ull) << 64 };
+ vector unsigned __int128 source_c =
+ { ((unsigned __int128) 0x8888888888888888ull) << 64 };
+ vector unsigned __int128 source_d =
+ { 0x8080808080808080ull |
+ ((unsigned __int128) 0x8080808080808080ull) << 64 };
unsigned long long int results [] =
{ 0xaaaa000000000000ull, 0xaaaa000000000000ull,
@@ -70,4 +70,3 @@ main (int argc, char *argv [])
return 0;
}
-/* { dg-final { scan-assembler {\mvgnb\M} } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-gnb-3.c b/gcc/testsuite/gcc.target/powerpc/vec-gnb-3.c
deleted file mode 100644
index f36b91a83e5..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vec-gnb-3.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target powerpc_future_hw } */
-/* { dg-options "-mdejagnu-cpu=future" } */
-
-#include <altivec.h>
-
-extern void abort (void);
-
-/* This test is replicated for every different vector type since
- vec_gnb is polymorphic. */
-unsigned long long int
-do_vec_gnb (vector unsigned short int source, int stride)
-{
- switch (stride)
- {
- case 2:
- return vec_gnb (source, 2);
- case 3:
- return vec_gnb (source, 3);
- case 4:
- return vec_gnb (source, 4);
- case 5:
- return vec_gnb (source, 5);
- case 6:
- return vec_gnb (source, 6);
- case 7:
- return vec_gnb (source, 7);
-
- default:
- /* Illegal value of stride */
- abort ();
- return 0;
- }
-}
-
-int
-main (int argc, char *argv [])
-{
- /* For result = 0xaaaa_0000_0000_0000, use:
- stride = 2: binary 1x0x_1x0x_1x0x_... = 0x8888_8888_0000_0000, 0
- stride = 4: binary 1xxx_0xxx_1xxx_0xxxx = 0x8080_8080_8080_8080, 0
-
- For result = 0xaaaa_aaaa_0000_0000, use:
- stride = 2: source = 0x8888_8888_8888_8888, 0x0 }
- stride = 4: source = { 0x8080_8080_8080_8080, 0x8080_8080_8080_8080 }
- */
-
- /* The last array element appears in the left-most (first) bit
- positions of the vector register. */
- vector unsigned short int source_a = { 0, 0, 0, 0, 0, 0, 0x8888, 0x8888 };
- vector unsigned short int source_b = {
- 0, 0, 0, 0, 0x8080, 0x8080, 0x8080, 0x8080 };
- vector unsigned short int source_c = {
- 0, 0, 0, 0, 0x8888, 0x8888, 0x8888, 0x8888 };
- vector unsigned short int source_d = {
- 0x8080, 0x8080, 0x8080, 0x8080, 0x8080, 0x8080, 0x8080, 0x8080 };
-
- unsigned long long int results [] =
- { 0xaaaa000000000000ull, 0xaaaa000000000000ull,
- 0xaaaaaaaa00000000ull, 0xaaaaaaaa00000000ull };
-
- if (do_vec_gnb (source_a, 2) != results [0])
- abort ();
- if (do_vec_gnb (source_b, 4) != results [1])
- abort ();
- if (do_vec_gnb (source_c, 2) != results [2])
- abort ();
- if (do_vec_gnb (source_d, 4) != results [3])
- abort ();
-
- return 0;
-}
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-gnb-4.c b/gcc/testsuite/gcc.target/powerpc/vec-gnb-4.c
deleted file mode 100644
index df312ae1b28..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vec-gnb-4.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mdejagnu-cpu=future" } */
-
-#include <altivec.h>
-
-extern void abort (void);
-
-/* This test is replicated for every different vector type since
- vec_gnb is polymorphic. */
-unsigned long long int
-do_vec_gnb (vector unsigned int source, int stride)
-{
- switch (stride)
- {
- case 2:
- return vec_gnb (source, 2);
- case 3:
- return vec_gnb (source, 3);
- case 4:
- return vec_gnb (source, 4);
- case 5:
- return vec_gnb (source, 5);
- case 6:
- return vec_gnb (source, 6);
- case 7:
- return vec_gnb (source, 7);
-
- default:
- /* Illegal value of stride */
- abort ();
- return 0;
- }
-}
-
-int
-main (int argc, char *argv [])
-{
- /* For result = 0xaaaa_0000_0000_0000, use:
- stride = 2: binary 1x0x_1x0x_1x0x_... = 0x8888_8888_0000_0000, 0
- stride = 4: binary 1xxx_0xxx_1xxx_0xxxx = 0x8080_8080_8080_8080, 0
-
- For result = 0xaaaa_aaaa_0000_0000, use:
- stride = 2: source = 0x8888_8888_8888_8888, 0x0 }
- stride = 4: source = { 0x8080_8080_8080_8080, 0x8080_8080_8080_8080 }
- */
-
- /* The last array element appears in the left-most (first) bit
- positions of the vector register. */
- vector unsigned int source_a = { 0, 0, 0, 0x88888888 };
- vector unsigned int source_b = { 0, 0, 0x80808080, 0x80808080 };
- vector unsigned int source_c = { 0, 0, 0x88888888, 0x88888888 };
- vector unsigned int source_d =
- { 0x80808080, 0x80808080, 0x80808080, 0x80808080 };
-
- unsigned long long int results [] =
- { 0xaaaa000000000000ull, 0xaaaa000000000000ull,
- 0xaaaaaaaa00000000ull, 0xaaaaaaaa00000000ull };
-
- if (do_vec_gnb (source_a, 2) != results [0])
- abort ();
- if (do_vec_gnb (source_b, 4) != results [1])
- abort ();
- if (do_vec_gnb (source_c, 2) != results [2])
- abort ();
- if (do_vec_gnb (source_d, 4) != results [3])
- abort ();
-
- return 0;
-}
-
-/* { dg-final { scan-assembler {\mvgnb\M} } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-gnb-5.c b/gcc/testsuite/gcc.target/powerpc/vec-gnb-5.c
deleted file mode 100644
index 1c3c3fa72c0..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vec-gnb-5.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target powerpc_future_hw } */
-/* { dg-options "-mdejagnu-cpu=future" } */
-
-#include <altivec.h>
-
-extern void abort (void);
-
-/* This test is replicated for every different vector type since
- vec_gnb is polymorphic. */
-unsigned long long int
-do_vec_gnb (vector unsigned int source, int stride)
-{
- switch (stride)
- {
- case 2:
- return vec_gnb (source, 2);
- case 3:
- return vec_gnb (source, 3);
- case 4:
- return vec_gnb (source, 4);
- case 5:
- return vec_gnb (source, 5);
- case 6:
- return vec_gnb (source, 6);
- case 7:
- return vec_gnb (source, 7);
-
- default:
- /* Illegal value of stride */
- abort ();
- return 0;
- }
-}
-
-int
-main (int argc, char *argv [])
-{
- /* For result = 0xaaaa_0000_0000_0000, use:
- stride = 2: binary 1x0x_1x0x_1x0x_... = 0x8888_8888_0000_0000, 0
- stride = 4: binary 1xxx_0xxx_1xxx_0xxxx = 0x8080_8080_8080_8080, 0
-
- For result = 0xaaaa_aaaa_0000_0000, use:
- stride = 2: source = 0x8888_8888_8888_8888, 0x0 }
- stride = 4: source = { 0x8080_8080_8080_8080, 0x8080_8080_8080_8080 }
- */
-
- /* The last array element appears in the left-most (first) bit
- positions of the vector register. */
- vector unsigned int source_a = { 0, 0, 0, 0x88888888 };
- vector unsigned int source_b = { 0, 0, 0x80808080, 0x80808080 };
- vector unsigned int source_c = { 0, 0, 0x88888888, 0x88888888 };
- vector unsigned int source_d =
- { 0x80808080, 0x80808080, 0x80808080, 0x80808080 };
-
- unsigned long long int results [] =
- { 0xaaaa000000000000ull, 0xaaaa000000000000ull,
- 0xaaaaaaaa00000000ull, 0xaaaaaaaa00000000ull };
-
- if (do_vec_gnb (source_a, 2) != results [0])
- abort ();
- if (do_vec_gnb (source_b, 4) != results [1])
- abort ();
- if (do_vec_gnb (source_c, 2) != results [2])
- abort ();
- if (do_vec_gnb (source_d, 4) != results [3])
- abort ();
-
- return 0;
-}
-
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-gnb-6.c b/gcc/testsuite/gcc.target/powerpc/vec-gnb-6.c
deleted file mode 100644
index a6dc78a3e98..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vec-gnb-6.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mdejagnu-cpu=future" } */
-
-#include <altivec.h>
-
-extern void abort (void);
-
-/* This test is replicated for every different vector type since
- vec_gnb is polymorphic. */
-unsigned long long int
-do_vec_gnb (vector unsigned long long int source, int stride)
-{
- switch (stride)
- {
- case 2:
- return vec_gnb (source, 2);
- case 3:
- return vec_gnb (source, 3);
- case 4:
- return vec_gnb (source, 4);
- case 5:
- return vec_gnb (source, 5);
- case 6:
- return vec_gnb (source, 6);
- case 7:
- return vec_gnb (source, 7);
-
- default:
- /* Illegal value of stride */
- abort ();
- return 0;
- }
-}
-
-int
-main (int argc, char *argv [])
-{
- /* For result = 0xaaaa_0000_0000_0000, use:
- stride = 2: binary 1x0x_1x0x_1x0x_... = 0x8888_8888_0000_0000, 0
- stride = 4: binary 1xxx_0xxx_1xxx_0xxxx = 0x8080_8080_8080_8080, 0
-
- For result = 0xaaaa_aaaa_0000_0000, use:
- stride = 2: source = 0x8888_8888_8888_8888, 0x0 }
- stride = 4: source = { 0x8080_8080_8080_8080, 0x8080_8080_8080_8080 }
- */
-
- /* The last array element appears in the left-most (first) bit
- positions of the vector register. */
- vector unsigned long long int source_a = { 0, 0x8888888800000000ull };
- vector unsigned long long int source_b = { 0, 0x8080808080808080ull };
- vector unsigned long long int source_c = { 0, 0x8888888888888888ull };
- vector unsigned long long int source_d = { 0x8080808080808080ull,
- 0x8080808080808080ull };
-
- unsigned long long int results [] =
- { 0xaaaa000000000000ull, 0xaaaa000000000000ull,
- 0xaaaaaaaa00000000ull, 0xaaaaaaaa00000000ull };
-
- if (do_vec_gnb (source_a, 2) != results [0])
- abort ();
- if (do_vec_gnb (source_b, 4) != results [1])
- abort ();
- if (do_vec_gnb (source_c, 2) != results [2])
- abort ();
- if (do_vec_gnb (source_d, 4) != results [3])
- abort ();
-
- return 0;
-}
-
-/* { dg-final { scan-assembler {\mvgnb\M} } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-gnb-7.c b/gcc/testsuite/gcc.target/powerpc/vec-gnb-7.c
deleted file mode 100644
index bbacff986a0..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vec-gnb-7.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target powerpc_future_hw } */
-/* { dg-options "-mdejagnu-cpu=future" } */
-
-#include <altivec.h>
-
-extern void abort (void);
-
-/* This test is replicated for every different vector type since
- vec_gnb is polymorphic. */
-unsigned long long int
-do_vec_gnb (vector unsigned long long int source, int stride)
-{
- switch (stride)
- {
- case 2:
- return vec_gnb (source, 2);
- case 3:
- return vec_gnb (source, 3);
- case 4:
- return vec_gnb (source, 4);
- case 5:
- return vec_gnb (source, 5);
- case 6:
- return vec_gnb (source, 6);
- case 7:
- return vec_gnb (source, 7);
-
- default:
- /* Illegal value of stride */
- abort ();
- return 0;
- }
-}
-
-int
-main (int argc, char *argv [])
-{
- /* For result = 0xaaaa_0000_0000_0000, use:
- stride = 2: binary 1x0x_1x0x_1x0x_... = 0x8888_8888_0000_0000, 0
- stride = 4: binary 1xxx_0xxx_1xxx_0xxxx = 0x8080_8080_8080_8080, 0
-
- For result = 0xaaaa_aaaa_0000_0000, use:
- stride = 2: source = 0x8888_8888_8888_8888, 0x0 }
- stride = 4: source = { 0x8080_8080_8080_8080, 0x8080_8080_8080_8080 }
- */
-
- /* The last array element appears in the left-most (first) bit
- positions of the vector register. */
- vector unsigned long long int source_a = { 0, 0x8888888800000000ull };
- vector unsigned long long int source_b = { 0, 0x8080808080808080ull };
- vector unsigned long long int source_c = { 0, 0x8888888888888888ull };
- vector unsigned long long int source_d = { 0x8080808080808080ull,
- 0x8080808080808080ull };
-
- unsigned long long int results [] =
- { 0xaaaa000000000000ull, 0xaaaa000000000000ull,
- 0xaaaaaaaa00000000ull, 0xaaaaaaaa00000000ull };
-
- if (do_vec_gnb (source_a, 2) != results [0])
- abort ();
- if (do_vec_gnb (source_b, 4) != results [1])
- abort ();
- if (do_vec_gnb (source_c, 2) != results [2])
- abort ();
- if (do_vec_gnb (source_d, 4) != results [3])
- abort ();
-
- return 0;
-}
-
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-gnb-8.c b/gcc/testsuite/gcc.target/powerpc/vec-gnb-8.c
deleted file mode 100644
index 23c16e51d48..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vec-gnb-8.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mdejagnu-cpu=future" } */
-
-#include <altivec.h>
-
-extern void abort (void);
-
-/* This test is replicated for every different vector type since
- vec_gnb is polymorphic. */
-unsigned long long int
-do_vec_gnb (vector unsigned __int128 source, int stride)
-{
- switch (stride)
- {
- case 2:
- return vec_gnb (source, 2);
- case 3:
- return vec_gnb (source, 3);
- case 4:
- return vec_gnb (source, 4);
- case 5:
- return vec_gnb (source, 5);
- case 6:
- return vec_gnb (source, 6);
- case 7:
- return vec_gnb (source, 7);
-
- default:
- /* Illegal value of stride */
- abort ();
- return 0;
- }
-}
-
-int
-main (int argc, char *argv [])
-{
- /* For result = 0xaaaa_0000_0000_0000, use:
- stride = 2: binary 1x0x_1x0x_1x0x_... = 0x8888_8888_0000_0000, 0
- stride = 4: binary 1xxx_0xxx_1xxx_0xxxx = 0x8080_8080_8080_8080, 0
-
- For result = 0xaaaa_aaaa_0000_0000, use:
- stride = 2: source = 0x8888_8888_8888_8888, 0x0 }
- stride = 4: source = { 0x8080_8080_8080_8080, 0x8080_8080_8080_8080 }
- */
-
- /* The last array element appears in the left-most (first) bit
- positions of the vector register. */
- vector unsigned __int128 source_a =
- { ((unsigned __int128) 0x8888888800000000ull) << 64 };
- vector unsigned __int128 source_b =
- { ((unsigned __int128) 0x8080808080808080ull) << 64 };
- vector unsigned __int128 source_c =
- { ((unsigned __int128) 0x8888888888888888ull) << 64 };
- vector unsigned __int128 source_d =
- { 0x8080808080808080ull |
- ((unsigned __int128) 0x8080808080808080ull) << 64 };
-
- unsigned long long int results [] =
- { 0xaaaa000000000000ull, 0xaaaa000000000000ull,
- 0xaaaaaaaa00000000ull, 0xaaaaaaaa00000000ull };
-
- if (do_vec_gnb (source_a, 2) != results [0])
- abort ();
- if (do_vec_gnb (source_b, 4) != results [1])
- abort ();
- if (do_vec_gnb (source_c, 2) != results [2])
- abort ();
- if (do_vec_gnb (source_d, 4) != results [3])
- abort ();
-
- return 0;
-}
-
-/* { dg-final { scan-assembler {\mvgnb\M} } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-gnb-9.c b/gcc/testsuite/gcc.target/powerpc/vec-gnb-9.c
deleted file mode 100644
index 659e802d819..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vec-gnb-9.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target powerpc_future_hw } */
-/* { dg-options "-mdejagnu-cpu=future" } */
-
-#include <altivec.h>
-
-extern void abort (void);
-
-/* This test is replicated for every different vector type since
- vec_gnb is polymorphic. */
-unsigned long long int
-do_vec_gnb (vector unsigned __int128 source, int stride)
-{
- switch (stride)
- {
- case 2:
- return vec_gnb (source, 2);
- case 3:
- return vec_gnb (source, 3);
- case 4:
- return vec_gnb (source, 4);
- case 5:
- return vec_gnb (source, 5);
- case 6:
- return vec_gnb (source, 6);
- case 7:
- return vec_gnb (source, 7);
-
- default:
- /* Illegal value of stride */
- abort ();
- return 0;
- }
-}
-
-int
-main (int argc, char *argv [])
-{
- /* For result = 0xaaaa_0000_0000_0000, use:
- stride = 2: binary 1x0x_1x0x_1x0x_... = 0x8888_8888_0000_0000, 0
- stride = 4: binary 1xxx_0xxx_1xxx_0xxxx = 0x8080_8080_8080_8080, 0
-
- For result = 0xaaaa_aaaa_0000_0000, use:
- stride = 2: source = 0x8888_8888_8888_8888, 0x0 }
- stride = 4: source = { 0x8080_8080_8080_8080, 0x8080_8080_8080_8080 }
- */
-
- /* The last array element appears in the left-most (first) bit
- positions of the vector register. */
- vector unsigned __int128 source_a =
- { ((unsigned __int128) 0x8888888800000000ull) << 64 };
- vector unsigned __int128 source_b =
- { ((unsigned __int128) 0x8080808080808080ull) << 64 };
- vector unsigned __int128 source_c =
- { ((unsigned __int128) 0x8888888888888888ull) << 64 };
- vector unsigned __int128 source_d =
- { 0x8080808080808080ull |
- ((unsigned __int128) 0x8080808080808080ull) << 64 };
-
- unsigned long long int results [] =
- { 0xaaaa000000000000ull, 0xaaaa000000000000ull,
- 0xaaaaaaaa00000000ull, 0xaaaaaaaa00000000ull };
-
- if (do_vec_gnb (source_a, 2) != results [0])
- abort ();
- if (do_vec_gnb (source_b, 4) != results [1])
- abort ();
- if (do_vec_gnb (source_c, 2) != results [2])
- abort ();
- if (do_vec_gnb (source_d, 4) != results [3])
- abort ();
-
- return 0;
-}