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

Reply via email to