From: carll Date: Fri, 14 Sep 2018 15:36:52 +0000 (+0000) Subject: gcc/ChangeLog: X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=79ebd71984d9552b3366cb2f488dd3f889a357e0;p=thirdparty%2Fgcc.git gcc/ChangeLog: 2018-09-14 Carl Love * config/rs6000/emmintrin.h: Add _MM_SHUFFLE2. * config/rs6000/xmmintrin.h: Add _MM_SHUFFLE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264317 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d3d8287baaea..f9736e1b32dc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-09-14 Carl Love + + * config/rs6000/emmintrin.h: Add _MM_SHUFFLE2. + * config/rs6000/xmmintrin.h: Add _MM_SHUFFLE. + 2018-09-14 Segher Boessenkool PR target/87224 diff --git a/gcc/config/rs6000/emmintrin.h b/gcc/config/rs6000/emmintrin.h index 412ece7355b8..aed1625871d5 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 43d03ea05919..11ecbd813702 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 /* Avoid collisions between altivec.h and strict adherence to C++ and