aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorCarl Love <cel@us.ibm.com>2018-09-14 15:36:52 +0000
committerCarl Love <carll@gcc.gnu.org>2018-09-14 15:36:52 +0000
commit8cafacb5fe6c8809df154021823fa1b3c0edcbfe (patch)
tree6facc3cb174fad074a56bb59dfd4731fb2fc3941 /gcc
parentdc928512d21c7205895f03fc1ce18484512cd94a (diff)
downloadgcc-8cafacb5fe6c8809df154021823fa1b3c0edcbfe.zip
gcc-8cafacb5fe6c8809df154021823fa1b3c0edcbfe.tar.gz
gcc-8cafacb5fe6c8809df154021823fa1b3c0edcbfe.tar.bz2
emmintrin.h: Add _MM_SHUFFLE2.
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/emmintrin.h3
-rw-r--r--gcc/config/rs6000/xmmintrin.h3
3 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d3d8287..f9736e1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/rs6000/emmintrin.h b/gcc/config/rs6000/emmintrin.h
index 412ece7..aed1625 100644
--- a/gcc/config/rs6000/emmintrin.h
+++ b/gcc/config/rs6000/emmintrin.h
@@ -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)
diff --git a/gcc/config/rs6000/xmmintrin.h b/gcc/config/rs6000/xmmintrin.h
index 43d03ea..11ecbd8 100644
--- a/gcc/config/rs6000/xmmintrin.h
+++ b/gcc/config/rs6000/xmmintrin.h
@@ -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