@@ -138,7 +138,7 @@ _mm512_prefetch_i64scatter_ps (void *addr, __m512i index, int scale,
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, (long long const *) addr,
@@ -147,7 +147,7 @@ _mm512_mask_prefetch_i64scatter_pd (void *addr, __mmask16 mask,
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, (int const *) addr,
@@ -1461,7 +1461,7 @@ _mm256_mask_cmp_epi8_mask (__mmask16 __U, __m256i __X, __m256i __Y,
(__mmask32) __U);
}
-extern __inline __mmask16
+extern __inline __mmask32
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm256_cmp_epi8_mask (__m256i __X, __m256i __Y, const int __P)
{
@@ -1537,7 +1537,7 @@ _mm256_mask_cmp_epu8_mask (__mmask16 __U, __m256i __X, __m256i __Y,
(__mmask32) __U);
}
-extern __inline __mmask16
+extern __inline __mmask32
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm256_cmp_epu8_mask (__m256i __X, __m256i __Y, const int __P)
{
@@ -4306,7 +4306,7 @@ _mm_maskz_packus_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
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,
@@ -4349,7 +4349,7 @@ _mm_maskz_packs_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
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,
@@ -9042,7 +9042,7 @@ _mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
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,
@@ -1352,7 +1352,7 @@ _mm_extract_epi16 (__m128i const __A, int const __N)
extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_insert_epi16 (__m128i const __A, int const __D, int const __N)
{
- return (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)__A, __D, __N);
+ return (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)__A, (short int)__D, __N);
}
#else
#define _mm_extract_epi16(A, N) \
@@ -184,7 +184,7 @@ extern __inline int
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
__bsrq (long long __X)
{
- return __builtin_ia32_bsrdi (__X);
+ return (int)__builtin_ia32_bsrdi (__X);
}
/* 64bit bswap */
@@ -399,7 +399,7 @@ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __arti
_mm_insert_epi8 (__m128i __D, int __S, const int __N)
{
return (__m128i) __builtin_ia32_vec_set_v16qi ((__v16qi)__D,
- __S, __N);
+ (signed char)__S, __N);
}
extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
@@ -1037,7 +1037,7 @@ _m_pextrw (__m64 const __A, int const __N)
extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_insert_pi16 (__m64 const __A, int const __D, int const __N)
{
- return (__m64) __builtin_ia32_vec_set_v4hi ((__v4hi)__A, __D, __N);
+ return (__m64) __builtin_ia32_vec_set_v4hi ((__v4hi)__A, (short int)__D, __N);
}
extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
new file mode 100644
@@ -0,0 +1,4 @@
+/* { dg-do compile } */
+/* { dg-options "-mavx512f -mavx512er -mavx512cd -mavx512pf -mavx512vl -mavx512dq -mavx512bw -mavx512vbmi -mavx512ifma -Werror -Wsystem-headers -Wconversion -Wno-sign-conversion" } */
+
+#include <x86intrin.h>