[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