Hi!

On Mon, Aug 23, 2021 at 02:03:10PM -0500, Paul A. Clarke wrote:
> Some compatibility implementations of x86 intrinsics include
> Power intrinsics which require POWER8.  Guard them.

> emmintrin.h:
> - _mm_cmpord_pd: Remove code which was ostensibly for pre-POWER8,
>   but which indeed depended on POWER8 (vec_cmpgt(v2du)/vcmpgtud).
>   The "POWER8" version works fine on pre-POWER8.

Huh.  It just generates xvcmpeqdp I suppose?

> - _mm_mul_epu32: vec_mule(v4su) uses vmuleuw.

Did this fail on p7?  If not, add a test that *does*?

> pmmintrin.h:
> - _mm_movehdup_ps: vec_mergeo(v4su) uses vmrgow.
> - _mm_moveldup_ps: vec_mergee(v4su) uses vmrgew.

Similar.

> smmintrin.h:
> - _mm_cmpeq_epi64: vec_cmpeq(v2di) uses vcmpequd.
> - _mm_mul_epi32: vec_mule(v4si) uses vmuluwm.
> - _mm_cmpgt_epi64: vec_cmpgt(v2di) uses vcmpgtsd.
> tmmintrin.h:
> - _mm_sign_epi8: vec_neg(v4si) uses vsububm.
> - _mm_sign_epi16: vec_neg(v4si) uses vsubuhm.
> - _mm_sign_epi32: vec_neg(v4si) uses vsubuwm.
>   Note that the above three could actually be supported pre-POWER8,
>   but current GCC does not support them before POWER8.
> - _mm_sign_pi8: depends on _mm_sign_epi8.
> - _mm_sign_pi16: depends on _mm_sign_epi16.
> - _mm_sign_pi32: depends on _mm_sign_epi32.

And more.

> gcc
>       PR target/101893

This is a different bug (the vgbdd one)?

All looks good, but we need such failing tests :-)


Segher

Reply via email to