https://gcc.gnu.org/g:e35327242317282a4ff5e2d933719828a0285e81

commit r15-8458-ge35327242317282a4ff5e2d933719828a0285e81
Author: Hu, Lin1 <lin1...@intel.com>
Date:   Thu Mar 13 16:36:15 2025 +0800

    i386: Add AVX10.2 SAT CVT Intrinsics without Rounding Control
    
    gcc/ChangeLog:
    
            * config/i386/avx10_2-512satcvtintrin.h: Add new intrinsics.
            * config/i386/avx10_2satcvtintrin.h: Ditto.
            * config/i386/i386-builtin-types.def:
            Add DEF_FUNCTION_TYPE (V32HI, V32HF, V32HI, USI),
            (V16SI, V16SF, V16SI, UHI), (V8DI, V8SF, V8DI, UQI),
            (V8DI, V8DF, V8DI, UQI), (V8SI, V8DF, V8SI, UQI).
            * config/i386/i386-builtin.def: Add new builtins.
            * config/i386/i386-expand.cc: Handle V16SI_FTYPE_V16SF_V16SI_UHI,
            V32HI_FTYPE_V32HF_V32HI_USI, V8DI_FTYPE_V8SF_V8DI_UQI,
            V8DI_FTYPE_V8DF_V8DI_UQI, V8SI_FTYPE_V8DF_V8SI_UQI.

Diff:
---
 gcc/config/i386/avx10_2-512satcvtintrin.h | 496 ++++++++++++++++++++++++++
 gcc/config/i386/avx10_2satcvtintrin.h     | 560 ++++++++++++++++++++++++++++++
 gcc/config/i386/i386-builtin-types.def    |   5 +
 gcc/config/i386/i386-builtin.def          |  32 ++
 gcc/config/i386/i386-expand.cc            |   5 +
 5 files changed, 1098 insertions(+)

