Message ID | 20181023083546.GE11625@tucnak |
---|---|
State | New |
Headers | show |
Series | Fix a couple of avx512* intrinsic prototypes (PR target/87674) | expand |
On Tue, Oct 23, 2018 at 10:35 AM Jakub Jelinek <jakub@redhat.com> wrote: > > Hi! > > For all these, the instructions use just 8-bits from mask register and > ICC prototypes as well as online Intel intrinsic documentation confirm that > too. > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? > > Not sure if we need to backport it, this isn't a wrong-code issue, the > important mask bits aren't lost in any way. > > 2018-10-23 Jakub Jelinek <jakub@redhat.com> > > PR target/87674 > * config/i386/avx512vlintrin.h (_mm_mask_mullo_epi32): Change type of > second argument from __mmask16 to __mmask8. > * config/i386/avx512vlbwintrin.h (_mm_mask_packus_epi32, > _mm_mask_packs_epi32): Likewise. > * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i64scatter_ps): > Likewise. > (_mm512_mask_prefetch_i64scatter_pd): Likewise. Formatting fix. OK. IMO, the patch is also safe for backports. Thanks, Uros. > --- gcc/config/i386/avx512vlintrin.h.jj 2018-10-22 09:28:21.843398728 +0200 > +++ gcc/config/i386/avx512vlintrin.h 2018-10-22 09:52:39.432092006 +0200 > @@ -9095,7 +9095,7 @@ _mm_maskz_mullo_epi32 (__mmask8 __M, __m > > extern __inline __m128i > __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) > -_mm_mask_mullo_epi32 (__m128i __W, __mmask16 __M, __m128i __A, > +_mm_mask_mullo_epi32 (__m128i __W, __mmask8 __M, __m128i __A, > __m128i __B) > { > return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A, > --- gcc/config/i386/avx512vlbwintrin.h.jj 2018-07-11 22:55:44.663456512 +0200 > +++ gcc/config/i386/avx512vlbwintrin.h 2018-10-22 09:55:24.784333238 +0200 > @@ -4346,7 +4346,7 @@ _mm_maskz_packus_epi32 (__mmask8 __M, __ > > extern __inline __m128i > __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) > -_mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A, > +_mm_mask_packus_epi32 (__m128i __W, __mmask8 __M, __m128i __A, > __m128i __B) > { > return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A, > @@ -4389,7 +4389,7 @@ _mm_maskz_packs_epi32 (__mmask8 __M, __m > > extern __inline __m128i > __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) > -_mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A, > +_mm_mask_packs_epi32 (__m128i __W, __mmask8 __M, __m128i __A, > __m128i __B) > { > return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A, > --- gcc/config/i386/avx512pfintrin.h.jj 2018-01-03 10:20:06.095535707 +0100 > +++ gcc/config/i386/avx512pfintrin.h 2018-10-22 09:49:52.647874664 +0200 > @@ -174,16 +174,16 @@ _mm512_prefetch_i64scatter_ps (void *__a > > extern __inline void > __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) > -_mm512_mask_prefetch_i64scatter_pd (void *__addr, __mmask16 __mask, > +_mm512_mask_prefetch_i64scatter_pd (void *__addr, __mmask8 __mask, > __m512i __index, int __scale, int __hint) > { > __builtin_ia32_scatterpfqpd (__mask, (__v8di) __index, __addr, __scale, > - __hint); > + __hint); > } > > extern __inline void > __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) > -_mm512_mask_prefetch_i64scatter_ps (void *__addr, __mmask16 __mask, > +_mm512_mask_prefetch_i64scatter_ps (void *__addr, __mmask8 __mask, > __m512i __index, int __scale, int __hint) > { > __builtin_ia32_scatterpfqps (__mask, (__v8di) __index, __addr, __scale, > > Jakub
--- gcc/config/i386/avx512vlintrin.h.jj 2018-10-22 09:28:21.843398728 +0200 +++ gcc/config/i386/avx512vlintrin.h 2018-10-22 09:52:39.432092006 +0200 @@ -9095,7 +9095,7 @@ _mm_maskz_mullo_epi32 (__mmask8 __M, __m extern __inline __m128i __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -_mm_mask_mullo_epi32 (__m128i __W, __mmask16 __M, __m128i __A, +_mm_mask_mullo_epi32 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A, --- gcc/config/i386/avx512vlbwintrin.h.jj 2018-07-11 22:55:44.663456512 +0200 +++ gcc/config/i386/avx512vlbwintrin.h 2018-10-22 09:55:24.784333238 +0200 @@ -4346,7 +4346,7 @@ _mm_maskz_packus_epi32 (__mmask8 __M, __ extern __inline __m128i __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -_mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A, +_mm_mask_packus_epi32 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A, @@ -4389,7 +4389,7 @@ _mm_maskz_packs_epi32 (__mmask8 __M, __m extern __inline __m128i __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -_mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A, +_mm_mask_packs_epi32 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A, --- gcc/config/i386/avx512pfintrin.h.jj 2018-01-03 10:20:06.095535707 +0100 +++ gcc/config/i386/avx512pfintrin.h 2018-10-22 09:49:52.647874664 +0200 @@ -174,16 +174,16 @@ _mm512_prefetch_i64scatter_ps (void *__a extern __inline void __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -_mm512_mask_prefetch_i64scatter_pd (void *__addr, __mmask16 __mask, +_mm512_mask_prefetch_i64scatter_pd (void *__addr, __mmask8 __mask, __m512i __index, int __scale, int __hint) { __builtin_ia32_scatterpfqpd (__mask, (__v8di) __index, __addr, __scale, - __hint); + __hint); } extern __inline void __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -_mm512_mask_prefetch_i64scatter_ps (void *__addr, __mmask16 __mask, +_mm512_mask_prefetch_i64scatter_ps (void *__addr, __mmask8 __mask, __m512i __index, int __scale, int __hint) { __builtin_ia32_scatterpfqps (__mask, (__v8di) __index, __addr, __scale,