]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
emmintrin.h: Add _MM_SHUFFLE2.
authorCarl Love <cel@us.ibm.com>
Fri, 14 Sep 2018 15:36:52 +0000 (15:36 +0000)
committerCarl Love <carll@gcc.gnu.org>
Fri, 14 Sep 2018 15:36:52 +0000 (15:36 +0000)
gcc/ChangeLog:

2018-09-14  Carl Love  <cel@us.ibm.com>

* config/rs6000/emmintrin.h: Add _MM_SHUFFLE2.
* config/rs6000/xmmintrin.h: Add _MM_SHUFFLE.

From-SVN: r264317

gcc/ChangeLog
gcc/config/rs6000/emmintrin.h
gcc/config/rs6000/xmmintrin.h

index d3d8287baaea254b90aa2da1b32249f106aa5317..f9736e1b32dc0de5a18ed79f69063094b1a4c1ef 100644 (file)
@@ -1,3 +1,8 @@
+2018-09-14  Carl Love  <cel@us.ibm.com>
+
+       * config/rs6000/emmintrin.h: Add _MM_SHUFFLE2.
+       * config/rs6000/xmmintrin.h: Add _MM_SHUFFLE.
+
 2018-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
 
        PR target/87224
index 412ece7355b83fe1d7cfb04b5ae6c5aaead54ef4..aed1625871d568781e23bf344348e7d4035441b1 100644 (file)
@@ -85,6 +85,9 @@ typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
 typedef long long __m128i_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
 typedef double __m128d_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
 
+/* Define two value permute mask */
+#define _MM_SHUFFLE2(x,y) (((x) << 1) | (y))
+
 /* Create a vector with element 0 as F and the rest zero.  */
 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 _mm_set_sd (double __F)
index 43d03ea059198dae64cc3924658ab81a4243ad0c..11ecbd813702d74fe9d733269a40215c2c898ced 100644 (file)
@@ -57,6 +57,9 @@
 #ifndef _XMMINTRIN_H_INCLUDED
 #define _XMMINTRIN_H_INCLUDED
 
+/* Define four value permute mask */
+#define _MM_SHUFFLE(w,x,y,z) (((w) << 6) | ((x) << 4) | ((y) << 2) | (z))
+
 #include <altivec.h>
 
 /* Avoid collisions between altivec.h and strict adherence to C++ and