]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: dated 2017-01-26 and 2017-01-25 respectively
authorCarl Love <cel@us.ibm.com>
Mon, 6 Feb 2017 17:40:29 +0000 (17:40 +0000)
committerCarl Love <carll@gcc.gnu.org>
Mon, 6 Feb 2017 17:40:29 +0000 (17:40 +0000)
gcc/ChangeLog:

2017-02-06  Carl Love  <cel@us.ibm.com>

        Backport of two commits from mainline, r244943 and r244904,
        dated 2017-01-26 and 2017-01-25 respectively

        * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
        of entries for ALTIVEC_BUILTIN_VEC_PACKS.  Remove bogus entries
        for P8V_BUILTIN_VEC_VGBBD.

gcc/testsuite/ChangeLog:

2017-02-06  Carl Love  <cel@us.ibm.com>
        * gcc.target/powerpc/builtins-3-p8.c:  Add new testfile for missing
        vec_packs built-in tests.

From-SVN: r245212

gcc/ChangeLog
gcc/config/rs6000/rs6000-c.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c [new file with mode: 0644]

index 3b640ca9bee8525c9799ebd8fa31f0896cd19c46..e57f6e19318ca0ecba706d830bb0e73a82428ffb 100644 (file)
@@ -1,3 +1,12 @@
+2017-02-06  Carl Love  <cel@us.ibm.com>
+
+       Backport of two commits from mainline, r244943 and r244904,
+       dated 2017-01-26 and 2017-01-25 respectively
+
+       * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
+       of entries for ALTIVEC_BUILTIN_VEC_PACKS.  Remove bogus entries
+       for P8V_BUILTIN_VEC_VGBBD.
+
 2017-02-03  Maxim Ostapenko  <m.ostapenko@samsung.com>
 
        PR lto/79061
index fbb8e2d4eb8ea05bf3924d8ae1865bee3215f926..33cb27f083dbc509c5b3b540c5d11fbf69cadea8 100644 (file)
@@ -2065,14 +2065,14 @@ const struct altivec_builtin_types altivec_overloaded_builtins[] = {
     RS6000_BTI_unsigned_V8HI, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V4SI, 0 },
   { ALTIVEC_BUILTIN_VEC_PACKS, ALTIVEC_BUILTIN_VPKSWSS,
     RS6000_BTI_V8HI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 },
-  { ALTIVEC_BUILTIN_VEC_VPKSWSS, ALTIVEC_BUILTIN_VPKSWSS,
-    RS6000_BTI_V8HI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 },
-  { ALTIVEC_BUILTIN_VEC_VPKUWUS, ALTIVEC_BUILTIN_VPKUWUS,
-    RS6000_BTI_unsigned_V8HI, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V4SI, 0 },
   { ALTIVEC_BUILTIN_VEC_PACKS, P8V_BUILTIN_VPKUDUS,
     RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V2DI, RS6000_BTI_unsigned_V2DI, 0 },
   { ALTIVEC_BUILTIN_VEC_PACKS, P8V_BUILTIN_VPKSDSS,
     RS6000_BTI_V4SI, RS6000_BTI_V2DI, RS6000_BTI_V2DI, 0 },
+  { ALTIVEC_BUILTIN_VEC_VPKSWSS, ALTIVEC_BUILTIN_VPKSWSS,
+    RS6000_BTI_V8HI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 },
+  { ALTIVEC_BUILTIN_VEC_VPKUWUS, ALTIVEC_BUILTIN_VPKUWUS,
+    RS6000_BTI_unsigned_V8HI, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V4SI, 0 },
   { ALTIVEC_BUILTIN_VEC_VPKSHSS, ALTIVEC_BUILTIN_VPKSHSS,
     RS6000_BTI_V16QI, RS6000_BTI_V8HI, RS6000_BTI_V8HI, 0 },
   { ALTIVEC_BUILTIN_VEC_VPKUHUS, ALTIVEC_BUILTIN_VPKUHUS,
@@ -4196,11 +4196,6 @@ const struct altivec_builtin_types altivec_overloaded_builtins[] = {
   { P8V_BUILTIN_VEC_VUPKLSW, P8V_BUILTIN_VUPKLSW,
     RS6000_BTI_bool_V2DI, RS6000_BTI_bool_V4SI, 0, 0 },
 
-  { P8V_BUILTIN_VEC_VGBBD, P8V_BUILTIN_VGBBD,
-    RS6000_BTI_V16QI, 0, 0, 0 },
-  { P8V_BUILTIN_VEC_VGBBD, P8V_BUILTIN_VGBBD,
-    RS6000_BTI_unsigned_V16QI, 0, 0, 0 },
-
   /* Crypto builtins.  */
   { CRYPTO_BUILTIN_VPERMXOR, CRYPTO_BUILTIN_VPERMXOR_V16QI,
     RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI,
index c48f28269d02c71264e538d486395bbc675ef5c2..8eb2ec6301b63c95e34e8b4dde97d68314bb7ece 100644 (file)
@@ -1,3 +1,7 @@
+2017-02-06  Carl Love  <cel@us.ibm.com>
+       * gcc.target/powerpc/builtins-3-p8.c:  Add new testfile for missing
+       vec_packs built-in tests.
+
 2017-02-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        Backport from mainline
diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c b/gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c
new file mode 100644 (file)
index 0000000..2c06ea7
--- /dev/null
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-options "-mcpu=power8" } */
+
+#include <altivec.h>
+
+vector signed int
+test_vsi_packs_vsll_vsll (vector signed long long x,
+                          vector signed long long y)
+{
+  return vec_packs (x, y);
+}
+
+vector unsigned int
+test_vui_packs_vull_vull (vector unsigned long long x,
+                          vector unsigned long long y)
+{
+  return vec_packs (x, y);
+}
+
+/* Expected test results:
+     test_vsi_packs_vsll_vsll                  1 vpksdss
+     test_vui_packs_vull_vull                  1 vpkudus */
+
+/* { dg-final { scan-assembler-times "vpksdss"  1 } } */
+/* { dg-final { scan-assembler-times "vpkudus"  1 } } */