Hi!

On Mon, Aug 23, 2021 at 02:03:08PM -0500, Paul A. Clarke wrote:
> gcc
>       * config/rs6000/smmintrin.h (_mm_cvtepi8_epi16, _mm_cvtepi8_epi32,
>       _mm_cvtepi8_epi64, _mm_cvtepi16_epi32, _mm_cvtepi16_epi64,
>       _mm_cvtepi32_epi64, _mm_cvtepu8_epi16, _mm_cvtepu8_epi32,
>       _mm_cvtepu8_epi64, _mm_cvtepu16_epi32, _mm_cvtepu16_epi64,
>       _mm_cvtepu32_epi64): New.
> 
> gcc/testsuite
>       * gcc.target/powerpc/sse4_1-pmovsxbd.c: Copy from gcc.target/i386,
>       adjust dg directives to suit.
>       * gcc.target/powerpc/sse4_1-pmovsxbq.c: Same.
>       * gcc.target/powerpc/sse4_1-pmovsxbw.c: Same.
>       * gcc.target/powerpc/sse4_1-pmovsxdq.c: Same.
>       * gcc.target/powerpc/sse4_1-pmovsxwd.c: Same.
>       * gcc.target/powerpc/sse4_1-pmovsxwq.c: Same.
>       * gcc.target/powerpc/sse4_1-pmovzxbd.c: Same.
>       * gcc.target/powerpc/sse4_1-pmovzxbq.c: Same.
>       * gcc.target/powerpc/sse4_1-pmovzxbw.c: Same.
>       * gcc.target/powerpc/sse4_1-pmovzxdq.c: Same.
>       * gcc.target/powerpc/sse4_1-pmovzxwd.c: Same.
>       * gcc.target/powerpc/sse4_1-pmovzxwq.c: Same.

> +extern __inline __m128i
> +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
> +_mm_cvtepi8_epi16 (__m128i __A)
> +{
> +  return (__m128i) vec_unpackh ((__v16qi)__A);
> +}

This strange mixture of sometimes writing a cast with a space and
sometimes without one is...  strange :-)

Having up to three unpacks in a row seems suboptimal.  But it certainly
is aesthetically pleasing :-)

> +/* { dg-do run } */
> +/* { dg-require-effective-target powerpc_vsx_ok } */
> +/* { dg-options "-O2 -mvsx" } */

Same as before here too (needs vsx_hw).

Okay for trunk with that fixed.  Thanks!


Segher

Reply via email to