--- Begin Message ---
This has a simple fix that I have tested on power8 and Seurer are
tested on power9.

While there may be a more elegent coding for the require casts, this is
the simplest change, considering the current stage.

2018-02-09  Steven Munroe  <munro...@gcc.gnu.org>

        * config/rs6000/mmintrin.h (_mm_cmpeq_pi32 [_ARCH_PWR9]):
        Cast vec_cmpeq result to correct type.
        * config/rs6000/mmintrin.h (_mm_cmpgt_pi32 [_ARCH_PWR9]):
        Cast vec_cmpgt result to correct type.

Index: gcc/config/rs6000/mmintrin.h
===================================================================
--- gcc/config/rs6000/mmintrin.h        (revision 257533)
+++ gcc/config/rs6000/mmintrin.h        (working copy)
@@ -854,7 +854,7 @@
 
   a = (__vector signed int)vec_splats (__m1);
   b = (__vector signed int)vec_splats (__m2);
-  c = (__vector signed short)vec_cmpeq (a, b);
+  c = (__vector signed int)vec_cmpeq (a, b);
   return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0));
 #else
   __m64_union m1, m2, res;
@@ -883,7 +883,7 @@
 
   a = (__vector signed int)vec_splats (__m1);
   b = (__vector signed int)vec_splats (__m2);
-  c = (__vector signed short)vec_cmpgt (a, b);
+  c = (__vector signed int)vec_cmpgt (a, b);
   return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0));
 #else
   __m64_union m1, m2, res;

ready to commit?

--- End Message ---

Reply via email to