Re: [PATCH 1/2] rs6000: Support _mm_insert_epi{8,32,64}

2020-09-25 Thread Segher Boessenkool
Hi! On Fri, Sep 25, 2020 at 09:07:46AM -0500, Paul A. Clarke wrote: > On Thu, Sep 24, 2020 at 06:22:10PM -0500, Segher Boessenkool wrote: > > > + result [(__N & 0b)] = __D; > > > > Hrm, GCC supports binary constants like this since 2007, so okay. But I > > have to wonder if this improves an

Re: [PATCH 1/2] rs6000: Support _mm_insert_epi{8,32,64}

2020-09-25 Thread Peter Bergner via Gcc-patches
On 9/24/20 6:22 PM, Segher Boessenkool wrote: >> + result [(__N & 0b)] = __D; > > Hrm, GCC supports binary constants like this since 2007, so okay. But I > have to wonder if this improves anything over hex (or decimal even!) > The parens are superfluous (and only hinder legibility), fwiw. +

Re: [PATCH 1/2] rs6000: Support _mm_insert_epi{8,32,64}

2020-09-25 Thread Paul A. Clarke via Gcc-patches
On Thu, Sep 24, 2020 at 06:22:10PM -0500, Segher Boessenkool wrote: > On Wed, Sep 23, 2020 at 05:12:44PM -0500, Paul A. Clarke wrote: > > +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, > > __artificial__)) > > +_mm_insert_epi8 (__m128i const __A, int const __D, int cons

Re: [PATCH 1/2] rs6000: Support _mm_insert_epi{8,32,64}

2020-09-24 Thread Segher Boessenkool
Hi! On Wed, Sep 23, 2020 at 05:12:44PM -0500, Paul A. Clarke wrote: > +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, > __artificial__)) > +_mm_insert_epi8 (__m128i const __A, int const __D, int const __N) > +{ > + __v16qi result = (__v16qi)__A; > + > + result [(__N &

[PATCH 1/2] rs6000: Support _mm_insert_epi{8,32,64}

2020-09-23 Thread Paul A. Clarke via Gcc-patches
Add compatibility implementations for SSE4.1 intrinsics _mm_insert_epi8, _mm_insert_epi32, _mm_insert_epi64. 2020-09-23 Paul A. Clarke gcc/ * config/rs6000/smmintrin.h (_mm_insert_epi8): New. (_mm_insert_epi32): New. (_mm_insert_epi64): New. --- gcc/config/rs6000/smmin