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 <p...@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? Segher