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
+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
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)
#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