diff --git a/gcc/config/i386/avx10_2-512satcvtintrin.h 
b/gcc/config/i386/avx10_2-512satcvtintrin.h
index a08f98c92a0f..1cef1dae0b12 100644
--- a/gcc/config/i386/avx10_2-512satcvtintrin.h
+++ b/gcc/config/i386/avx10_2-512satcvtintrin.h
@@ -157,6 +157,502 @@ _mm512_maskz_ipcvttbf16_epu8 (__mmask32 __U, __m512bh __A)
                                          (__mmask32) __U);
 }
 
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_ipcvtph_epi8 (__m512h __A)
+{
+  return
+    (__m512i) __builtin_ia32_cvtph2ibs512_mask ((__v32hf) __A,
+                                               (__v32hi)
+                                               _mm512_undefined_si512 (),
+                                               (__mmask32) -1);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_ipcvtph_epi8 (__m512i __W, __mmask32 __U, __m512h __A)
+{
+  return (__m512i) __builtin_ia32_cvtph2ibs512_mask ((__v32hf) __A,
+                                                    (__v32hi) __W,
+                                                    (__mmask32) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_ipcvtph_epi8 (__mmask32 __U, __m512h __A)
+{
+  return
+    (__m512i) __builtin_ia32_cvtph2ibs512_mask ((__v32hf) __A,
+                                               (__v32hi)
+                                               _mm512_setzero_si512 (),
+                                               (__mmask32) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_ipcvtph_epu8 (__m512h __A)
+{
+  return
+    (__m512i) __builtin_ia32_cvtph2iubs512_mask ((__v32hf) __A,
+                                                (__v32hi)
+                                                _mm512_undefined_si512 (),
+                                                (__mmask32) -1);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_ipcvtph_epu8 (__m512i __W, __mmask32 __U, __m512h __A)
+{
+  return (__m512i) __builtin_ia32_cvtph2iubs512_mask ((__v32hf) __A,
+                                                     (__v32hi) __W,
+                                                     (__mmask32) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_ipcvtph_epu8 (__mmask32 __U, __m512h __A)
+{
+  return
+    (__m512i) __builtin_ia32_cvtph2iubs512_mask ((__v32hf) __A,
+                                                (__v32hi)
+                                                _mm512_setzero_si512 (),
+                                                (__mmask32) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_ipcvtps_epi8 (__m512 __A)
+{
+  return
+    (__m512i) __builtin_ia32_cvtps2ibs512_mask ((__v16sf) __A,
+                                               (__v16si)
+                                               _mm512_undefined_si512 (),
+                                               (__mmask16) -1);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_ipcvtps_epi8 (__m512i __W, __mmask16 __U, __m512 __A)
+{
+  return (__m512i) __builtin_ia32_cvtps2ibs512_mask ((__v16sf) __A,
+                                                    (__v16si) __W,
+                                                    (__mmask16) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_ipcvtps_epi8 (__mmask16 __U, __m512 __A)
+{
+  return
+    (__m512i) __builtin_ia32_cvtps2ibs512_mask ((__v16sf) __A,
+                                               (__v16si)
+                                               _mm512_setzero_si512 (),
+                                               (__mmask16) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_ipcvtps_epu8 (__m512 __A)
+{
+  return
+    (__m512i) __builtin_ia32_cvtps2iubs512_mask ((__v16sf) __A,
+                                                (__v16si)
+                                                _mm512_undefined_si512 (),
+                                                (__mmask16) -1);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_ipcvtps_epu8 (__m512i __W, __mmask16 __U, __m512 __A)
+{
+  return (__m512i) __builtin_ia32_cvtps2iubs512_mask ((__v16sf) __A,
+                                                     (__v16si) __W,
+                                                     (__mmask16) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_ipcvtps_epu8 (__mmask16 __U, __m512 __A)
+{
+  return
+    (__m512i) __builtin_ia32_cvtps2iubs512_mask ((__v16sf) __A,
+                                                (__v16si)
+                                                _mm512_setzero_si512 (),
+                                                (__mmask16) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_ipcvttph_epi8 (__m512h __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttph2ibs512_mask ((__v32hf) __A,
+                                      (__v32hi)
+                                      _mm512_undefined_si512 (),
+                                      (__mmask32) -1);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_ipcvttph_epi8 (__m512i __W, __mmask32 __U, __m512h __A)
+{
+  return (__m512i) __builtin_ia32_cvttph2ibs512_mask ((__v32hf) __A,
+                                                     (__v32hi) __W,
+                                                     (__mmask32) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_ipcvttph_epi8 (__mmask32 __U, __m512h __A)
+{
+  return
+    (__m512i) __builtin_ia32_cvttph2ibs512_mask ((__v32hf) __A,
+                                                (__v32hi)
+                                                _mm512_setzero_si512 (),
+                                                (__mmask32) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_ipcvttph_epu8 (__m512h __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttph2iubs512_mask ((__v32hf) __A,
+                                       (__v32hi)
+                                       _mm512_undefined_si512 (),
+                                       (__mmask32) -1);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_ipcvttph_epu8 (__m512i __W, __mmask32 __U, __m512h __A)
+{
+  return (__m512i) __builtin_ia32_cvttph2iubs512_mask ((__v32hf) __A,
+                                                      (__v32hi) __W,
+                                                      (__mmask32) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_ipcvttph_epu8 (__mmask32 __U, __m512h __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttph2iubs512_mask ((__v32hf) __A,
+                                       (__v32hi)
+                                       _mm512_setzero_si512 (),
+                                       (__mmask32) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_ipcvttps_epi8 (__m512 __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttps2ibs512_mask ((__v16sf) __A,
+                                      (__v16si)
+                                      _mm512_undefined_si512 (),
+                                      (__mmask16) -1);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_ipcvttps_epi8 (__m512i __W, __mmask16 __U, __m512 __A)
+{
+  return (__m512i) __builtin_ia32_cvttps2ibs512_mask ((__v16sf) __A,
+                                                     (__v16si) __W,
+                                                     (__mmask16) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_ipcvttps_epi8 (__mmask16 __U, __m512 __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttps2ibs512_mask ((__v16sf) __A,
+                                      (__v16si)
+                                      _mm512_setzero_si512 (),
+                                      (__mmask16) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_ipcvttps_epu8 (__m512 __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttps2iubs512_mask ((__v16sf) __A,
+                                       (__v16si)
+                                       _mm512_undefined_si512 (),
+                                       (__mmask16) -1);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_ipcvttps_epu8 (__m512i __W, __mmask16 __U, __m512 __A)
+{
+  return (__m512i) __builtin_ia32_cvttps2iubs512_mask ((__v16sf) __A,
+                                                      (__v16si) __W,
+                                                      (__mmask16) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_ipcvttps_epu8 (__mmask16 __U, __m512 __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttps2iubs512_mask ((__v16sf) __A,
+                                       (__v16si)
+                                       _mm512_setzero_si512 (),
+                                       (__mmask16) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_cvttspd_epi32 (__m512d __A)
+{
+  return (__m256i)
+    __builtin_ia32_cvttpd2dqs512_mask ((__v8df) __A,
+                                      (__v8si)
+                                      _mm256_undefined_si256 (),
+                                      (__mmask8) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_cvttspd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
+{
+  return (__m256i) __builtin_ia32_cvttpd2dqs512_mask ((__v8df) __A,
+                                                     (__v8si) __W,
+                                                     (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_cvttspd_epi32 (__mmask8 __U, __m512d __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvttpd2dqs512_mask ((__v8df) __A,
+                                                (__v8si)
+                                                _mm256_setzero_si256 (),
+                                                (__mmask8) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_cvttspd_epi64 (__m512d __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttpd2qqs512_mask ((__v8df) __A,
+                                      (__v8di)
+                                      _mm512_undefined_si512 (),
+                                      (__mmask8) -1);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_cvttspd_epi64 (__m512i __W, __mmask8 __U, __m512d __A)
+{
+  return (__m512i) __builtin_ia32_cvttpd2qqs512_mask ((__v8df) __A,
+                                                     (__v8di) __W,
+                                                     (__mmask8) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_cvttspd_epi64 (__mmask8 __U, __m512d __A)
+{
+  return
+    (__m512i) __builtin_ia32_cvttpd2qqs512_mask ((__v8df) __A,
+                                                (__v8di)
+                                                _mm512_setzero_si512 (),
+                                                (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_cvttspd_epu32 (__m512d __A)
+{
+  return (__m256i)
+    __builtin_ia32_cvttpd2udqs512_mask ((__v8df) __A,
+                                       (__v8si)
+                                       _mm256_undefined_si256 (),
+                                       (__mmask8) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_cvttspd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
+{
+  return (__m256i) __builtin_ia32_cvttpd2udqs512_mask ((__v8df) __A,
+                                                      (__v8si) __W,
+                                                      (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_cvttspd_epu32 (__mmask8 __U, __m512d __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvttpd2udqs512_mask ((__v8df) __A,
+                                                 (__v8si)
+                                                 _mm256_setzero_si256 (),
+                                                 (__mmask8) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_cvttspd_epu64 (__m512d __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttpd2uqqs512_mask ((__v8df) __A,
+                                       (__v8di)
+                                       _mm512_undefined_si512 (),
+                                       (__mmask8) -1);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_cvttspd_epu64 (__m512i __W, __mmask8 __U, __m512d __A)
+{
+  return (__m512i) __builtin_ia32_cvttpd2uqqs512_mask ((__v8df) __A,
+                                                      (__v8di) __W,
+                                                      (__mmask8) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_cvttspd_epu64 (__mmask8 __U, __m512d __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttpd2uqqs512_mask ((__v8df) __A,
+                                       (__v8di)
+                                       _mm512_setzero_si512 (),
+                                       (__mmask8) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_cvttsps_epi32 (__m512 __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttps2dqs512_mask ((__v16sf) __A,
+                                      (__v16si)
+                                      _mm512_undefined_si512 (),
+                                      (__mmask16) -1);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_cvttsps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
+{
+  return (__m512i) __builtin_ia32_cvttps2dqs512_mask ((__v16sf) __A,
+                                                     (__v16si) __W,
+                                                     (__mmask16) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_cvttsps_epi32 (__mmask16 __U, __m512 __A)
+{
+  return
+    (__m512i) __builtin_ia32_cvttps2dqs512_mask ((__v16sf) __A,
+                                                (__v16si)
+                                                _mm512_setzero_si512 (),
+                                                (__mmask16) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_cvttsps_epi64 (__m256 __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttps2qqs512_mask ((__v8sf) __A,
+                                      (__v8di)
+                                      _mm512_undefined_si512 (),
+                                      (__mmask8) -1);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_cvttsps_epi64 (__m512i __W, __mmask8 __U, __m256 __A)
+{
+  return (__m512i) __builtin_ia32_cvttps2qqs512_mask ((__v8sf) __A,
+                                                     (__v8di) __W,
+                                                     (__mmask8) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_cvttsps_epi64 (__mmask8 __U, __m256 __A)
+{
+  return
+    (__m512i) __builtin_ia32_cvttps2qqs512_mask ((__v8sf) __A,
+                                                (__v8di)
+                                                _mm512_setzero_si512 (),
+                                                (__mmask8) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_cvttsps_epu32 (__m512 __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttps2udqs512_mask ((__v16sf) __A,
+                                       (__v16si)
+                                       _mm512_undefined_si512 (),
+                                       (__mmask16) -1);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_cvttsps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
+{
+  return (__m512i) __builtin_ia32_cvttps2udqs512_mask ((__v16sf) __A,
+                                                      (__v16si) __W,
+                                                      (__mmask16) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_cvttsps_epu32 (__mmask16 __U, __m512 __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttps2udqs512_mask ((__v16sf) __A,
+                                       (__v16si)
+                                       _mm512_setzero_si512 (),
+                                       (__mmask16) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_cvttsps_epu64 (__m256 __A)
+{
+  return (__m512i)
+    __builtin_ia32_cvttps2uqqs512_mask ((__v8sf) __A,
+                                       (__v8di)
+                                       _mm512_undefined_si512 (),
+                                       (__mmask8) -1);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_mask_cvttsps_epu64 (__m512i __W, __mmask8 __U, __m256 __A)
+{
+  return (__m512i) __builtin_ia32_cvttps2uqqs512_mask ((__v8sf) __A,
+                                                      (__v8di) __W,
+                                                      (__mmask8) __U);
+}
+
+extern __inline __m512i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm512_maskz_cvttsps_epu64 (__mmask8 __U, __m256 __A)
+{
+  return
+    (__m512i) __builtin_ia32_cvttps2uqqs512_mask ((__v8sf) __A,
+                                                 (__v8di)
+                                                 _mm512_setzero_si512 (),
+                                                 (__mmask8) __U);
+}
+
 #ifdef __OPTIMIZE__
 extern __inline __m512i
 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
diff --git a/gcc/config/i386/avx10_2satcvtintrin.h 
b/gcc/config/i386/avx10_2satcvtintrin.h
index c389f1a2728c..9588bb152fc5 100644
--- a/gcc/config/i386/avx10_2satcvtintrin.h
+++ b/gcc/config/i386/avx10_2satcvtintrin.h
@@ -738,6 +738,534 @@ _mm_maskz_cvttsps_epu64 (__mmask8 __U, __m128 __A)
                                                       (__mmask8) __U);
 }
 
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_ipcvtph_epi8 (__m256h __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvtph2ibs256_mask ((__v16hf) __A,
+                                               (__v16hi)
+                                               _mm256_undefined_si256 (),
+                                               (__mmask16) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_ipcvtph_epi8 (__m256i __W, __mmask16 __U, __m256h __A)
+{
+  return (__m256i) __builtin_ia32_cvtph2ibs256_mask ((__v16hf) __A,
+                                                    (__v16hi) __W,
+                                                    (__mmask16) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_ipcvtph_epi8 (__mmask16 __U, __m256h __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvtph2ibs256_mask ((__v16hf) __A,
+                                               (__v16hi)
+                                               _mm256_setzero_si256 (),
+                                               (__mmask16) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_ipcvtph_epu8 (__m256h __A)
+{
+  return (__m256i)
+    __builtin_ia32_cvtph2iubs256_mask ((__v16hf) __A,
+                                      (__v16hi)
+                                      _mm256_undefined_si256 (),
+                                      (__mmask16) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_ipcvtph_epu8 (__m256i __W, __mmask16 __U, __m256h __A)
+{
+  return (__m256i) __builtin_ia32_cvtph2iubs256_mask ((__v16hf) __A,
+                                                     (__v16hi) __W,
+                                                     (__mmask16) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_ipcvtph_epu8 (__mmask16 __U, __m256h __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvtph2iubs256_mask ((__v16hf) __A,
+                                                (__v16hi)
+                                                _mm256_setzero_si256 (),
+                                                (__mmask16) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_ipcvtps_epi8 (__m256 __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvtps2ibs256_mask ((__v8sf) __A,
+                                               (__v8si)
+                                               _mm256_undefined_si256 (),
+                                               (__mmask8) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_ipcvtps_epi8 (__m256i __W, __mmask8 __U, __m256 __A)
+{
+  return (__m256i) __builtin_ia32_cvtps2ibs256_mask ((__v8sf) __A,
+                                                    (__v8si) __W,
+                                                    (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_ipcvtps_epi8 (__mmask8 __U, __m256 __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvtps2ibs256_mask ((__v8sf) __A,
+                                               (__v8si)
+                                               _mm256_setzero_si256 (),
+                                               (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_ipcvtps_epu8 (__m256 __A)
+{
+  return (__m256i)
+    __builtin_ia32_cvtps2iubs256_mask ((__v8sf) __A,
+                                      (__v8si)
+                                      _mm256_undefined_si256 (),
+                                      (__mmask8) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_ipcvtps_epu8 (__m256i __W, __mmask8 __U, __m256 __A)
+{
+  return (__m256i) __builtin_ia32_cvtps2iubs256_mask ((__v8sf) __A,
+                                                     (__v8si) __W,
+                                                     (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_ipcvtps_epu8 (__mmask8 __U, __m256 __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvtps2iubs256_mask ((__v8sf) __A,
+                                                (__v8si)
+                                                _mm256_setzero_si256 (),
+                                                (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_ipcvttph_epi8 (__m256h __A)
+{
+  return (__m256i)
+    __builtin_ia32_cvttph2ibs256_mask ((__v16hf) __A,
+                                      (__v16hi)
+                                      _mm256_undefined_si256 (),
+                                      (__mmask16) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_ipcvttph_epi8 (__m256i __W, __mmask16 __U, __m256h __A)
+{
+  return (__m256i) __builtin_ia32_cvttph2ibs256_mask ((__v16hf) __A,
+                                                     (__v16hi) __W,
+                                                     (__mmask16) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_ipcvttph_epi8 (__mmask16 __U, __m256h __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvttph2ibs256_mask ((__v16hf) __A,
+                                                (__v16hi)
+                                                _mm256_setzero_si256 (),
+                                                (__mmask16) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_ipcvttph_epu8 (__m256h __A)
+{
+  return (__m256i)
+    __builtin_ia32_cvttph2iubs256_mask ((__v16hf) __A,
+                                       (__v16hi)
+                                       _mm256_undefined_si256 (),
+                                       (__mmask16) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_ipcvttph_epu8 (__m256i __W, __mmask16 __U, __m256h __A)
+{
+  return (__m256i) __builtin_ia32_cvttph2iubs256_mask ((__v16hf) __A,
+                                                      (__v16hi) __W,
+                                                      (__mmask16) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_ipcvttph_epu8 (__mmask16 __U, __m256h __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvttph2iubs256_mask ((__v16hf) __A,
+                                                 (__v16hi)
+                                                 _mm256_setzero_si256 (),
+                                                 (__mmask16) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_ipcvttps_epi8 (__m256 __A)
+{
+  return (__m256i)
+    __builtin_ia32_cvttps2ibs256_mask ((__v8sf) __A,
+                                      (__v8si)
+                                      _mm256_undefined_si256 (),
+                                      (__mmask8) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_ipcvttps_epi8 (__m256i __W, __mmask8 __U, __m256 __A)
+{
+  return (__m256i) __builtin_ia32_cvttps2ibs256_mask ((__v8sf) __A,
+                                                     (__v8si) __W,
+                                                     (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_ipcvttps_epi8 (__mmask8 __U, __m256 __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvttps2ibs256_mask ((__v8sf) __A,
+                                                (__v8si)
+                                                _mm256_setzero_si256 (),
+                                                (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_ipcvttps_epu8 (__m256 __A)
+{
+  return (__m256i)
+    __builtin_ia32_cvttps2iubs256_mask ((__v8sf) __A,
+                                       (__v8si)
+                                       _mm256_undefined_si256 (),
+                                       (__mmask8) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_ipcvttps_epu8 (__m256i __W, __mmask8 __U, __m256 __A)
+{
+  return (__m256i) __builtin_ia32_cvttps2iubs256_mask ((__v8sf) __A,
+                                                      (__v8si) __W,
+                                                      (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_ipcvttps_epu8 (__mmask8 __U, __m256 __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvttps2iubs256_mask ((__v8sf) __A,
+                                                 (__v8si)
+                                                 _mm256_setzero_si256 (),
+                                                 (__mmask8) __U);
+}
+
+extern __inline __m128i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_cvttspd_epi32 (__m256d __A)
+{
+  return
+    (__m128i) __builtin_ia32_cvttpd2dqs256_mask ((__v4df) __A,
+                                                (__v4si)
+                                                _mm_undefined_si128 (),
+                                                (__mmask8) -1);
+}
+
+extern __inline __m128i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_cvttspd_epi32 (__m128i __W, __mmask8 __U, __m256d __A)
+{
+  return (__m128i) __builtin_ia32_cvttpd2dqs256_mask ((__v4df) __A,
+                                                     (__v4si) __W,
+                                                     (__mmask8) __U);
+}
+
+extern __inline __m128i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_cvttspd_epi32 (__mmask8 __U, __m256d __A)
+{
+  return
+    (__m128i) __builtin_ia32_cvttpd2dqs256_mask ((__v4df) __A,
+                                                (__v4si)
+                                                _mm_setzero_si128 (),
+                                                (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_cvttspd_epi64 (__m256d __A)
+{
+  return (__m256i)
+    __builtin_ia32_cvttpd2qqs256_mask ((__v4df) __A,
+                                      (__v4di)
+                                      _mm256_undefined_si256 (),
+                                      (__mmask8) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_cvttspd_epi64 (__m256i __W, __mmask8 __U, __m256d __A)
+{
+  return (__m256i) __builtin_ia32_cvttpd2qqs256_mask ((__v4df) __A,
+                                                     (__v4di) __W,
+                                                     (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_cvttspd_epi64 (__mmask8 __U, __m256d __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvttpd2qqs256_mask ((__v4df) __A,
+                                                (__v4di)
+                                                _mm256_setzero_si256 (),
+                                                (__mmask8) __U);
+}
+
+extern __inline __m128i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_cvttspd_epu32 (__m256d __A)
+{
+  return
+    (__m128i) __builtin_ia32_cvttpd2udqs256_mask ((__v4df) __A,
+                                                 (__v4si)
+                                                 _mm_undefined_si128 (),
+                                                 (__mmask8) -1);
+}
+
+extern __inline __m128i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_cvttspd_epu32 (__m128i __W, __mmask8 __U, __m256d __A)
+{
+  return (__m128i) __builtin_ia32_cvttpd2udqs256_mask ((__v4df) __A,
+                                                      (__v4si) __W,
+                                                      (__mmask8) __U);
+}
+
+extern __inline __m128i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_cvttspd_epu32 (__mmask8 __U, __m256d __A)
+{
+  return
+    (__m128i) __builtin_ia32_cvttpd2udqs256_mask ((__v4df) __A,
+                                                 (__v4si)
+                                                 _mm_setzero_si128 (),
+                                                 (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_cvttspd_epu64 (__m256d __A)
+{
+  return (__m256i)
+    __builtin_ia32_cvttpd2uqqs256_mask ((__v4df) __A,
+                                       (__v4di)
+                                       _mm256_undefined_si256 (),
+                                       (__mmask8) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_cvttspd_epu64 (__m256i __W, __mmask8 __U, __m256d __A)
+{
+  return (__m256i) __builtin_ia32_cvttpd2uqqs256_mask ((__v4df) __A,
+                                                      (__v4di) __W,
+                                                      (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_cvttspd_epu64 (__mmask8 __U, __m256d __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvttpd2uqqs256_mask ((__v4df) __A,
+                                                 (__v4di)
+                                                 _mm256_setzero_si256 (),
+                                                 (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_cvttsps_epi32 (__m256 __A)
+{
+  return (__m256i)
+    __builtin_ia32_cvttps2dqs256_mask ((__v8sf) __A,
+                                      (__v8si)
+                                      _mm256_undefined_si256 (),
+                                      (__mmask8) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_cvttsps_epi32 (__m256i __W, __mmask8 __U, __m256 __A)
+{
+  return (__m256i) __builtin_ia32_cvttps2dqs256_mask ((__v8sf) __A,
+                                                     (__v8si) __W,
+                                                     (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_cvttsps_epi32 (__mmask8 __U, __m256 __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvttps2dqs256_mask ((__v8sf) __A,
+                                                (__v8si)
+                                                _mm256_setzero_si256 (),
+                                                (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_cvttsps_epi64 (__m128 __A)
+{
+  return (__m256i)
+    __builtin_ia32_cvttps2qqs256_mask ((__v4sf) __A,
+                                      (__v4di)
+                                      _mm256_undefined_si256 (),
+                                      (__mmask8) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_cvttsps_epi64 (__m256i __W, __mmask8 __U, __m128 __A)
+{
+  return (__m256i) __builtin_ia32_cvttps2qqs256_mask ((__v4sf) __A,
+                                                     (__v4di) __W,
+                                                     (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_cvttsps_epi64 (__mmask8 __U, __m128 __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvttps2qqs256_mask ((__v4sf) __A,
+                                                (__v4di)
+                                                _mm256_setzero_si256 (),
+                                                (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_cvttsps_epu32 (__m256 __A)
+{
+  return (__m256i)
+    __builtin_ia32_cvttps2udqs256_mask ((__v8sf) __A,
+                                       (__v8si)
+                                       _mm256_undefined_si256 (),
+                                       (__mmask8) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_cvttsps_epu32 (__m256i __W, __mmask8 __U, __m256 __A)
+{
+  return (__m256i) __builtin_ia32_cvttps2udqs256_mask ((__v8sf) __A,
+                                                      (__v8si) __W,
+                                                      (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_cvttsps_epu32 (__mmask8 __U, __m256 __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvttps2udqs256_mask ((__v8sf) __A,
+                                                 (__v8si)
+                                                 _mm256_setzero_si256 (),
+                                                 (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_cvttsps_epu64 (__m128 __A)
+{
+  return (__m256i)
+    __builtin_ia32_cvttps2uqqs256_mask ((__v4sf) __A,
+                                       (__v4di)
+                                       _mm256_undefined_si256 (),
+                                       (__mmask8) -1);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_mask_cvttsps_epu64 (__m256i __W, __mmask8 __U, __m128 __A)
+{
+  return (__m256i) __builtin_ia32_cvttps2uqqs256_mask ((__v4sf) __A,
+                                                      (__v4di) __W,
+                                                      (__mmask8) __U);
+}
+
+extern __inline __m256i
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_maskz_cvttsps_epu64 (__mmask8 __U, __m128 __A)
+{
+  return
+    (__m256i) __builtin_ia32_cvttps2uqqs256_mask ((__v4sf) __A,
+                                                 (__v4di)
+                                                 _mm256_setzero_si256 (),
+                                                 (__mmask8) __U);
+}
+
+extern __inline int
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm_cvttssd_epi32 (__m128d __A)
+{
+  return (int) __builtin_ia32_cvttsd2sis32_round ((__v2df) __A,
+                                                 _MM_FROUND_CUR_DIRECTION);
+}
+
+extern __inline unsigned int
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm_cvttssd_epu32 (__m128d __A)
+{
+  return (unsigned int) __builtin_ia32_cvttsd2usis32_round ((__v2df) __A,
+                                                           
_MM_FROUND_CUR_DIRECTION);
+}
+
+extern __inline int
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm_cvttsss_epi32 (__m128 __A)
+{
+  return (int) __builtin_ia32_cvttss2sis32_round ((__v4sf) __A,
+                                                 _MM_FROUND_CUR_DIRECTION);
+}
+
+extern __inline unsigned int
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm_cvttsss_epu32 (__m128 __A)
+{
+  return (unsigned int) __builtin_ia32_cvttss2usis32_round ((__v4sf) __A,
+                                                           
_MM_FROUND_CUR_DIRECTION);
+}
+
 #ifdef __OPTIMIZE__
 extern __inline __m256i
 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
@@ -1889,6 +2417,38 @@ _mm_cvtts_roundss_epu32 (__m128 __A, const int __R)
 #endif
 
 #ifdef __x86_64__
+extern __inline long long
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm_cvttssd_epi64 (__m128d __A)
+{
+  return (long long) __builtin_ia32_cvttsd2sis64_round ((__v2df) __A,
+                                                       
_MM_FROUND_CUR_DIRECTION);
+}
+
+extern __inline unsigned long long
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm_cvttssd_epu64 (__m128d __A)
+{
+  return (unsigned long long) __builtin_ia32_cvttsd2usis64_round ((__v2df) __A,
+                                                                 
_MM_FROUND_CUR_DIRECTION);
+}
+
+extern __inline long long
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm_cvttsss_epi64 (__m128 __A)
+{
+  return (long long) __builtin_ia32_cvttss2sis64_round ((__v4sf) __A,
+                                                       
_MM_FROUND_CUR_DIRECTION);
+}
+
+
+extern __inline unsigned long long
+__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+_mm_cvttsss_epu64 (__m128 __A)
+{
+  return (unsigned long long) __builtin_ia32_cvttss2usis64_round ((__v4sf) __A,
+                                                                 
_MM_FROUND_CUR_DIRECTION);
+}
 #ifdef __OPTIMIZE__
 extern __inline long long
 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
diff --git a/gcc/config/i386/i386-builtin-types.def 
b/gcc/config/i386/i386-builtin-types.def
index fff29b8f0966..1559c6a42aa9 100644
--- a/gcc/config/i386/i386-builtin-types.def
+++ b/gcc/config/i386/i386-builtin-types.def
@@ -1369,6 +1369,7 @@ DEF_FUNCTION_TYPE (V16HF, V16HF, V16HF, V16HF, UQI)
 DEF_FUNCTION_TYPE (V16HF, V16HF, V16HF, V16HF, UHI)
 DEF_FUNCTION_TYPE (V32HF, V32HF, V32HF, USI)
 DEF_FUNCTION_TYPE (V32HF, V32HF, V32HF, INT)
+DEF_FUNCTION_TYPE (V32HI, V32HF, V32HI, USI)
 DEF_FUNCTION_TYPE (V32HI, V32HF, V32HI, USI, INT)
 DEF_FUNCTION_TYPE (V32HF, V32HI, V32HF, USI, INT)
 DEF_FUNCTION_TYPE (USI, V32HF, V32HF, INT, USI)
@@ -1496,6 +1497,7 @@ DEF_FUNCTION_TYPE (INT, V8BF, V8BF)
 DEF_FUNCTION_TYPE (V8HI, V8BF, V8HI, UQI)
 DEF_FUNCTION_TYPE (V16HI, V16BF, V16HI, UHI)
 DEF_FUNCTION_TYPE (V32HI, V32BF, V32HI, USI)
+DEF_FUNCTION_TYPE (V16SI, V16SF, V16SI, UHI)
 DEF_FUNCTION_TYPE (V16SI, V16SF, V16SI, UHI, INT)
 DEF_FUNCTION_TYPE (V16HI, V16BF, V16HI, UHI, INT)
 DEF_FUNCTION_TYPE (V32HI, V32BF, V32HI, USI, INT)
@@ -1507,6 +1509,9 @@ DEF_FUNCTION_TYPE (V8DF, V8DF, V8DF, INT, V8DF, UQI, INT)
 DEF_FUNCTION_TYPE (V32HF, V32HF, V32HF, INT, V32HF, USI, INT)
 DEF_FUNCTION_TYPE (V16HF, V16HF, V16HF, INT, V16HF, UHI, INT)
 DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF, INT, V16SF, UHI, INT)
+DEF_FUNCTION_TYPE (V8DI, V8SF, V8DI, UQI)
+DEF_FUNCTION_TYPE (V8DI, V8DF, V8DI, UQI)
+DEF_FUNCTION_TYPE (V8SI, V8DF, V8SI, UQI)
 
 # SM4 builtins
 DEF_FUNCTION_TYPE (V16SI, V16SI, V16SI)
diff --git a/gcc/config/i386/i386-builtin.def b/gcc/config/i386/i386-builtin.def
index 7582b4d91dab..e6f5b1216a1e 100644
--- a/gcc/config/i386/i386-builtin.def
+++ b/gcc/config/i386/i386-builtin.def
@@ -3297,9 +3297,17 @@ BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_cvtbf162iubsv8bf_mask,
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_cvtbf162iubsv16bf_mask, "__builtin_ia32_cvtbf162iubs256_mask", 
IX86_BUILTIN_CVTBF162IUBS256_MASK, UNKNOWN, (int) V16HI_FTYPE_V16BF_V16HI_UHI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, 
CODE_FOR_avx10_2_cvtbf162iubsv32bf_mask, "__builtin_ia32_cvtbf162iubs512_mask", 
IX86_BUILTIN_CVTBF162IUBS512_MASK, UNKNOWN, (int) V32HI_FTYPE_V32BF_V32HI_USI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvtph2ibsv8hf_mask, 
"__builtin_ia32_cvtph2ibs128_mask", IX86_BUILTIN_CVTPH2IBS128_MASK, UNKNOWN, 
(int) V8HI_FTYPE_V8HF_V8HI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvtph2ibsv16hf_mask, 
"__builtin_ia32_cvtph2ibs256_mask", IX86_BUILTIN_CVTPH2IBS256_MASK, UNKNOWN, 
(int) V16HI_FTYPE_V16HF_V16HI_UHI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, CODE_FOR_avx10_2_cvtph2ibsv32hf_mask, 
"__builtin_ia32_cvtph2ibs512_mask", IX86_BUILTIN_CVTPH2IBS512_MASK, UNKNOWN, 
(int) V32HI_FTYPE_V32HF_V32HI_USI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvtph2iubsv8hf_mask, 
"__builtin_ia32_cvtph2iubs128_mask", IX86_BUILTIN_CVTPH2IUBS128_MASK, UNKNOWN, 
(int) V8HI_FTYPE_V8HF_V8HI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvtph2iubsv16hf_mask, 
"__builtin_ia32_cvtph2iubs256_mask", IX86_BUILTIN_CVTPH2IUBS256_MASK, UNKNOWN, 
(int) V16HI_FTYPE_V16HF_V16HI_UHI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, CODE_FOR_avx10_2_cvtph2iubsv32hf_mask, 
"__builtin_ia32_cvtph2iubs512_mask", IX86_BUILTIN_CVTPH2IUBS512_MASK, UNKNOWN, 
(int) V32HI_FTYPE_V32HF_V32HI_USI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvtps2ibsv4sf_mask, 
"__builtin_ia32_cvtps2ibs128_mask", IX86_BUILTIN_CVTPS2IBS128_MASK, UNKNOWN, 
(int) V4SI_FTYPE_V4SF_V4SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvtps2ibsv8sf_mask, 
"__builtin_ia32_cvtps2ibs256_mask", IX86_BUILTIN_CVTPS2IBS256_MASK, UNKNOWN, 
(int) V8SI_FTYPE_V8SF_V8SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, CODE_FOR_avx10_2_cvtps2ibsv16sf_mask, 
"__builtin_ia32_cvtps2ibs512_mask", IX86_BUILTIN_CVTPS2IBS512_MASK, UNKNOWN, 
(int) V16SI_FTYPE_V16SF_V16SI_UHI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvtps2iubsv4sf_mask, 
"__builtin_ia32_cvtps2iubs128_mask", IX86_BUILTIN_CVTPS2IUBS128_MASK, UNKNOWN, 
(int) V4SI_FTYPE_V4SF_V4SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvtps2iubsv8sf_mask, 
"__builtin_ia32_cvtps2iubs256_mask", IX86_BUILTIN_CVTPS2IUBS256_MASK, UNKNOWN, 
(int) V8SI_FTYPE_V8SF_V8SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, CODE_FOR_avx10_2_cvtps2iubsv16sf_mask, 
"__builtin_ia32_cvtps2iubs512_mask", IX86_BUILTIN_CVTPS2IUBS512_MASK, UNKNOWN, 
(int) V16SI_FTYPE_V16SF_V16SI_UHI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_cvttbf162ibsv8bf_mask, "__builtin_ia32_cvttbf162ibs128_mask", 
IX86_BUILTIN_CVTTBF162IBS128_MASK, UNKNOWN, (int) V8HI_FTYPE_V8BF_V8HI_UQI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_cvttbf162ibsv16bf_mask, "__builtin_ia32_cvttbf162ibs256_mask", 
IX86_BUILTIN_CVTTBF162IBS256_MASK, UNKNOWN, (int) V16HI_FTYPE_V16BF_V16HI_UHI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, 
CODE_FOR_avx10_2_cvttbf162ibsv32bf_mask, "__builtin_ia32_cvttbf162ibs512_mask", 
IX86_BUILTIN_CVTTBF162IBS512_MASK, UNKNOWN, (int) V32HI_FTYPE_V32BF_V32HI_USI)
@@ -3307,17 +3315,41 @@ BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_cvttbf162iubsv8bf_mask,
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_cvttbf162iubsv16bf_mask, 
"__builtin_ia32_cvttbf162iubs256_mask", IX86_BUILTIN_CVTTBF162IUBS256_MASK, 
UNKNOWN, (int) V16HI_FTYPE_V16BF_V16HI_UHI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, 
CODE_FOR_avx10_2_cvttbf162iubsv32bf_mask, 
"__builtin_ia32_cvttbf162iubs512_mask", IX86_BUILTIN_CVTTBF162IUBS512_MASK, 
UNKNOWN, (int) V32HI_FTYPE_V32BF_V32HI_USI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvttph2ibsv8hf_mask, 
"__builtin_ia32_cvttph2ibs128_mask", IX86_BUILTIN_CVTTPH2IBS128_MASK, UNKNOWN, 
(int) V8HI_FTYPE_V8HF_V8HI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvttph2ibsv16hf_mask, 
"__builtin_ia32_cvttph2ibs256_mask", IX86_BUILTIN_CVTTPH2IBS256_MASK, UNKNOWN, 
(int) V16HI_FTYPE_V16HF_V16HI_UHI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, CODE_FOR_avx10_2_cvttph2ibsv32hf_mask, 
"__builtin_ia32_cvttph2ibs512_mask", IX86_BUILTIN_CVTTPH2IBS512_MASK, UNKNOWN, 
(int) V32HI_FTYPE_V32HF_V32HI_USI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvttph2iubsv8hf_mask, 
"__builtin_ia32_cvttph2iubs128_mask", IX86_BUILTIN_CVTTPH2IUBS128_MASK, 
UNKNOWN, (int) V8HI_FTYPE_V8HF_V8HI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_cvttph2iubsv16hf_mask, "__builtin_ia32_cvttph2iubs256_mask", 
IX86_BUILTIN_CVTTPH2IUBS256_MASK, UNKNOWN, (int) V16HI_FTYPE_V16HF_V16HI_UHI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, 
CODE_FOR_avx10_2_cvttph2iubsv32hf_mask, "__builtin_ia32_cvttph2iubs512_mask", 
IX86_BUILTIN_CVTTPH2IUBS512_MASK, UNKNOWN, (int) V32HI_FTYPE_V32HF_V32HI_USI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvttps2ibsv4sf_mask, 
"__builtin_ia32_cvttps2ibs128_mask", IX86_BUILTIN_CVTTPS2IBS128_MASK, UNKNOWN, 
(int) V4SI_FTYPE_V4SF_V4SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvttps2ibsv8sf_mask, 
"__builtin_ia32_cvttps2ibs256_mask", IX86_BUILTIN_CVTTPS2IBS256_MASK, UNKNOWN, 
(int) V8SI_FTYPE_V8SF_V8SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, CODE_FOR_avx10_2_cvttps2ibsv16sf_mask, 
"__builtin_ia32_cvttps2ibs512_mask", IX86_BUILTIN_CVTTPS2IBS512_MASK, UNKNOWN, 
(int) V16SI_FTYPE_V16SF_V16SI_UHI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvttps2iubsv4sf_mask, 
"__builtin_ia32_cvttps2iubs128_mask", IX86_BUILTIN_CVTTPS2IUBS128_MASK, 
UNKNOWN, (int) V4SI_FTYPE_V4SF_V4SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_cvttps2iubsv8sf_mask, 
"__builtin_ia32_cvttps2iubs256_mask", IX86_BUILTIN_CVTTPS2IUBS256_MASK, 
UNKNOWN, (int) V8SI_FTYPE_V8SF_V8SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, 
CODE_FOR_avx10_2_cvttps2iubsv16sf_mask, "__builtin_ia32_cvttps2iubs512_mask", 
IX86_BUILTIN_CVTTPS2IUBS512_MASK, UNKNOWN, (int) V16SI_FTYPE_V16SF_V16SI_UHI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_vcvttpd2dqsv2df_mask, 
"__builtin_ia32_cvttpd2dqs128_mask", IX86_BUILTIN_VCVTTPD2DQS128_MASK, UNKNOWN, 
(int) V4SI_FTYPE_V2DF_V4SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_vcvttpd2dqsv4df_mask, 
"__builtin_ia32_cvttpd2dqs256_mask", IX86_BUILTIN_VCVTTPD2DQS256_MASK, UNKNOWN, 
(int) V4SI_FTYPE_V4DF_V4SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, CODE_FOR_avx10_2_vcvttpd2dqsv8df_mask, 
"__builtin_ia32_cvttpd2dqs512_mask", IX86_BUILTIN_VCVTTPD2DQS512_MASK, UNKNOWN, 
(int) V8SI_FTYPE_V8DF_V8SI_UQI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_vcvttpd2qqsv2df_mask, 
"__builtin_ia32_cvttpd2qqs128_mask", IX86_BUILTIN_VCVTTPD2QQS128_MASK, UNKNOWN, 
(int) V2DI_FTYPE_V2DF_V2DI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_vcvttpd2qqsv4df_mask, 
"__builtin_ia32_cvttpd2qqs256_mask", IX86_BUILTIN_VCVTTPD2QQS256_MASK, UNKNOWN, 
(int) V4DI_FTYPE_V4DF_V4DI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, CODE_FOR_avx10_2_vcvttpd2qqsv8df_mask, 
"__builtin_ia32_cvttpd2qqs512_mask", IX86_BUILTIN_VCVTTPD2QQS512_MASK, UNKNOWN, 
(int) V8DI_FTYPE_V8DF_V8DI_UQI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_vcvttpd2udqsv2df_mask, "__builtin_ia32_cvttpd2udqs128_mask", 
IX86_BUILTIN_VCVTTPD2UDQS128_MASK, UNKNOWN, (int) V4SI_FTYPE_V2DF_V4SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_vcvttpd2udqsv4df_mask, "__builtin_ia32_cvttpd2udqs256_mask", 
IX86_BUILTIN_VCVTTPD2UDQS256_MASK, UNKNOWN, (int) V4SI_FTYPE_V4DF_V4SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, 
CODE_FOR_avx10_2_vcvttpd2udqsv8df_mask, "__builtin_ia32_cvttpd2udqs512_mask", 
IX86_BUILTIN_VCVTTPD2UDQS512_MASK, UNKNOWN, (int) V8SI_FTYPE_V8DF_V8SI_UQI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_vcvttpd2uqqsv2df_mask, "__builtin_ia32_cvttpd2uqqs128_mask", 
IX86_BUILTIN_VCVTTPD2UQQS128_MASK, UNKNOWN, (int) V2DI_FTYPE_V2DF_V2DI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_vcvttpd2uqqsv4df_mask, "__builtin_ia32_cvttpd2uqqs256_mask", 
IX86_BUILTIN_VCVTTPD2UQQS256_MASK, UNKNOWN, (int) V4DI_FTYPE_V4DF_V4DI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, 
CODE_FOR_avx10_2_vcvttpd2uqqsv8df_mask, "__builtin_ia32_cvttpd2uqqs512_mask", 
IX86_BUILTIN_VCVTTPD2UQQS512_MASK, UNKNOWN, (int) V8DI_FTYPE_V8DF_V8DI_UQI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_vcvttps2dqsv4sf_mask, 
"__builtin_ia32_cvttps2dqs128_mask", IX86_BUILTIN_VCVTTPS2DQS128_MASK, UNKNOWN, 
(int) V4SI_FTYPE_V4SF_V4SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_vcvttps2dqsv8sf_mask, 
"__builtin_ia32_cvttps2dqs256_mask", IX86_BUILTIN_VCVTTPS2DQS256_MASK, UNKNOWN, 
(int) V8SI_FTYPE_V8SF_V8SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, 
CODE_FOR_avx10_2_vcvttps2dqsv16sf_mask, "__builtin_ia32_cvttps2dqs512_mask", 
IX86_BUILTIN_VCVTTPS2DQS512_MASK, UNKNOWN, (int) V16SI_FTYPE_V16SF_V16SI_UHI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_vcvttps2qqsv2di_mask, 
"__builtin_ia32_cvttps2qqs128_mask", IX86_BUILTIN_VCVTTPS2QQS128_MASK, UNKNOWN, 
(int) V2DI_FTYPE_V4SF_V2DI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_vcvttps2qqsv4di_mask, 
"__builtin_ia32_cvttps2qqs256_mask", IX86_BUILTIN_VCVTTPS2QQS256_MASK, UNKNOWN, 
(int) V4DI_FTYPE_V4SF_V4DI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, CODE_FOR_avx10_2_vcvttps2qqsv8di_mask, 
"__builtin_ia32_cvttps2qqs512_mask", IX86_BUILTIN_VCVTTPS2QQS512_MASK, UNKNOWN, 
(int) V8DI_FTYPE_V8SF_V8DI_UQI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_vcvttps2udqsv4sf_mask, "__builtin_ia32_cvttps2udqs128_mask", 
IX86_BUILTIN_VCVTTPS2UDQS128_MASK, UNKNOWN, (int) V4SI_FTYPE_V4SF_V4SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_vcvttps2udqsv8sf_mask, "__builtin_ia32_cvttps2udqs256_mask", 
IX86_BUILTIN_VCVTTPS2UDQS256_MASK, UNKNOWN, (int) V8SI_FTYPE_V8SF_V8SI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, 
CODE_FOR_avx10_2_vcvttps2udqsv16sf_mask, "__builtin_ia32_cvttps2udqs512_mask", 
IX86_BUILTIN_VCVTTPS2UDQS512_MASK, UNKNOWN, (int) V16SI_FTYPE_V16SF_V16SI_UHI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_vcvttps2uqqsv2di_mask, "__builtin_ia32_cvttps2uqqs128_mask", 
IX86_BUILTIN_VCVTTPS2UQQS128_MASK, UNKNOWN, (int) V2DI_FTYPE_V4SF_V2DI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_vcvttps2uqqsv4di_mask, "__builtin_ia32_cvttps2uqqs256_mask", 
IX86_BUILTIN_VCVTTPS2UQQS256_MASK, UNKNOWN, (int) V4DI_FTYPE_V4SF_V4DI_UQI)
+BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, 
CODE_FOR_avx10_2_vcvttps2uqqsv8di_mask, "__builtin_ia32_cvttps2uqqs512_mask", 
IX86_BUILTIN_VCVTTPS2UQQS512_MASK, UNKNOWN, (int) V8DI_FTYPE_V8SF_V8DI_UQI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, CODE_FOR_avx10_2_minmaxbf16_v8bf_mask, 
"__builtin_ia32_minmaxbf16128_mask", IX86_BUILTIN_MINMAXBF16128_MASK, UNKNOWN, 
(int) V8BF_FTYPE_V8BF_V8BF_INT_V8BF_UQI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_256, 
CODE_FOR_avx10_2_minmaxbf16_v16bf_mask, "__builtin_ia32_minmaxbf16256_mask", 
IX86_BUILTIN_MINMAXBF16256_MASK, UNKNOWN, (int) 
V16BF_FTYPE_V16BF_V16BF_INT_V16BF_UHI)
 BDESC (0, OPTION_MASK_ISA2_AVX10_2_512, 
CODE_FOR_avx10_2_minmaxbf16_v32bf_mask, "__builtin_ia32_minmaxbf16512_mask", 
IX86_BUILTIN_MINMAXBF16512_MASK, UNKNOWN, (int) 
V32BF_FTYPE_V32BF_V32BF_INT_V32BF_USI)
diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index 9590cd9a8c98..b4d8bd90b8ac 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -11783,6 +11783,11 @@ ix86_expand_args_builtin (const struct 
builtin_description *d,
     case V8HF_FTYPE_V16QI_V8HF_UQI:
     case V16HF_FTYPE_V16QI_V16HF_UHI:
     case V32HF_FTYPE_V32QI_V32HF_USI:
+    case V16SI_FTYPE_V16SF_V16SI_UHI:
+    case V32HI_FTYPE_V32HF_V32HI_USI:
+    case V8DI_FTYPE_V8SF_V8DI_UQI:
+    case V8DI_FTYPE_V8DF_V8DI_UQI:
+    case V8SI_FTYPE_V8DF_V8SI_UQI:
       nargs = 3;
       break;
     case V32QI_FTYPE_V32QI_V32QI_INT:

Reply via email to