[PATCH v2] [rs6000] Add _mm_blend_epi16 and _mm_blendv_epi8

Segher Boessenkool segher@kernel.crashing.org
Mon Jul 22 15:40:00 GMT 2019


On Mon, Jul 22, 2019 at 08:28:33AM -0500, Bill Schmidt wrote:
> On 7/22/19 12:58 AM, Segher Boessenkool wrote:
> > On Sun, Jul 21, 2019 at 05:22:19PM -0500, Paul Clarke wrote:
> >> Add compatibility implementations of _mm_blend_epi16 and _mm_blendv_epi8
> >> intrinsics.
> >>
> >> Respective test cases are copied almost verbatim (minor changes to
> >> the dejagnu head lines) from i386.
> >>
> >> 2019-07-21  Paul A. Clarke  <pc@us.ibm.com>
> >>
> >> [gcc]
> >>
> >> 	* config/rs6000/smmintrin.h (_mm_blend_epi16): New.
> >> 	(_mm_blendv_epi8): New.
> >>
> >> [gcc/testsuite]
> >>
> >> 	* gcc.target/powerpc/sse4_1-check.h: New.
> >> 	* gcc.target/powerpc/sse4_1-pblendvb.c: New.
> >> 	* gcc.target/powerpc/sse4_1-pblendw.c: New.
> >> 	* gcc.target/powerpc/sse4_1-pblendw-2.c: New.
> >>
> >> Tested on 64bit LE, 64bit and 32bit BE.
> >>
> >> v2: algorithm improvements as suggested by Segher.  Note that _mm_blend_epi16,
> >> which now uses vec_gb, also requires the use of vec_unpackh to handle the
> >> 16 bit elements.  It also requires a vec_reve on big endian, due to the endian
> >> characteristics of vec_gb.  Both are still much shorter.  Thanks, Segher!
> > Ah yes, I missed those "details".  Glad to hear it still helps.
> >
> > Approved for trunk, please apply.  Thanks!
> >
> > Do we need/want backports for this?
> 
> IMHO, yes, it would be really nice to have this in GCC 9.2 at least.

Approved for GCC 9, then.  Thanks,


Segher



More information about the Gcc-patches mailing list