LCOV - code coverage report
Current view: top level - usr/lib/gcc/x86_64-linux-gnu/9/include - avx512bwintrin.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 6 0.0 %
Date: 2019-11-25 17:12:20 Functions: 0 0 -

          Line data    Source code
       1             : /* Copyright (C) 2014-2019 Free Software Foundation, Inc.
       2             : 
       3             :    This file is part of GCC.
       4             : 
       5             :    GCC is free software; you can redistribute it and/or modify
       6             :    it under the terms of the GNU General Public License as published by
       7             :    the Free Software Foundation; either version 3, or (at your option)
       8             :    any later version.
       9             : 
      10             :    GCC is distributed in the hope that it will be useful,
      11             :    but WITHOUT ANY WARRANTY; without even the implied warranty of
      12             :    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13             :    GNU General Public License for more details.
      14             : 
      15             :    Under Section 7 of GPL version 3, you are granted additional
      16             :    permissions described in the GCC Runtime Library Exception, version
      17             :    3.1, as published by the Free Software Foundation.
      18             : 
      19             :    You should have received a copy of the GNU General Public License and
      20             :    a copy of the GCC Runtime Library Exception along with this program;
      21             :    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
      22             :    <http://www.gnu.org/licenses/>.  */
      23             : 
      24             : #ifndef _IMMINTRIN_H_INCLUDED
      25             : #error "Never use <avx512bwintrin.h> directly; include <immintrin.h> instead."
      26             : #endif
      27             : 
      28             : #ifndef _AVX512BWINTRIN_H_INCLUDED
      29             : #define _AVX512BWINTRIN_H_INCLUDED
      30             : 
      31             : #ifndef __AVX512BW__
      32             : #pragma GCC push_options
      33             : #pragma GCC target("avx512bw")
      34             : #define __DISABLE_AVX512BW__
      35             : #endif /* __AVX512BW__ */
      36             : 
      37             : /* Internal data types for implementing the intrinsics.  */
      38             : typedef short __v32hi __attribute__ ((__vector_size__ (64)));
      39             : typedef char __v64qi __attribute__ ((__vector_size__ (64)));
      40             : 
      41             : typedef unsigned long long __mmask64;
      42             : 
      43             : extern __inline unsigned char
      44             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
      45             : _ktest_mask32_u8  (__mmask32 __A,  __mmask32 __B, unsigned char *__CF)
      46             : {
      47             :   *__CF = (unsigned char) __builtin_ia32_ktestcsi (__A, __B);
      48             :   return (unsigned char) __builtin_ia32_ktestzsi (__A, __B);
      49             : }
      50             : 
      51             : extern __inline unsigned char
      52             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
      53             : _ktest_mask64_u8  (__mmask64 __A,  __mmask64 __B, unsigned char *__CF)
      54             : {
      55             :   *__CF = (unsigned char) __builtin_ia32_ktestcdi (__A, __B);
      56             :   return (unsigned char) __builtin_ia32_ktestzdi (__A, __B);
      57             : }
      58             : 
      59             : extern __inline unsigned char
      60             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
      61             : _ktestz_mask32_u8 (__mmask32 __A, __mmask32 __B)
      62             : {
      63             :   return (unsigned char) __builtin_ia32_ktestzsi (__A, __B);
      64             : }
      65             : 
      66             : extern __inline unsigned char
      67             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
      68             : _ktestz_mask64_u8 (__mmask64 __A, __mmask64 __B)
      69             : {
      70             :   return (unsigned char) __builtin_ia32_ktestzdi (__A, __B);
      71             : }
      72             : 
      73             : extern __inline unsigned char
      74             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
      75             : _ktestc_mask32_u8 (__mmask32 __A, __mmask32 __B)
      76             : {
      77             :   return (unsigned char) __builtin_ia32_ktestcsi (__A, __B);
      78             : }
      79             : 
      80             : extern __inline unsigned char
      81             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
      82             : _ktestc_mask64_u8 (__mmask64 __A, __mmask64 __B)
      83             : {
      84             :   return (unsigned char) __builtin_ia32_ktestcdi (__A, __B);
      85             : }
      86             : 
      87             : extern __inline unsigned char
      88             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
      89             : _kortest_mask32_u8  (__mmask32 __A,  __mmask32 __B, unsigned char *__CF)
      90             : {
      91             :   *__CF = (unsigned char) __builtin_ia32_kortestcsi (__A, __B);
      92             :   return (unsigned char) __builtin_ia32_kortestzsi (__A, __B);
      93             : }
      94             : 
      95             : extern __inline unsigned char
      96             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
      97             : _kortest_mask64_u8  (__mmask64 __A,  __mmask64 __B, unsigned char *__CF)
      98             : {
      99             :   *__CF = (unsigned char) __builtin_ia32_kortestcdi (__A, __B);
     100             :   return (unsigned char) __builtin_ia32_kortestzdi (__A, __B);
     101             : }
     102             : 
     103             : extern __inline unsigned char
     104             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     105             : _kortestz_mask32_u8 (__mmask32 __A, __mmask32 __B)
     106             : {
     107             :   return (unsigned char) __builtin_ia32_kortestzsi (__A, __B);
     108             : }
     109             : 
     110             : extern __inline unsigned char
     111             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     112             : _kortestz_mask64_u8 (__mmask64 __A, __mmask64 __B)
     113             : {
     114             :   return (unsigned char) __builtin_ia32_kortestzdi (__A, __B);
     115             : }
     116             : 
     117             : extern __inline unsigned char
     118             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     119             : _kortestc_mask32_u8 (__mmask32 __A, __mmask32 __B)
     120             : {
     121             :   return (unsigned char) __builtin_ia32_kortestcsi (__A, __B);
     122             : }
     123             : 
     124             : extern __inline unsigned char
     125             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     126             : _kortestc_mask64_u8 (__mmask64 __A, __mmask64 __B)
     127             : {
     128             :   return (unsigned char) __builtin_ia32_kortestcdi (__A, __B);
     129             : }
     130             : 
     131             : extern __inline __mmask32
     132             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     133             : _kadd_mask32 (__mmask32 __A, __mmask32 __B)
     134             : {
     135             :   return (__mmask32) __builtin_ia32_kaddsi ((__mmask32) __A, (__mmask32) __B);
     136             : }
     137             : 
     138             : extern __inline __mmask64
     139             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     140             : _kadd_mask64 (__mmask64 __A, __mmask64 __B)
     141             : {
     142             :   return (__mmask64) __builtin_ia32_kadddi ((__mmask64) __A, (__mmask64) __B);
     143             : }
     144             : 
     145             : extern __inline unsigned int
     146             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     147             : _cvtmask32_u32 (__mmask32 __A)
     148             : {
     149             :   return (unsigned int) __builtin_ia32_kmovd ((__mmask32) __A);
     150             : }
     151             : 
     152             : extern __inline unsigned long long
     153             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     154             : _cvtmask64_u64 (__mmask64 __A)
     155             : {
     156             :   return (unsigned long long) __builtin_ia32_kmovq ((__mmask64) __A);
     157             : }
     158             : 
     159             : extern __inline __mmask32
     160             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     161             : _cvtu32_mask32 (unsigned int __A)
     162             : {
     163             :   return (__mmask32) __builtin_ia32_kmovd ((__mmask32) __A);
     164             : }
     165             : 
     166             : extern __inline __mmask64
     167             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     168             : _cvtu64_mask64 (unsigned long long __A)
     169             : {
     170             :   return (__mmask64) __builtin_ia32_kmovq ((__mmask64) __A);
     171             : }
     172             : 
     173             : extern __inline __mmask32
     174             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     175             : _load_mask32 (__mmask32 *__A)
     176             : {
     177             :   return (__mmask32) __builtin_ia32_kmovd (*__A);
     178             : }
     179             : 
     180             : extern __inline __mmask64
     181             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     182             : _load_mask64 (__mmask64 *__A)
     183             : {
     184             :   return (__mmask64) __builtin_ia32_kmovq (*(__mmask64 *) __A);
     185             : }
     186             : 
     187             : extern __inline void
     188             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     189             : _store_mask32 (__mmask32 *__A, __mmask32 __B)
     190             : {
     191             :   *(__mmask32 *) __A = __builtin_ia32_kmovd (__B);
     192             : }
     193             : 
     194             : extern __inline void
     195             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     196             : _store_mask64 (__mmask64 *__A, __mmask64 __B)
     197             : {
     198             :   *(__mmask64 *) __A = __builtin_ia32_kmovq (__B);
     199             : }
     200             : 
     201             : extern __inline __mmask32
     202             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     203             : _knot_mask32 (__mmask32 __A)
     204             : {
     205             :   return (__mmask32) __builtin_ia32_knotsi ((__mmask32) __A);
     206             : }
     207             : 
     208             : extern __inline __mmask64
     209             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     210             : _knot_mask64 (__mmask64 __A)
     211             : {
     212             :   return (__mmask64) __builtin_ia32_knotdi ((__mmask64) __A);
     213             : }
     214             : 
     215             : extern __inline __mmask32
     216             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     217             : _kor_mask32 (__mmask32 __A, __mmask32 __B)
     218             : {
     219             :   return (__mmask32) __builtin_ia32_korsi ((__mmask32) __A, (__mmask32) __B);
     220             : }
     221             : 
     222             : extern __inline __mmask64
     223             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     224             : _kor_mask64 (__mmask64 __A, __mmask64 __B)
     225             : {
     226             :   return (__mmask64) __builtin_ia32_kordi ((__mmask64) __A, (__mmask64) __B);
     227             : }
     228             : 
     229             : extern __inline __mmask32
     230             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     231             : _kxnor_mask32 (__mmask32 __A, __mmask32 __B)
     232             : {
     233             :   return (__mmask32) __builtin_ia32_kxnorsi ((__mmask32) __A, (__mmask32) __B);
     234             : }
     235             : 
     236             : extern __inline __mmask64
     237             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     238             : _kxnor_mask64 (__mmask64 __A, __mmask64 __B)
     239             : {
     240             :   return (__mmask64) __builtin_ia32_kxnordi ((__mmask64) __A, (__mmask64) __B);
     241             : }
     242             : 
     243             : extern __inline __mmask32
     244             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     245             : _kxor_mask32 (__mmask32 __A, __mmask32 __B)
     246             : {
     247             :   return (__mmask32) __builtin_ia32_kxorsi ((__mmask32) __A, (__mmask32) __B);
     248             : }
     249             : 
     250             : extern __inline __mmask64
     251             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     252             : _kxor_mask64 (__mmask64 __A, __mmask64 __B)
     253             : {
     254             :   return (__mmask64) __builtin_ia32_kxordi ((__mmask64) __A, (__mmask64) __B);
     255             : }
     256             : 
     257             : extern __inline __mmask32
     258             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     259             : _kand_mask32 (__mmask32 __A, __mmask32 __B)
     260             : {
     261             :   return (__mmask32) __builtin_ia32_kandsi ((__mmask32) __A, (__mmask32) __B);
     262             : }
     263             : 
     264             : extern __inline __mmask64
     265             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     266             : _kand_mask64 (__mmask64 __A, __mmask64 __B)
     267             : {
     268             :   return (__mmask64) __builtin_ia32_kanddi ((__mmask64) __A, (__mmask64) __B);
     269             : }
     270             : 
     271             : extern __inline __mmask32
     272             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     273             : _kandn_mask32 (__mmask32 __A, __mmask32 __B)
     274             : {
     275             :   return (__mmask32) __builtin_ia32_kandnsi ((__mmask32) __A, (__mmask32) __B);
     276             : }
     277             : 
     278             : extern __inline __mmask64
     279             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     280             : _kandn_mask64 (__mmask64 __A, __mmask64 __B)
     281             : {
     282             :   return (__mmask64) __builtin_ia32_kandndi ((__mmask64) __A, (__mmask64) __B);
     283             : }
     284             : 
     285             : extern __inline __m512i
     286             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     287             : _mm512_mask_mov_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
     288             : {
     289             :   return (__m512i) __builtin_ia32_movdquhi512_mask ((__v32hi) __A,
     290             :                                                     (__v32hi) __W,
     291             :                                                     (__mmask32) __U);
     292             : }
     293             : 
     294             : extern __inline __m512i
     295             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     296             : _mm512_maskz_mov_epi16 (__mmask32 __U, __m512i __A)
     297             : {
     298             :   return (__m512i) __builtin_ia32_movdquhi512_mask ((__v32hi) __A,
     299             :                                                     (__v32hi)
     300             :                                                     _mm512_setzero_si512 (),
     301             :                                                     (__mmask32) __U);
     302             : }
     303             : 
     304             : extern __inline __m512i
     305             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     306             : _mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P)
     307             : {
     308             :   return (__m512i) __builtin_ia32_loaddquhi512_mask ((const short *) __P,
     309             :                                                      (__v32hi) __W,
     310             :                                                      (__mmask32) __U);
     311             : }
     312             : 
     313             : extern __inline __m512i
     314             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     315             : _mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P)
     316             : {
     317             :   return (__m512i) __builtin_ia32_loaddquhi512_mask ((const short *) __P,
     318             :                                                      (__v32hi)
     319             :                                                      _mm512_setzero_si512 (),
     320             :                                                      (__mmask32) __U);
     321             : }
     322             : 
     323             : extern __inline void
     324             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     325             : _mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A)
     326             : {
     327             :   __builtin_ia32_storedquhi512_mask ((short *) __P,
     328             :                                      (__v32hi) __A,
     329             :                                      (__mmask32) __U);
     330             : }
     331             : 
     332             : extern __inline __m512i
     333             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     334             : _mm512_mask_mov_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
     335             : {
     336             :   return (__m512i) __builtin_ia32_movdquqi512_mask ((__v64qi) __A,
     337             :                                                     (__v64qi) __W,
     338             :                                                     (__mmask64) __U);
     339             : }
     340             : 
     341             : extern __inline __m512i
     342             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     343             : _mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A)
     344             : {
     345             :   return (__m512i) __builtin_ia32_movdquqi512_mask ((__v64qi) __A,
     346             :                                                     (__v64qi)
     347             :                                                     _mm512_setzero_si512 (),
     348             :                                                     (__mmask64) __U);
     349             : }
     350             : 
     351             : extern __inline __mmask32
     352             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     353             : _mm512_kunpackw (__mmask32 __A, __mmask32 __B)
     354             : {
     355             :   return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A,
     356             :                                               (__mmask32) __B);
     357             : }
     358             : 
     359             : extern __inline __mmask32
     360             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     361             : _kunpackw_mask32 (__mmask16 __A, __mmask16 __B)
     362             : {
     363             :   return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A,
     364             :                                               (__mmask32) __B);
     365             : }
     366             : 
     367             : extern __inline __mmask64
     368             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     369             : _mm512_kunpackd (__mmask64 __A, __mmask64 __B)
     370             : {
     371             :   return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A,
     372             :                                               (__mmask64) __B);
     373             : }
     374             : 
     375             : extern __inline __mmask64
     376             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     377             : _kunpackd_mask64 (__mmask32 __A, __mmask32 __B)
     378             : {
     379             :   return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A,
     380             :                                               (__mmask64) __B);
     381             : }
     382             : 
     383             : extern __inline __m512i
     384             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     385             : _mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P)
     386             : {
     387             :   return (__m512i) __builtin_ia32_loaddquqi512_mask ((const char *) __P,
     388             :                                                      (__v64qi) __W,
     389             :                                                      (__mmask64) __U);
     390             : }
     391             : 
     392             : extern __inline __m512i
     393             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     394             : _mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P)
     395             : {
     396             :   return (__m512i) __builtin_ia32_loaddquqi512_mask ((const char *) __P,
     397             :                                                      (__v64qi)
     398             :                                                      _mm512_setzero_si512 (),
     399             :                                                      (__mmask64) __U);
     400             : }
     401             : 
     402             : extern __inline void
     403             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     404             : _mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A)
     405             : {
     406             :   __builtin_ia32_storedquqi512_mask ((char *) __P,
     407             :                                      (__v64qi) __A,
     408             :                                      (__mmask64) __U);
     409             : }
     410             : 
     411             : extern __inline __m512i
     412             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     413             : _mm512_sad_epu8 (__m512i __A, __m512i __B)
     414             : {
     415             :   return (__m512i) __builtin_ia32_psadbw512 ((__v64qi) __A,
     416             :                                              (__v64qi) __B);
     417             : }
     418             : 
     419             : extern __inline __m256i
     420             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     421             : _mm512_cvtepi16_epi8 (__m512i __A)
     422             : {
     423             :   return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
     424             :                                                   (__v32qi) _mm256_undefined_si256(),
     425             :                                                   (__mmask32) -1);
     426             : }
     427             : 
     428             : extern __inline void
     429             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     430             : _mm512_mask_cvtepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
     431             : {
     432             :   __builtin_ia32_pmovwb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
     433             : }
     434             : 
     435             : extern __inline __m256i
     436             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     437             : _mm512_mask_cvtepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A)
     438             : {
     439             :   return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
     440             :                                                   (__v32qi) __O, __M);
     441             : }
     442             : 
     443             : extern __inline __m256i
     444             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     445             : _mm512_maskz_cvtepi16_epi8 (__mmask32 __M, __m512i __A)
     446             : {
     447             :   return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
     448             :                                                   (__v32qi)
     449             :                                                   _mm256_setzero_si256 (),
     450             :                                                   __M);
     451             : }
     452             : 
     453             : extern __inline __m256i
     454             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     455             : _mm512_cvtsepi16_epi8 (__m512i __A)
     456             : {
     457             :   return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
     458             :                                                    (__v32qi)_mm256_undefined_si256(),
     459             :                                                    (__mmask32) -1);
     460             : }
     461             : 
     462             : extern __inline void
     463             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     464             : _mm512_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
     465             : {
     466             :   __builtin_ia32_pmovswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
     467             : }
     468             : 
     469             : extern __inline __m256i
     470             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     471             : _mm512_mask_cvtsepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A)
     472             : {
     473             :   return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
     474             :                                                    (__v32qi)__O,
     475             :                                                    __M);
     476             : }
     477             : 
     478             : extern __inline __m256i
     479             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     480             : _mm512_maskz_cvtsepi16_epi8 (__mmask32 __M, __m512i __A)
     481             : {
     482             :   return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
     483             :                                                    (__v32qi)
     484             :                                                    _mm256_setzero_si256 (),
     485             :                                                    __M);
     486             : }
     487             : 
     488             : extern __inline __m256i
     489             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     490             : _mm512_cvtusepi16_epi8 (__m512i __A)
     491             : {
     492             :   return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
     493             :                                                     (__v32qi)_mm256_undefined_si256(),
     494             :                                                     (__mmask32) -1);
     495             : }
     496             : 
     497             : extern __inline __m256i
     498             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     499             : _mm512_mask_cvtusepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A)
     500             : {
     501             :   return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
     502             :                                                     (__v32qi) __O,
     503             :                                                     __M);
     504             : }
     505             : 
     506             : extern __inline void
     507             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     508             : _mm512_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
     509             : {
     510             :   __builtin_ia32_pmovuswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
     511             : }
     512             : 
     513             : extern __inline __m256i
     514             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     515             : _mm512_maskz_cvtusepi16_epi8 (__mmask32 __M, __m512i __A)
     516             : {
     517             :   return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
     518             :                                                     (__v32qi)
     519             :                                                     _mm256_setzero_si256 (),
     520             :                                                     __M);
     521             : }
     522             : 
     523             : extern __inline __m512i
     524             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     525             : _mm512_broadcastb_epi8 (__m128i __A)
     526             : {
     527             :   return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A,
     528             :                                                        (__v64qi)_mm512_undefined_epi32(),
     529             :                                                        (__mmask64) -1);
     530             : }
     531             : 
     532             : extern __inline __m512i
     533             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     534             : _mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A)
     535             : {
     536             :   return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A,
     537             :                                                        (__v64qi) __O,
     538             :                                                        __M);
     539             : }
     540             : 
     541             : extern __inline __m512i
     542             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     543             : _mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A)
     544             : {
     545             :   return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A,
     546             :                                                        (__v64qi)
     547             :                                                        _mm512_setzero_si512 (),
     548             :                                                        __M);
     549             : }
     550             : 
     551             : extern __inline __m512i
     552             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     553             : _mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A)
     554             : {
     555             :   return (__m512i) __builtin_ia32_pbroadcastb512_gpr_mask (__A,
     556             :                                                            (__v64qi) __O,
     557             :                                                            __M);
     558             : }
     559             : 
     560             : extern __inline __m512i
     561             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     562             : _mm512_maskz_set1_epi8 (__mmask64 __M, char __A)
     563             : {
     564             :   return (__m512i)
     565             :          __builtin_ia32_pbroadcastb512_gpr_mask (__A,
     566             :                                                  (__v64qi)
     567             :                                                  _mm512_setzero_si512 (),
     568             :                                                  __M);
     569             : }
     570             : 
     571             : extern __inline __m512i
     572             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     573             : _mm512_broadcastw_epi16 (__m128i __A)
     574             : {
     575             :   return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A,
     576             :                                                        (__v32hi)_mm512_undefined_epi32(),
     577             :                                                        (__mmask32) -1);
     578             : }
     579             : 
     580             : extern __inline __m512i
     581             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     582             : _mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A)
     583             : {
     584             :   return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A,
     585             :                                                        (__v32hi) __O,
     586             :                                                        __M);
     587             : }
     588             : 
     589             : extern __inline __m512i
     590             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     591             : _mm512_maskz_broadcastw_epi16 (__mmask32 __M, __m128i __A)
     592             : {
     593             :   return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A,
     594             :                                                        (__v32hi)
     595             :                                                        _mm512_setzero_si512 (),
     596             :                                                        __M);
     597             : }
     598             : 
     599             : extern __inline __m512i
     600             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     601             : _mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A)
     602             : {
     603             :   return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A,
     604             :                                                            (__v32hi) __O,
     605             :                                                            __M);
     606             : }
     607             : 
     608             : extern __inline __m512i
     609             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     610             : _mm512_maskz_set1_epi16 (__mmask32 __M, short __A)
     611             : {
     612             :   return (__m512i)
     613             :          __builtin_ia32_pbroadcastw512_gpr_mask (__A,
     614             :                                                  (__v32hi)
     615             :                                                  _mm512_setzero_si512 (),
     616             :                                                  __M);
     617             : }
     618             : 
     619             : extern __inline __m512i
     620             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     621             : _mm512_mulhrs_epi16 (__m512i __A, __m512i __B)
     622             : {
     623             :   return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
     624             :                                                     (__v32hi) __B,
     625             :                                                     (__v32hi)
     626             :                                                     _mm512_setzero_si512 (),
     627             :                                                     (__mmask32) -1);
     628             : }
     629             : 
     630             : extern __inline __m512i
     631             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     632             : _mm512_mask_mulhrs_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
     633             :                           __m512i __B)
     634             : {
     635             :   return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
     636             :                                                     (__v32hi) __B,
     637             :                                                     (__v32hi) __W,
     638             :                                                     (__mmask32) __U);
     639             : }
     640             : 
     641             : extern __inline __m512i
     642             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     643             : _mm512_maskz_mulhrs_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
     644             : {
     645             :   return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
     646             :                                                     (__v32hi) __B,
     647             :                                                     (__v32hi)
     648             :                                                     _mm512_setzero_si512 (),
     649             :                                                     (__mmask32) __U);
     650             : }
     651             : 
     652             : extern __inline __m512i
     653             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     654             : _mm512_mulhi_epi16 (__m512i __A, __m512i __B)
     655             : {
     656             :   return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
     657             :                                                   (__v32hi) __B,
     658             :                                                   (__v32hi)
     659             :                                                   _mm512_setzero_si512 (),
     660             :                                                   (__mmask32) -1);
     661             : }
     662             : 
     663             : extern __inline __m512i
     664             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     665             : _mm512_mask_mulhi_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
     666             :                          __m512i __B)
     667             : {
     668             :   return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
     669             :                                                   (__v32hi) __B,
     670             :                                                   (__v32hi) __W,
     671             :                                                   (__mmask32) __U);
     672             : }
     673             : 
     674             : extern __inline __m512i
     675             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     676             : _mm512_maskz_mulhi_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
     677             : {
     678             :   return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
     679             :                                                   (__v32hi) __B,
     680             :                                                   (__v32hi)
     681             :                                                   _mm512_setzero_si512 (),
     682             :                                                   (__mmask32) __U);
     683             : }
     684             : 
     685             : extern __inline __m512i
     686             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     687             : _mm512_mulhi_epu16 (__m512i __A, __m512i __B)
     688             : {
     689             :   return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
     690             :                                                    (__v32hi) __B,
     691             :                                                    (__v32hi)
     692             :                                                    _mm512_setzero_si512 (),
     693             :                                                    (__mmask32) -1);
     694             : }
     695             : 
     696             : extern __inline __m512i
     697             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     698             : _mm512_mask_mulhi_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
     699             :                          __m512i __B)
     700             : {
     701             :   return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
     702             :                                                    (__v32hi) __B,
     703             :                                                    (__v32hi) __W,
     704             :                                                    (__mmask32) __U);
     705             : }
     706             : 
     707             : extern __inline __m512i
     708             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     709             : _mm512_maskz_mulhi_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
     710             : {
     711             :   return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
     712             :                                                    (__v32hi) __B,
     713             :                                                    (__v32hi)
     714             :                                                    _mm512_setzero_si512 (),
     715             :                                                    (__mmask32) __U);
     716             : }
     717             : 
     718             : extern __inline __m512i
     719             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     720             : _mm512_mullo_epi16 (__m512i __A, __m512i __B)
     721             : {
     722             :   return (__m512i) ((__v32hu) __A * (__v32hu) __B);
     723             : }
     724             : 
     725             : extern __inline __m512i
     726             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     727             : _mm512_mask_mullo_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
     728             :                          __m512i __B)
     729             : {
     730             :   return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A,
     731             :                                                   (__v32hi) __B,
     732             :                                                   (__v32hi) __W,
     733             :                                                   (__mmask32) __U);
     734             : }
     735             : 
     736             : extern __inline __m512i
     737             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     738             : _mm512_maskz_mullo_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
     739             : {
     740             :   return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A,
     741             :                                                   (__v32hi) __B,
     742             :                                                   (__v32hi)
     743             :                                                   _mm512_setzero_si512 (),
     744             :                                                   (__mmask32) __U);
     745             : }
     746             : 
     747             : extern __inline __m512i
     748             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     749             : _mm512_cvtepi8_epi16 (__m256i __A)
     750             : {
     751             :   return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
     752             :                                                     (__v32hi)
     753             :                                                     _mm512_setzero_si512 (),
     754             :                                                     (__mmask32) -1);
     755             : }
     756             : 
     757             : extern __inline __m512i
     758             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     759             : _mm512_mask_cvtepi8_epi16 (__m512i __W, __mmask32 __U, __m256i __A)
     760             : {
     761             :   return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
     762             :                                                     (__v32hi) __W,
     763             :                                                     (__mmask32) __U);
     764             : }
     765             : 
     766             : extern __inline __m512i
     767             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     768             : _mm512_maskz_cvtepi8_epi16 (__mmask32 __U, __m256i __A)
     769             : {
     770             :   return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
     771             :                                                     (__v32hi)
     772             :                                                     _mm512_setzero_si512 (),
     773             :                                                     (__mmask32) __U);
     774             : }
     775             : 
     776             : extern __inline __m512i
     777             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     778             : _mm512_cvtepu8_epi16 (__m256i __A)
     779             : {
     780             :   return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
     781             :                                                     (__v32hi)
     782             :                                                     _mm512_setzero_si512 (),
     783             :                                                     (__mmask32) -1);
     784             : }
     785             : 
     786             : extern __inline __m512i
     787             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     788             : _mm512_mask_cvtepu8_epi16 (__m512i __W, __mmask32 __U, __m256i __A)
     789             : {
     790             :   return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
     791             :                                                     (__v32hi) __W,
     792             :                                                     (__mmask32) __U);
     793             : }
     794             : 
     795             : extern __inline __m512i
     796             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     797             : _mm512_maskz_cvtepu8_epi16 (__mmask32 __U, __m256i __A)
     798             : {
     799             :   return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
     800             :                                                     (__v32hi)
     801             :                                                     _mm512_setzero_si512 (),
     802             :                                                     (__mmask32) __U);
     803             : }
     804             : 
     805             : extern __inline __m512i
     806             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     807             : _mm512_permutexvar_epi16 (__m512i __A, __m512i __B)
     808             : {
     809             :   return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
     810             :                                                      (__v32hi) __A,
     811             :                                                      (__v32hi)
     812             :                                                      _mm512_setzero_si512 (),
     813             :                                                      (__mmask32) -1);
     814             : }
     815             : 
     816             : extern __inline __m512i
     817             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     818             : _mm512_maskz_permutexvar_epi16 (__mmask32 __M, __m512i __A,
     819             :                                 __m512i __B)
     820             : {
     821             :   return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
     822             :                                                      (__v32hi) __A,
     823             :                                                      (__v32hi)
     824             :                                                      _mm512_setzero_si512 (),
     825             :                                                      (__mmask32) __M);
     826             : }
     827             : 
     828             : extern __inline __m512i
     829             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     830             : _mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
     831             :                                __m512i __B)
     832             : {
     833             :   return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
     834             :                                                      (__v32hi) __A,
     835             :                                                      (__v32hi) __W,
     836             :                                                      (__mmask32) __M);
     837             : }
     838             : 
     839             : extern __inline __m512i
     840             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     841             : _mm512_permutex2var_epi16 (__m512i __A, __m512i __I, __m512i __B)
     842             : {
     843             :   return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I
     844             :                                                         /* idx */ ,
     845             :                                                         (__v32hi) __A,
     846             :                                                         (__v32hi) __B,
     847             :                                                         (__mmask32) -1);
     848             : }
     849             : 
     850             : extern __inline __m512i
     851             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     852             : _mm512_mask_permutex2var_epi16 (__m512i __A, __mmask32 __U,
     853             :                                 __m512i __I, __m512i __B)
     854             : {
     855             :   return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I
     856             :                                                         /* idx */ ,
     857             :                                                         (__v32hi) __A,
     858             :                                                         (__v32hi) __B,
     859             :                                                         (__mmask32)
     860             :                                                         __U);
     861             : }
     862             : 
     863             : extern __inline __m512i
     864             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     865             : _mm512_mask2_permutex2var_epi16 (__m512i __A, __m512i __I,
     866             :                                  __mmask32 __U, __m512i __B)
     867             : {
     868             :   return (__m512i) __builtin_ia32_vpermi2varhi512_mask ((__v32hi) __A,
     869             :                                                         (__v32hi) __I
     870             :                                                         /* idx */ ,
     871             :                                                         (__v32hi) __B,
     872             :                                                         (__mmask32)
     873             :                                                         __U);
     874             : }
     875             : 
     876             : extern __inline __m512i
     877             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     878             : _mm512_maskz_permutex2var_epi16 (__mmask32 __U, __m512i __A,
     879             :                                  __m512i __I, __m512i __B)
     880             : {
     881             :   return (__m512i) __builtin_ia32_vpermt2varhi512_maskz ((__v32hi) __I
     882             :                                                          /* idx */ ,
     883             :                                                          (__v32hi) __A,
     884             :                                                          (__v32hi) __B,
     885             :                                                          (__mmask32)
     886             :                                                          __U);
     887             : }
     888             : 
     889             : extern __inline __m512i
     890             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     891             : _mm512_avg_epu8 (__m512i __A, __m512i __B)
     892             : {
     893             :   return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
     894             :                                                  (__v64qi) __B,
     895             :                                                  (__v64qi)
     896             :                                                  _mm512_setzero_si512 (),
     897             :                                                  (__mmask64) -1);
     898             : }
     899             : 
     900             : extern __inline __m512i
     901             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     902             : _mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
     903             :                       __m512i __B)
     904             : {
     905             :   return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
     906             :                                                  (__v64qi) __B,
     907             :                                                  (__v64qi) __W,
     908             :                                                  (__mmask64) __U);
     909             : }
     910             : 
     911             : extern __inline __m512i
     912             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     913             : _mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
     914             : {
     915             :   return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
     916             :                                                  (__v64qi) __B,
     917             :                                                  (__v64qi)
     918             :                                                  _mm512_setzero_si512 (),
     919             :                                                  (__mmask64) __U);
     920             : }
     921             : 
     922             : extern __inline __m512i
     923             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     924             : _mm512_add_epi8 (__m512i __A, __m512i __B)
     925             : {
     926             :   return (__m512i) ((__v64qu) __A + (__v64qu) __B);
     927             : }
     928             : 
     929             : extern __inline __m512i
     930             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     931             : _mm512_mask_add_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
     932             :                       __m512i __B)
     933             : {
     934             :   return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A,
     935             :                                                  (__v64qi) __B,
     936             :                                                  (__v64qi) __W,
     937             :                                                  (__mmask64) __U);
     938             : }
     939             : 
     940             : extern __inline __m512i
     941             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     942             : _mm512_maskz_add_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
     943             : {
     944             :   return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A,
     945             :                                                  (__v64qi) __B,
     946             :                                                  (__v64qi)
     947             :                                                  _mm512_setzero_si512 (),
     948             :                                                  (__mmask64) __U);
     949             : }
     950             : 
     951             : extern __inline __m512i
     952             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     953             : _mm512_sub_epi8 (__m512i __A, __m512i __B)
     954             : {
     955             :   return (__m512i) ((__v64qu) __A - (__v64qu) __B);
     956             : }
     957             : 
     958             : extern __inline __m512i
     959             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     960             : _mm512_mask_sub_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
     961             :                       __m512i __B)
     962             : {
     963             :   return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A,
     964             :                                                  (__v64qi) __B,
     965             :                                                  (__v64qi) __W,
     966             :                                                  (__mmask64) __U);
     967             : }
     968             : 
     969             : extern __inline __m512i
     970             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     971             : _mm512_maskz_sub_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
     972             : {
     973             :   return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A,
     974             :                                                  (__v64qi) __B,
     975             :                                                  (__v64qi)
     976             :                                                  _mm512_setzero_si512 (),
     977             :                                                  (__mmask64) __U);
     978             : }
     979             : 
     980             : extern __inline __m512i
     981             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     982             : _mm512_avg_epu16 (__m512i __A, __m512i __B)
     983             : {
     984             :   return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
     985             :                                                  (__v32hi) __B,
     986             :                                                  (__v32hi)
     987             :                                                  _mm512_setzero_si512 (),
     988             :                                                  (__mmask32) -1);
     989             : }
     990             : 
     991             : extern __inline __m512i
     992             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     993             : _mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
     994             :                        __m512i __B)
     995             : {
     996             :   return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
     997             :                                                  (__v32hi) __B,
     998             :                                                  (__v32hi) __W,
     999             :                                                  (__mmask32) __U);
    1000             : }
    1001             : 
    1002             : extern __inline __m512i
    1003             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1004             : _mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
    1005             : {
    1006             :   return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
    1007             :                                                  (__v32hi) __B,
    1008             :                                                  (__v32hi)
    1009             :                                                  _mm512_setzero_si512 (),
    1010             :                                                  (__mmask32) __U);
    1011             : }
    1012             : 
    1013             : extern __inline __m512i
    1014             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1015             : _mm512_subs_epi8 (__m512i __A, __m512i __B)
    1016             : {
    1017             :   return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
    1018             :                                                   (__v64qi) __B,
    1019             :                                                   (__v64qi)
    1020             :                                                   _mm512_setzero_si512 (),
    1021             :                                                   (__mmask64) -1);
    1022             : }
    1023             : 
    1024             : extern __inline __m512i
    1025             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1026             : _mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
    1027             :                        __m512i __B)
    1028             : {
    1029             :   return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
    1030             :                                                   (__v64qi) __B,
    1031             :                                                   (__v64qi) __W,
    1032             :                                                   (__mmask64) __U);
    1033             : }
    1034             : 
    1035             : extern __inline __m512i
    1036             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1037             : _mm512_maskz_subs_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
    1038             : {
    1039             :   return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
    1040             :                                                   (__v64qi) __B,
    1041             :                                                   (__v64qi)
    1042             :                                                   _mm512_setzero_si512 (),
    1043             :                                                   (__mmask64) __U);
    1044             : }
    1045             : 
    1046             : extern __inline __m512i
    1047             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1048             : _mm512_subs_epu8 (__m512i __A, __m512i __B)
    1049             : {
    1050             :   return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
    1051             :                                                    (__v64qi) __B,
    1052             :                                                    (__v64qi)
    1053             :                                                    _mm512_setzero_si512 (),
    1054             :                                                    (__mmask64) -1);
    1055             : }
    1056             : 
    1057             : extern __inline __m512i
    1058             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1059             : _mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
    1060             :                        __m512i __B)
    1061             : {
    1062             :   return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
    1063             :                                                    (__v64qi) __B,
    1064             :                                                    (__v64qi) __W,
    1065             :                                                    (__mmask64) __U);
    1066             : }
    1067             : 
    1068             : extern __inline __m512i
    1069             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1070             : _mm512_maskz_subs_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
    1071             : {
    1072             :   return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
    1073             :                                                    (__v64qi) __B,
    1074             :                                                    (__v64qi)
    1075             :                                                    _mm512_setzero_si512 (),
    1076             :                                                    (__mmask64) __U);
    1077             : }
    1078             : 
    1079             : extern __inline __m512i
    1080             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1081             : _mm512_adds_epi8 (__m512i __A, __m512i __B)
    1082             : {
    1083             :   return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
    1084             :                                                   (__v64qi) __B,
    1085             :                                                   (__v64qi)
    1086             :                                                   _mm512_setzero_si512 (),
    1087             :                                                   (__mmask64) -1);
    1088             : }
    1089             : 
    1090             : extern __inline __m512i
    1091             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1092             : _mm512_mask_adds_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
    1093             :                        __m512i __B)
    1094             : {
    1095             :   return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
    1096             :                                                   (__v64qi) __B,
    1097             :                                                   (__v64qi) __W,
    1098             :                                                   (__mmask64) __U);
    1099             : }
    1100             : 
    1101             : extern __inline __m512i
    1102             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1103             : _mm512_maskz_adds_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
    1104             : {
    1105             :   return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
    1106             :                                                   (__v64qi) __B,
    1107             :                                                   (__v64qi)
    1108             :                                                   _mm512_setzero_si512 (),
    1109             :                                                   (__mmask64) __U);
    1110             : }
    1111             : 
    1112             : extern __inline __m512i
    1113             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1114             : _mm512_adds_epu8 (__m512i __A, __m512i __B)
    1115             : {
    1116             :   return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
    1117             :                                                    (__v64qi) __B,
    1118             :                                                    (__v64qi)
    1119             :                                                    _mm512_setzero_si512 (),
    1120             :                                                    (__mmask64) -1);
    1121             : }
    1122             : 
    1123             : extern __inline __m512i
    1124             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1125             : _mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
    1126             :                        __m512i __B)
    1127             : {
    1128             :   return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
    1129             :                                                    (__v64qi) __B,
    1130             :                                                    (__v64qi) __W,
    1131             :                                                    (__mmask64) __U);
    1132             : }
    1133             : 
    1134             : extern __inline __m512i
    1135             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1136             : _mm512_maskz_adds_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
    1137             : {
    1138             :   return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
    1139             :                                                    (__v64qi) __B,
    1140             :                                                    (__v64qi)
    1141             :                                                    _mm512_setzero_si512 (),
    1142             :                                                    (__mmask64) __U);
    1143             : }
    1144             : 
    1145             : extern __inline __m512i
    1146             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1147             : _mm512_sub_epi16 (__m512i __A, __m512i __B)
    1148             : {
    1149             :   return (__m512i) ((__v32hu) __A - (__v32hu) __B);
    1150             : }
    1151             : 
    1152             : extern __inline __m512i
    1153             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1154             : _mm512_mask_sub_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    1155             :                        __m512i __B)
    1156             : {
    1157             :   return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A,
    1158             :                                                  (__v32hi) __B,
    1159             :                                                  (__v32hi) __W,
    1160             :                                                  (__mmask32) __U);
    1161             : }
    1162             : 
    1163             : extern __inline __m512i
    1164             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1165             : _mm512_maskz_sub_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
    1166             : {
    1167             :   return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A,
    1168             :                                                  (__v32hi) __B,
    1169             :                                                  (__v32hi)
    1170             :                                                  _mm512_setzero_si512 (),
    1171             :                                                  (__mmask32) __U);
    1172             : }
    1173             : 
    1174             : extern __inline __m512i
    1175             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1176             : _mm512_subs_epi16 (__m512i __A, __m512i __B)
    1177             : {
    1178             :   return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
    1179             :                                                   (__v32hi) __B,
    1180             :                                                   (__v32hi)
    1181             :                                                   _mm512_setzero_si512 (),
    1182             :                                                   (__mmask32) -1);
    1183             : }
    1184             : 
    1185             : extern __inline __m512i
    1186             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1187             : _mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    1188             :                         __m512i __B)
    1189             : {
    1190             :   return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
    1191             :                                                   (__v32hi) __B,
    1192             :                                                   (__v32hi) __W,
    1193             :                                                   (__mmask32) __U);
    1194             : }
    1195             : 
    1196             : extern __inline __m512i
    1197             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1198             : _mm512_maskz_subs_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
    1199             : {
    1200             :   return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
    1201             :                                                   (__v32hi) __B,
    1202             :                                                   (__v32hi)
    1203             :                                                   _mm512_setzero_si512 (),
    1204             :                                                   (__mmask32) __U);
    1205             : }
    1206             : 
    1207             : extern __inline __m512i
    1208             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1209             : _mm512_subs_epu16 (__m512i __A, __m512i __B)
    1210             : {
    1211             :   return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
    1212             :                                                    (__v32hi) __B,
    1213             :                                                    (__v32hi)
    1214             :                                                    _mm512_setzero_si512 (),
    1215             :                                                    (__mmask32) -1);
    1216             : }
    1217             : 
    1218             : extern __inline __m512i
    1219             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1220             : _mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
    1221             :                         __m512i __B)
    1222             : {
    1223             :   return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
    1224             :                                                    (__v32hi) __B,
    1225             :                                                    (__v32hi) __W,
    1226             :                                                    (__mmask32) __U);
    1227             : }
    1228             : 
    1229             : extern __inline __m512i
    1230             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1231             : _mm512_maskz_subs_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
    1232             : {
    1233             :   return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
    1234             :                                                    (__v32hi) __B,
    1235             :                                                    (__v32hi)
    1236             :                                                    _mm512_setzero_si512 (),
    1237             :                                                    (__mmask32) __U);
    1238             : }
    1239             : 
    1240             : extern __inline __m512i
    1241             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1242             : _mm512_add_epi16 (__m512i __A, __m512i __B)
    1243             : {
    1244             :   return (__m512i) ((__v32hu) __A + (__v32hu) __B);
    1245             : }
    1246             : 
    1247             : extern __inline __m512i
    1248             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1249             : _mm512_mask_add_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    1250             :                        __m512i __B)
    1251             : {
    1252             :   return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A,
    1253             :                                                  (__v32hi) __B,
    1254             :                                                  (__v32hi) __W,
    1255             :                                                  (__mmask32) __U);
    1256             : }
    1257             : 
    1258             : extern __inline __m512i
    1259             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1260             : _mm512_maskz_add_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
    1261             : {
    1262             :   return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A,
    1263             :                                                  (__v32hi) __B,
    1264             :                                                  (__v32hi)
    1265             :                                                  _mm512_setzero_si512 (),
    1266             :                                                  (__mmask32) __U);
    1267             : }
    1268             : 
    1269             : extern __inline __m512i
    1270             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1271             : _mm512_adds_epi16 (__m512i __A, __m512i __B)
    1272             : {
    1273             :   return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
    1274             :                                                   (__v32hi) __B,
    1275             :                                                   (__v32hi)
    1276             :                                                   _mm512_setzero_si512 (),
    1277             :                                                   (__mmask32) -1);
    1278             : }
    1279             : 
    1280             : extern __inline __m512i
    1281             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1282             : _mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    1283             :                         __m512i __B)
    1284             : {
    1285             :   return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
    1286             :                                                   (__v32hi) __B,
    1287             :                                                   (__v32hi) __W,
    1288             :                                                   (__mmask32) __U);
    1289             : }
    1290             : 
    1291             : extern __inline __m512i
    1292             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1293             : _mm512_maskz_adds_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
    1294             : {
    1295             :   return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
    1296             :                                                   (__v32hi) __B,
    1297             :                                                   (__v32hi)
    1298             :                                                   _mm512_setzero_si512 (),
    1299             :                                                   (__mmask32) __U);
    1300             : }
    1301             : 
    1302             : extern __inline __m512i
    1303             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1304             : _mm512_adds_epu16 (__m512i __A, __m512i __B)
    1305             : {
    1306             :   return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
    1307             :                                                    (__v32hi) __B,
    1308             :                                                    (__v32hi)
    1309             :                                                    _mm512_setzero_si512 (),
    1310             :                                                    (__mmask32) -1);
    1311             : }
    1312             : 
    1313             : extern __inline __m512i
    1314             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1315             : _mm512_mask_adds_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
    1316             :                         __m512i __B)
    1317             : {
    1318             :   return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
    1319             :                                                    (__v32hi) __B,
    1320             :                                                    (__v32hi) __W,
    1321             :                                                    (__mmask32) __U);
    1322             : }
    1323             : 
    1324             : extern __inline __m512i
    1325             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1326             : _mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
    1327             : {
    1328             :   return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
    1329             :                                                    (__v32hi) __B,
    1330             :                                                    (__v32hi)
    1331             :                                                    _mm512_setzero_si512 (),
    1332             :                                                    (__mmask32) __U);
    1333             : }
    1334             : 
    1335             : extern __inline __m512i
    1336             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1337             : _mm512_srl_epi16 (__m512i __A, __m128i __B)
    1338             : {
    1339             :   return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,
    1340             :                                                  (__v8hi) __B,
    1341             :                                                  (__v32hi)
    1342             :                                                  _mm512_setzero_si512 (),
    1343             :                                                  (__mmask32) -1);
    1344             : }
    1345             : 
    1346             : extern __inline __m512i
    1347             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1348             : _mm512_mask_srl_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    1349             :                        __m128i __B)
    1350             : {
    1351             :   return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,
    1352             :                                                  (__v8hi) __B,
    1353             :                                                  (__v32hi) __W,
    1354             :                                                  (__mmask32) __U);
    1355             : }
    1356             : 
    1357             : extern __inline __m512i
    1358             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1359             : _mm512_maskz_srl_epi16 (__mmask32 __U, __m512i __A, __m128i __B)
    1360             : {
    1361             :   return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,
    1362             :                                                  (__v8hi) __B,
    1363             :                                                  (__v32hi)
    1364             :                                                  _mm512_setzero_si512 (),
    1365             :                                                  (__mmask32) __U);
    1366             : }
    1367             : 
    1368             : extern __inline __m512i
    1369             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1370             : _mm512_packs_epi16 (__m512i __A, __m512i __B)
    1371             : {
    1372           0 :   return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
    1373             :                                                     (__v32hi) __B,
    1374             :                                                     (__v64qi)
    1375           0 :                                                     _mm512_setzero_si512 (),
    1376             :                                                     (__mmask64) -1);
    1377             : }
    1378             : 
    1379             : extern __inline __m512i
    1380             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1381             : _mm512_sll_epi16 (__m512i __A, __m128i __B)
    1382             : {
    1383             :   return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,
    1384             :                                                  (__v8hi) __B,
    1385             :                                                  (__v32hi)
    1386             :                                                  _mm512_setzero_si512 (),
    1387             :                                                  (__mmask32) -1);
    1388             : }
    1389             : 
    1390             : extern __inline __m512i
    1391             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1392             : _mm512_mask_sll_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    1393             :                        __m128i __B)
    1394             : {
    1395             :   return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,
    1396             :                                                  (__v8hi) __B,
    1397             :                                                  (__v32hi) __W,
    1398             :                                                  (__mmask32) __U);
    1399             : }
    1400             : 
    1401             : extern __inline __m512i
    1402             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1403             : _mm512_maskz_sll_epi16 (__mmask32 __U, __m512i __A, __m128i __B)
    1404             : {
    1405             :   return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,
    1406             :                                                  (__v8hi) __B,
    1407             :                                                  (__v32hi)
    1408             :                                                  _mm512_setzero_si512 (),
    1409             :                                                  (__mmask32) __U);
    1410             : }
    1411             : 
    1412             : extern __inline __m512i
    1413             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1414             : _mm512_maddubs_epi16 (__m512i __X, __m512i __Y)
    1415             : {
    1416             :   return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
    1417             :                                                      (__v64qi) __Y,
    1418             :                                                      (__v32hi)
    1419             :                                                      _mm512_setzero_si512 (),
    1420             :                                                      (__mmask32) -1);
    1421             : }
    1422             : 
    1423             : extern __inline __m512i
    1424             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1425             : _mm512_mask_maddubs_epi16 (__m512i __W, __mmask32 __U, __m512i __X,
    1426             :                            __m512i __Y)
    1427             : {
    1428             :   return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
    1429             :                                                      (__v64qi) __Y,
    1430             :                                                      (__v32hi) __W,
    1431             :                                                      (__mmask32) __U);
    1432             : }
    1433             : 
    1434             : extern __inline __m512i
    1435             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1436             : _mm512_maskz_maddubs_epi16 (__mmask32 __U, __m512i __X, __m512i __Y)
    1437             : {
    1438             :   return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
    1439             :                                                      (__v64qi) __Y,
    1440             :                                                      (__v32hi)
    1441             :                                                      _mm512_setzero_si512 (),
    1442             :                                                      (__mmask32) __U);
    1443             : }
    1444             : 
    1445             : extern __inline __m512i
    1446             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1447             : _mm512_madd_epi16 (__m512i __A, __m512i __B)
    1448             : {
    1449             :   return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
    1450             :                                                    (__v32hi) __B,
    1451             :                                                    (__v16si)
    1452             :                                                    _mm512_setzero_si512 (),
    1453             :                                                    (__mmask16) -1);
    1454             : }
    1455             : 
    1456             : extern __inline __m512i
    1457             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1458             : _mm512_mask_madd_epi16 (__m512i __W, __mmask16 __U, __m512i __A,
    1459             :                         __m512i __B)
    1460             : {
    1461             :   return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
    1462             :                                                    (__v32hi) __B,
    1463             :                                                    (__v16si) __W,
    1464             :                                                    (__mmask16) __U);
    1465             : }
    1466             : 
    1467             : extern __inline __m512i
    1468             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1469             : _mm512_maskz_madd_epi16 (__mmask16 __U, __m512i __A, __m512i __B)
    1470             : {
    1471             :   return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
    1472             :                                                    (__v32hi) __B,
    1473             :                                                    (__v16si)
    1474             :                                                    _mm512_setzero_si512 (),
    1475             :                                                    (__mmask16) __U);
    1476             : }
    1477             : 
    1478             : extern __inline __m512i
    1479             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1480             : _mm512_unpackhi_epi8 (__m512i __A, __m512i __B)
    1481             : {
    1482             :   return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A,
    1483             :                                                      (__v64qi) __B,
    1484             :                                                      (__v64qi)
    1485             :                                                      _mm512_setzero_si512 (),
    1486             :                                                      (__mmask64) -1);
    1487             : }
    1488             : 
    1489             : extern __inline __m512i
    1490             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1491             : _mm512_mask_unpackhi_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
    1492             :                            __m512i __B)
    1493             : {
    1494             :   return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A,
    1495             :                                                      (__v64qi) __B,
    1496             :                                                      (__v64qi) __W,
    1497             :                                                      (__mmask64) __U);
    1498             : }
    1499             : 
    1500             : extern __inline __m512i
    1501             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1502             : _mm512_maskz_unpackhi_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
    1503             : {
    1504             :   return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A,
    1505             :                                                      (__v64qi) __B,
    1506             :                                                      (__v64qi)
    1507             :                                                      _mm512_setzero_si512 (),
    1508             :                                                      (__mmask64) __U);
    1509             : }
    1510             : 
    1511             : extern __inline __m512i
    1512             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1513             : _mm512_unpackhi_epi16 (__m512i __A, __m512i __B)
    1514             : {
    1515             :   return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A,
    1516             :                                                      (__v32hi) __B,
    1517             :                                                      (__v32hi)
    1518             :                                                      _mm512_setzero_si512 (),
    1519             :                                                      (__mmask32) -1);
    1520             : }
    1521             : 
    1522             : extern __inline __m512i
    1523             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1524             : _mm512_mask_unpackhi_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    1525             :                             __m512i __B)
    1526             : {
    1527             :   return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A,
    1528             :                                                      (__v32hi) __B,
    1529             :                                                      (__v32hi) __W,
    1530             :                                                      (__mmask32) __U);
    1531             : }
    1532             : 
    1533             : extern __inline __m512i
    1534             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1535             : _mm512_maskz_unpackhi_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
    1536             : {
    1537             :   return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A,
    1538             :                                                      (__v32hi) __B,
    1539             :                                                      (__v32hi)
    1540             :                                                      _mm512_setzero_si512 (),
    1541             :                                                      (__mmask32) __U);
    1542             : }
    1543             : 
    1544             : extern __inline __m512i
    1545             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1546             : _mm512_unpacklo_epi8 (__m512i __A, __m512i __B)
    1547             : {
    1548             :   return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A,
    1549             :                                                      (__v64qi) __B,
    1550             :                                                      (__v64qi)
    1551             :                                                      _mm512_setzero_si512 (),
    1552             :                                                      (__mmask64) -1);
    1553             : }
    1554             : 
    1555             : extern __inline __m512i
    1556             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1557             : _mm512_mask_unpacklo_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
    1558             :                            __m512i __B)
    1559             : {
    1560             :   return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A,
    1561             :                                                      (__v64qi) __B,
    1562             :                                                      (__v64qi) __W,
    1563             :                                                      (__mmask64) __U);
    1564             : }
    1565             : 
    1566             : extern __inline __m512i
    1567             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1568             : _mm512_maskz_unpacklo_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
    1569             : {
    1570             :   return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A,
    1571             :                                                      (__v64qi) __B,
    1572             :                                                      (__v64qi)
    1573             :                                                      _mm512_setzero_si512 (),
    1574             :                                                      (__mmask64) __U);
    1575             : }
    1576             : 
    1577             : extern __inline __m512i
    1578             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1579             : _mm512_unpacklo_epi16 (__m512i __A, __m512i __B)
    1580             : {
    1581             :   return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A,
    1582             :                                                      (__v32hi) __B,
    1583             :                                                      (__v32hi)
    1584             :                                                      _mm512_setzero_si512 (),
    1585             :                                                      (__mmask32) -1);
    1586             : }
    1587             : 
    1588             : extern __inline __m512i
    1589             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1590             : _mm512_mask_unpacklo_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    1591             :                             __m512i __B)
    1592             : {
    1593             :   return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A,
    1594             :                                                      (__v32hi) __B,
    1595             :                                                      (__v32hi) __W,
    1596             :                                                      (__mmask32) __U);
    1597             : }
    1598             : 
    1599             : extern __inline __m512i
    1600             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1601             : _mm512_maskz_unpacklo_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
    1602             : {
    1603             :   return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A,
    1604             :                                                      (__v32hi) __B,
    1605             :                                                      (__v32hi)
    1606             :                                                      _mm512_setzero_si512 (),
    1607             :                                                      (__mmask32) __U);
    1608             : }
    1609             : 
    1610             : extern __inline __mmask64
    1611             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1612             : _mm512_cmpeq_epu8_mask (__m512i __A, __m512i __B)
    1613             : {
    1614             :   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A,
    1615             :                                                     (__v64qi) __B, 0,
    1616             :                                                     (__mmask64) -1);
    1617             : }
    1618             : 
    1619             : extern __inline __mmask64
    1620             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1621             : _mm512_cmpeq_epi8_mask (__m512i __A, __m512i __B)
    1622             : {
    1623             :   return (__mmask64) __builtin_ia32_pcmpeqb512_mask ((__v64qi) __A,
    1624             :                                                      (__v64qi) __B,
    1625             :                                                      (__mmask64) -1);
    1626             : }
    1627             : 
    1628             : extern __inline __mmask64
    1629             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1630             : _mm512_mask_cmpeq_epu8_mask (__mmask64 __U, __m512i __A, __m512i __B)
    1631             : {
    1632             :   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A,
    1633             :                                                     (__v64qi) __B, 0,
    1634             :                                                     __U);
    1635             : }
    1636             : 
    1637             : extern __inline __mmask64
    1638             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1639             : _mm512_mask_cmpeq_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
    1640             : {
    1641             :   return (__mmask64) __builtin_ia32_pcmpeqb512_mask ((__v64qi) __A,
    1642             :                                                      (__v64qi) __B,
    1643             :                                                      __U);
    1644             : }
    1645             : 
    1646             : extern __inline __mmask32
    1647             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1648             : _mm512_cmpeq_epu16_mask (__m512i __A, __m512i __B)
    1649             : {
    1650             :   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A,
    1651             :                                                     (__v32hi) __B, 0,
    1652             :                                                     (__mmask32) -1);
    1653             : }
    1654             : 
    1655             : extern __inline __mmask32
    1656             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1657             : _mm512_cmpeq_epi16_mask (__m512i __A, __m512i __B)
    1658             : {
    1659             :   return (__mmask32) __builtin_ia32_pcmpeqw512_mask ((__v32hi) __A,
    1660             :                                                      (__v32hi) __B,
    1661             :                                                      (__mmask32) -1);
    1662             : }
    1663             : 
    1664             : extern __inline __mmask32
    1665             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1666             : _mm512_mask_cmpeq_epu16_mask (__mmask32 __U, __m512i __A, __m512i __B)
    1667             : {
    1668             :   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A,
    1669             :                                                     (__v32hi) __B, 0,
    1670             :                                                     __U);
    1671             : }
    1672             : 
    1673             : extern __inline __mmask32
    1674             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1675             : _mm512_mask_cmpeq_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
    1676             : {
    1677             :   return (__mmask32) __builtin_ia32_pcmpeqw512_mask ((__v32hi) __A,
    1678             :                                                      (__v32hi) __B,
    1679             :                                                      __U);
    1680             : }
    1681             : 
    1682             : extern __inline __mmask64
    1683             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1684             : _mm512_cmpgt_epu8_mask (__m512i __A, __m512i __B)
    1685             : {
    1686             :   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A,
    1687             :                                                     (__v64qi) __B, 6,
    1688             :                                                     (__mmask64) -1);
    1689             : }
    1690             : 
    1691             : extern __inline __mmask64
    1692             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1693             : _mm512_cmpgt_epi8_mask (__m512i __A, __m512i __B)
    1694             : {
    1695             :   return (__mmask64) __builtin_ia32_pcmpgtb512_mask ((__v64qi) __A,
    1696             :                                                      (__v64qi) __B,
    1697             :                                                      (__mmask64) -1);
    1698             : }
    1699             : 
    1700             : extern __inline __mmask64
    1701             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1702             : _mm512_mask_cmpgt_epu8_mask (__mmask64 __U, __m512i __A, __m512i __B)
    1703             : {
    1704             :   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A,
    1705             :                                                     (__v64qi) __B, 6,
    1706             :                                                     __U);
    1707             : }
    1708             : 
    1709             : extern __inline __mmask64
    1710             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1711             : _mm512_mask_cmpgt_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
    1712             : {
    1713             :   return (__mmask64) __builtin_ia32_pcmpgtb512_mask ((__v64qi) __A,
    1714             :                                                      (__v64qi) __B,
    1715             :                                                      __U);
    1716             : }
    1717             : 
    1718             : extern __inline __mmask32
    1719             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1720             : _mm512_cmpgt_epu16_mask (__m512i __A, __m512i __B)
    1721             : {
    1722             :   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A,
    1723             :                                                     (__v32hi) __B, 6,
    1724             :                                                     (__mmask32) -1);
    1725             : }
    1726             : 
    1727             : extern __inline __mmask32
    1728             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1729             : _mm512_cmpgt_epi16_mask (__m512i __A, __m512i __B)
    1730             : {
    1731             :   return (__mmask32) __builtin_ia32_pcmpgtw512_mask ((__v32hi) __A,
    1732             :                                                      (__v32hi) __B,
    1733             :                                                      (__mmask32) -1);
    1734             : }
    1735             : 
    1736             : extern __inline __mmask32
    1737             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1738             : _mm512_mask_cmpgt_epu16_mask (__mmask32 __U, __m512i __A, __m512i __B)
    1739             : {
    1740             :   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A,
    1741             :                                                     (__v32hi) __B, 6,
    1742             :                                                     __U);
    1743             : }
    1744             : 
    1745             : extern __inline __mmask32
    1746             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1747             : _mm512_mask_cmpgt_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
    1748             : {
    1749             :   return (__mmask32) __builtin_ia32_pcmpgtw512_mask ((__v32hi) __A,
    1750             :                                                      (__v32hi) __B,
    1751             :                                                      __U);
    1752             : }
    1753             : 
    1754             : extern __inline __mmask64
    1755             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1756             : _mm512_movepi8_mask (__m512i __A)
    1757             : {
    1758             :   return (__mmask64) __builtin_ia32_cvtb2mask512 ((__v64qi) __A);
    1759             : }
    1760             : 
    1761             : extern __inline __mmask32
    1762             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1763             : _mm512_movepi16_mask (__m512i __A)
    1764             : {
    1765             :   return (__mmask32) __builtin_ia32_cvtw2mask512 ((__v32hi) __A);
    1766             : }
    1767             : 
    1768             : extern __inline __m512i
    1769             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1770             : _mm512_movm_epi8 (__mmask64 __A)
    1771             : {
    1772             :   return (__m512i) __builtin_ia32_cvtmask2b512 (__A);
    1773             : }
    1774             : 
    1775             : extern __inline __m512i
    1776             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1777             : _mm512_movm_epi16 (__mmask32 __A)
    1778             : {
    1779             :   return (__m512i) __builtin_ia32_cvtmask2w512 (__A);
    1780             : }
    1781             : 
    1782             : extern __inline __mmask64
    1783             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1784             : _mm512_test_epi8_mask (__m512i __A, __m512i __B)
    1785             : {
    1786             :   return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A,
    1787             :                                                 (__v64qi) __B,
    1788             :                                                 (__mmask64) -1);
    1789             : }
    1790             : 
    1791             : extern __inline __mmask64
    1792             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1793             : _mm512_mask_test_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
    1794             : {
    1795             :   return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A,
    1796             :                                                 (__v64qi) __B, __U);
    1797             : }
    1798             : 
    1799             : extern __inline __mmask32
    1800             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1801             : _mm512_test_epi16_mask (__m512i __A, __m512i __B)
    1802             : {
    1803             :   return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A,
    1804             :                                                 (__v32hi) __B,
    1805             :                                                 (__mmask32) -1);
    1806             : }
    1807             : 
    1808             : extern __inline __mmask32
    1809             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1810             : _mm512_mask_test_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
    1811             : {
    1812             :   return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A,
    1813             :                                                 (__v32hi) __B, __U);
    1814             : }
    1815             : 
    1816             : extern __inline __mmask64
    1817             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1818             : _mm512_testn_epi8_mask (__m512i __A, __m512i __B)
    1819             : {
    1820             :   return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A,
    1821             :                                                  (__v64qi) __B,
    1822             :                                                  (__mmask64) -1);
    1823             : }
    1824             : 
    1825             : extern __inline __mmask64
    1826             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1827             : _mm512_mask_testn_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
    1828             : {
    1829             :   return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A,
    1830             :                                                  (__v64qi) __B, __U);
    1831             : }
    1832             : 
    1833             : extern __inline __mmask32
    1834             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1835             : _mm512_testn_epi16_mask (__m512i __A, __m512i __B)
    1836             : {
    1837             :   return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A,
    1838             :                                                  (__v32hi) __B,
    1839             :                                                  (__mmask32) -1);
    1840             : }
    1841             : 
    1842             : extern __inline __mmask32
    1843             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1844             : _mm512_mask_testn_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
    1845             : {
    1846             :   return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A,
    1847             :                                                  (__v32hi) __B, __U);
    1848             : }
    1849             : 
    1850             : extern __inline __m512i
    1851             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1852             : _mm512_shuffle_epi8 (__m512i __A, __m512i __B)
    1853             : {
    1854             :   return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
    1855             :                                                   (__v64qi) __B,
    1856             :                                                   (__v64qi)
    1857             :                                                   _mm512_setzero_si512 (),
    1858             :                                                   (__mmask64) -1);
    1859             : }
    1860             : 
    1861             : extern __inline __m512i
    1862             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1863             : _mm512_mask_shuffle_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
    1864             :                           __m512i __B)
    1865             : {
    1866             :   return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
    1867             :                                                   (__v64qi) __B,
    1868             :                                                   (__v64qi) __W,
    1869             :                                                   (__mmask64) __U);
    1870             : }
    1871             : 
    1872             : extern __inline __m512i
    1873             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1874             : _mm512_maskz_shuffle_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
    1875             : {
    1876             :   return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
    1877             :                                                   (__v64qi) __B,
    1878             :                                                   (__v64qi)
    1879             :                                                   _mm512_setzero_si512 (),
    1880             :                                                   (__mmask64) __U);
    1881             : }
    1882             : 
    1883             : extern __inline __m512i
    1884             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1885             : _mm512_min_epu16 (__m512i __A, __m512i __B)
    1886             : {
    1887             :   return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
    1888             :                                                   (__v32hi) __B,
    1889             :                                                   (__v32hi)
    1890             :                                                   _mm512_setzero_si512 (),
    1891             :                                                   (__mmask32) -1);
    1892             : }
    1893             : 
    1894             : extern __inline __m512i
    1895             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1896             : _mm512_maskz_min_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
    1897             : {
    1898             :   return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
    1899             :                                                   (__v32hi) __B,
    1900             :                                                   (__v32hi)
    1901             :                                                   _mm512_setzero_si512 (),
    1902             :                                                   (__mmask32) __M);
    1903             : }
    1904             : 
    1905             : extern __inline __m512i
    1906             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1907             : _mm512_mask_min_epu16 (__m512i __W, __mmask32 __M, __m512i __A,
    1908             :                        __m512i __B)
    1909             : {
    1910             :   return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
    1911             :                                                   (__v32hi) __B,
    1912             :                                                   (__v32hi) __W,
    1913             :                                                   (__mmask32) __M);
    1914             : }
    1915             : 
    1916             : extern __inline __m512i
    1917             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1918             : _mm512_min_epi16 (__m512i __A, __m512i __B)
    1919             : {
    1920             :   return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
    1921             :                                                   (__v32hi) __B,
    1922             :                                                   (__v32hi)
    1923             :                                                   _mm512_setzero_si512 (),
    1924             :                                                   (__mmask32) -1);
    1925             : }
    1926             : 
    1927             : extern __inline __m512i
    1928             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1929             : _mm512_maskz_min_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
    1930             : {
    1931             :   return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
    1932             :                                                   (__v32hi) __B,
    1933             :                                                   (__v32hi)
    1934             :                                                   _mm512_setzero_si512 (),
    1935             :                                                   (__mmask32) __M);
    1936             : }
    1937             : 
    1938             : extern __inline __m512i
    1939             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1940             : _mm512_mask_min_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
    1941             :                        __m512i __B)
    1942             : {
    1943             :   return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
    1944             :                                                   (__v32hi) __B,
    1945             :                                                   (__v32hi) __W,
    1946             :                                                   (__mmask32) __M);
    1947             : }
    1948             : 
    1949             : extern __inline __m512i
    1950             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1951             : _mm512_max_epu8 (__m512i __A, __m512i __B)
    1952             : {
    1953             :   return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
    1954             :                                                   (__v64qi) __B,
    1955             :                                                   (__v64qi)
    1956             :                                                   _mm512_setzero_si512 (),
    1957             :                                                   (__mmask64) -1);
    1958             : }
    1959             : 
    1960             : extern __inline __m512i
    1961             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1962             : _mm512_maskz_max_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
    1963             : {
    1964             :   return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
    1965             :                                                   (__v64qi) __B,
    1966             :                                                   (__v64qi)
    1967             :                                                   _mm512_setzero_si512 (),
    1968             :                                                   (__mmask64) __M);
    1969             : }
    1970             : 
    1971             : extern __inline __m512i
    1972             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1973             : _mm512_mask_max_epu8 (__m512i __W, __mmask64 __M, __m512i __A,
    1974             :                       __m512i __B)
    1975             : {
    1976             :   return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
    1977             :                                                   (__v64qi) __B,
    1978             :                                                   (__v64qi) __W,
    1979             :                                                   (__mmask64) __M);
    1980             : }
    1981             : 
    1982             : extern __inline __m512i
    1983             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1984             : _mm512_max_epi8 (__m512i __A, __m512i __B)
    1985             : {
    1986             :   return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
    1987             :                                                   (__v64qi) __B,
    1988             :                                                   (__v64qi)
    1989             :                                                   _mm512_setzero_si512 (),
    1990             :                                                   (__mmask64) -1);
    1991             : }
    1992             : 
    1993             : extern __inline __m512i
    1994             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1995             : _mm512_maskz_max_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
    1996             : {
    1997             :   return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
    1998             :                                                   (__v64qi) __B,
    1999             :                                                   (__v64qi)
    2000             :                                                   _mm512_setzero_si512 (),
    2001             :                                                   (__mmask64) __M);
    2002             : }
    2003             : 
    2004             : extern __inline __m512i
    2005             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2006             : _mm512_mask_max_epi8 (__m512i __W, __mmask64 __M, __m512i __A,
    2007             :                       __m512i __B)
    2008             : {
    2009             :   return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
    2010             :                                                   (__v64qi) __B,
    2011             :                                                   (__v64qi) __W,
    2012             :                                                   (__mmask64) __M);
    2013             : }
    2014             : 
    2015             : extern __inline __m512i
    2016             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2017             : _mm512_min_epu8 (__m512i __A, __m512i __B)
    2018             : {
    2019             :   return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
    2020             :                                                   (__v64qi) __B,
    2021             :                                                   (__v64qi)
    2022             :                                                   _mm512_setzero_si512 (),
    2023             :                                                   (__mmask64) -1);
    2024             : }
    2025             : 
    2026             : extern __inline __m512i
    2027             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2028             : _mm512_maskz_min_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
    2029             : {
    2030             :   return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
    2031             :                                                   (__v64qi) __B,
    2032             :                                                   (__v64qi)
    2033             :                                                   _mm512_setzero_si512 (),
    2034             :                                                   (__mmask64) __M);
    2035             : }
    2036             : 
    2037             : extern __inline __m512i
    2038             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2039             : _mm512_mask_min_epu8 (__m512i __W, __mmask64 __M, __m512i __A,
    2040             :                       __m512i __B)
    2041             : {
    2042             :   return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
    2043             :                                                   (__v64qi) __B,
    2044             :                                                   (__v64qi) __W,
    2045             :                                                   (__mmask64) __M);
    2046             : }
    2047             : 
    2048             : extern __inline __m512i
    2049             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2050             : _mm512_min_epi8 (__m512i __A, __m512i __B)
    2051             : {
    2052             :   return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
    2053             :                                                   (__v64qi) __B,
    2054             :                                                   (__v64qi)
    2055             :                                                   _mm512_setzero_si512 (),
    2056             :                                                   (__mmask64) -1);
    2057             : }
    2058             : 
    2059             : extern __inline __m512i
    2060             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2061             : _mm512_maskz_min_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
    2062             : {
    2063             :   return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
    2064             :                                                   (__v64qi) __B,
    2065             :                                                   (__v64qi)
    2066             :                                                   _mm512_setzero_si512 (),
    2067             :                                                   (__mmask64) __M);
    2068             : }
    2069             : 
    2070             : extern __inline __m512i
    2071             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2072             : _mm512_mask_min_epi8 (__m512i __W, __mmask64 __M, __m512i __A,
    2073             :                       __m512i __B)
    2074             : {
    2075             :   return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
    2076             :                                                   (__v64qi) __B,
    2077             :                                                   (__v64qi) __W,
    2078             :                                                   (__mmask64) __M);
    2079             : }
    2080             : 
    2081             : extern __inline __m512i
    2082             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2083             : _mm512_max_epi16 (__m512i __A, __m512i __B)
    2084             : {
    2085             :   return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
    2086             :                                                   (__v32hi) __B,
    2087             :                                                   (__v32hi)
    2088             :                                                   _mm512_setzero_si512 (),
    2089             :                                                   (__mmask32) -1);
    2090             : }
    2091             : 
    2092             : extern __inline __m512i
    2093             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2094             : _mm512_maskz_max_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
    2095             : {
    2096             :   return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
    2097             :                                                   (__v32hi) __B,
    2098             :                                                   (__v32hi)
    2099             :                                                   _mm512_setzero_si512 (),
    2100             :                                                   (__mmask32) __M);
    2101             : }
    2102             : 
    2103             : extern __inline __m512i
    2104             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2105             : _mm512_mask_max_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
    2106             :                        __m512i __B)
    2107             : {
    2108             :   return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
    2109             :                                                   (__v32hi) __B,
    2110             :                                                   (__v32hi) __W,
    2111             :                                                   (__mmask32) __M);
    2112             : }
    2113             : 
    2114             : extern __inline __m512i
    2115             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2116             : _mm512_max_epu16 (__m512i __A, __m512i __B)
    2117             : {
    2118             :   return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
    2119             :                                                   (__v32hi) __B,
    2120             :                                                   (__v32hi)
    2121             :                                                   _mm512_setzero_si512 (),
    2122             :                                                   (__mmask32) -1);
    2123             : }
    2124             : 
    2125             : extern __inline __m512i
    2126             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2127             : _mm512_maskz_max_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
    2128             : {
    2129             :   return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
    2130             :                                                   (__v32hi) __B,
    2131             :                                                   (__v32hi)
    2132             :                                                   _mm512_setzero_si512 (),
    2133             :                                                   (__mmask32) __M);
    2134             : }
    2135             : 
    2136             : extern __inline __m512i
    2137             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2138             : _mm512_mask_max_epu16 (__m512i __W, __mmask32 __M, __m512i __A,
    2139             :                        __m512i __B)
    2140             : {
    2141             :   return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
    2142             :                                                   (__v32hi) __B,
    2143             :                                                   (__v32hi) __W,
    2144             :                                                   (__mmask32) __M);
    2145             : }
    2146             : 
    2147             : extern __inline __m512i
    2148             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2149             : _mm512_sra_epi16 (__m512i __A, __m128i __B)
    2150             : {
    2151             :   return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,
    2152             :                                                  (__v8hi) __B,
    2153             :                                                  (__v32hi)
    2154             :                                                  _mm512_setzero_si512 (),
    2155             :                                                  (__mmask32) -1);
    2156             : }
    2157             : 
    2158             : extern __inline __m512i
    2159             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2160             : _mm512_mask_sra_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    2161             :                        __m128i __B)
    2162             : {
    2163             :   return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,
    2164             :                                                  (__v8hi) __B,
    2165             :                                                  (__v32hi) __W,
    2166             :                                                  (__mmask32) __U);
    2167             : }
    2168             : 
    2169             : extern __inline __m512i
    2170             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2171             : _mm512_maskz_sra_epi16 (__mmask32 __U, __m512i __A, __m128i __B)
    2172             : {
    2173             :   return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,
    2174             :                                                  (__v8hi) __B,
    2175             :                                                  (__v32hi)
    2176             :                                                  _mm512_setzero_si512 (),
    2177             :                                                  (__mmask32) __U);
    2178             : }
    2179             : 
    2180             : extern __inline __m512i
    2181             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2182             : _mm512_srav_epi16 (__m512i __A, __m512i __B)
    2183             : {
    2184             :   return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,
    2185             :                                                   (__v32hi) __B,
    2186             :                                                   (__v32hi)
    2187             :                                                   _mm512_setzero_si512 (),
    2188             :                                                   (__mmask32) -1);
    2189             : }
    2190             : 
    2191             : extern __inline __m512i
    2192             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2193             : _mm512_mask_srav_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    2194             :                         __m512i __B)
    2195             : {
    2196             :   return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,
    2197             :                                                   (__v32hi) __B,
    2198             :                                                   (__v32hi) __W,
    2199             :                                                   (__mmask32) __U);
    2200             : }
    2201             : 
    2202             : extern __inline __m512i
    2203             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2204             : _mm512_maskz_srav_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
    2205             : {
    2206             :   return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,
    2207             :                                                   (__v32hi) __B,
    2208             :                                                   (__v32hi)
    2209             :                                                   _mm512_setzero_si512 (),
    2210             :                                                   (__mmask32) __U);
    2211             : }
    2212             : 
    2213             : extern __inline __m512i
    2214             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2215             : _mm512_srlv_epi16 (__m512i __A, __m512i __B)
    2216             : {
    2217             :   return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,
    2218             :                                                   (__v32hi) __B,
    2219             :                                                   (__v32hi)
    2220             :                                                   _mm512_setzero_si512 (),
    2221             :                                                   (__mmask32) -1);
    2222             : }
    2223             : 
    2224             : extern __inline __m512i
    2225             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2226             : _mm512_mask_srlv_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    2227             :                         __m512i __B)
    2228             : {
    2229             :   return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,
    2230             :                                                   (__v32hi) __B,
    2231             :                                                   (__v32hi) __W,
    2232             :                                                   (__mmask32) __U);
    2233             : }
    2234             : 
    2235             : extern __inline __m512i
    2236             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2237             : _mm512_maskz_srlv_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
    2238             : {
    2239             :   return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,
    2240             :                                                   (__v32hi) __B,
    2241             :                                                   (__v32hi)
    2242             :                                                   _mm512_setzero_si512 (),
    2243             :                                                   (__mmask32) __U);
    2244             : }
    2245             : 
    2246             : extern __inline __m512i
    2247             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2248             : _mm512_sllv_epi16 (__m512i __A, __m512i __B)
    2249             : {
    2250             :   return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,
    2251             :                                                   (__v32hi) __B,
    2252             :                                                   (__v32hi)
    2253             :                                                   _mm512_setzero_si512 (),
    2254             :                                                   (__mmask32) -1);
    2255             : }
    2256             : 
    2257             : extern __inline __m512i
    2258             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2259             : _mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    2260             :                         __m512i __B)
    2261             : {
    2262             :   return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,
    2263             :                                                   (__v32hi) __B,
    2264             :                                                   (__v32hi) __W,
    2265             :                                                   (__mmask32) __U);
    2266             : }
    2267             : 
    2268             : extern __inline __m512i
    2269             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2270             : _mm512_maskz_sllv_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
    2271             : {
    2272             :   return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,
    2273             :                                                   (__v32hi) __B,
    2274             :                                                   (__v32hi)
    2275             :                                                   _mm512_setzero_si512 (),
    2276             :                                                   (__mmask32) __U);
    2277             : }
    2278             : 
    2279             : extern __inline __m512i
    2280             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2281             : _mm512_mask_packs_epi16 (__m512i __W, __mmask64 __M, __m512i __A,
    2282             :                          __m512i __B)
    2283             : {
    2284             :   return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
    2285             :                                                     (__v32hi) __B,
    2286             :                                                     (__v64qi) __W,
    2287             :                                                     (__mmask64) __M);
    2288             : }
    2289             : 
    2290             : extern __inline __m512i
    2291             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2292             : _mm512_maskz_packs_epi16 (__mmask64 __M, __m512i __A, __m512i __B)
    2293             : {
    2294             :   return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
    2295             :                                                     (__v32hi) __B,
    2296             :                                                     (__v64qi)
    2297             :                                                     _mm512_setzero_si512 (),
    2298             :                                                     __M);
    2299             : }
    2300             : 
    2301             : extern __inline __m512i
    2302             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2303             : _mm512_packus_epi16 (__m512i __A, __m512i __B)
    2304             : {
    2305             :   return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
    2306             :                                                     (__v32hi) __B,
    2307             :                                                     (__v64qi)
    2308             :                                                     _mm512_setzero_si512 (),
    2309             :                                                     (__mmask64) -1);
    2310             : }
    2311             : 
    2312             : extern __inline __m512i
    2313             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2314             : _mm512_mask_packus_epi16 (__m512i __W, __mmask64 __M, __m512i __A,
    2315             :                           __m512i __B)
    2316             : {
    2317             :   return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
    2318             :                                                     (__v32hi) __B,
    2319             :                                                     (__v64qi) __W,
    2320             :                                                     (__mmask64) __M);
    2321             : }
    2322             : 
    2323             : extern __inline __m512i
    2324             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2325             : _mm512_maskz_packus_epi16 (__mmask64 __M, __m512i __A, __m512i __B)
    2326             : {
    2327             :   return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
    2328             :                                                     (__v32hi) __B,
    2329             :                                                     (__v64qi)
    2330             :                                                     _mm512_setzero_si512 (),
    2331             :                                                     (__mmask64) __M);
    2332             : }
    2333             : 
    2334             : extern __inline __m512i
    2335             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2336             : _mm512_abs_epi8 (__m512i __A)
    2337             : {
    2338             :   return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
    2339             :                                                  (__v64qi)
    2340             :                                                  _mm512_setzero_si512 (),
    2341             :                                                  (__mmask64) -1);
    2342             : }
    2343             : 
    2344             : extern __inline __m512i
    2345             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2346             : _mm512_mask_abs_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
    2347             : {
    2348             :   return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
    2349             :                                                  (__v64qi) __W,
    2350             :                                                  (__mmask64) __U);
    2351             : }
    2352             : 
    2353             : extern __inline __m512i
    2354             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2355             : _mm512_maskz_abs_epi8 (__mmask64 __U, __m512i __A)
    2356             : {
    2357             :   return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
    2358             :                                                  (__v64qi)
    2359             :                                                  _mm512_setzero_si512 (),
    2360             :                                                  (__mmask64) __U);
    2361             : }
    2362             : 
    2363             : extern __inline __m512i
    2364             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2365             : _mm512_abs_epi16 (__m512i __A)
    2366             : {
    2367           0 :   return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
    2368             :                                                  (__v32hi)
    2369           0 :                                                  _mm512_setzero_si512 (),
    2370             :                                                  (__mmask32) -1);
    2371             : }
    2372             : 
    2373             : extern __inline __m512i
    2374             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2375             : _mm512_mask_abs_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
    2376             : {
    2377             :   return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
    2378             :                                                  (__v32hi) __W,
    2379             :                                                  (__mmask32) __U);
    2380             : }
    2381             : 
    2382             : extern __inline __m512i
    2383             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2384             : _mm512_maskz_abs_epi16 (__mmask32 __U, __m512i __A)
    2385             : {
    2386             :   return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
    2387             :                                                  (__v32hi)
    2388             :                                                  _mm512_setzero_si512 (),
    2389             :                                                  (__mmask32) __U);
    2390             : }
    2391             : 
    2392             : extern __inline __mmask64
    2393             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2394             : _mm512_mask_cmpneq_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
    2395             : {
    2396             :   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
    2397             :                                                    (__v64qi) __Y, 4,
    2398             :                                                    (__mmask64) __M);
    2399             : }
    2400             : 
    2401             : extern __inline __mmask64
    2402             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2403             : _mm512_mask_cmplt_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
    2404             : {
    2405             :   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
    2406             :                                                    (__v64qi) __Y, 1,
    2407             :                                                    (__mmask64) __M);
    2408             : }
    2409             : 
    2410             : extern __inline __mmask64
    2411             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2412             : _mm512_mask_cmpge_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
    2413             : {
    2414             :   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
    2415             :                                                    (__v64qi) __Y, 5,
    2416             :                                                    (__mmask64) __M);
    2417             : }
    2418             : 
    2419             : extern __inline __mmask64
    2420             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2421             : _mm512_mask_cmple_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
    2422             : {
    2423             :   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
    2424             :                                                    (__v64qi) __Y, 2,
    2425             :                                                    (__mmask64) __M);
    2426             : }
    2427             : 
    2428             : extern __inline __mmask32
    2429             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2430             : _mm512_mask_cmpneq_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
    2431             : {
    2432             :   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
    2433             :                                                    (__v32hi) __Y, 4,
    2434             :                                                    (__mmask32) __M);
    2435             : }
    2436             : 
    2437             : extern __inline __mmask32
    2438             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2439             : _mm512_mask_cmplt_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
    2440             : {
    2441             :   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
    2442             :                                                    (__v32hi) __Y, 1,
    2443             :                                                    (__mmask32) __M);
    2444             : }
    2445             : 
    2446             : extern __inline __mmask32
    2447             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2448             : _mm512_mask_cmpge_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
    2449             : {
    2450             :   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
    2451             :                                                    (__v32hi) __Y, 5,
    2452             :                                                    (__mmask32) __M);
    2453             : }
    2454             : 
    2455             : extern __inline __mmask32
    2456             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2457             : _mm512_mask_cmple_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
    2458             : {
    2459             :   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
    2460             :                                                    (__v32hi) __Y, 2,
    2461             :                                                    (__mmask32) __M);
    2462             : }
    2463             : 
    2464             : extern __inline __mmask64
    2465             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2466             : _mm512_mask_cmpneq_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
    2467             : {
    2468             :   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
    2469             :                                                   (__v64qi) __Y, 4,
    2470             :                                                   (__mmask64) __M);
    2471             : }
    2472             : 
    2473             : extern __inline __mmask64
    2474             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2475             : _mm512_mask_cmplt_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
    2476             : {
    2477             :   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
    2478             :                                                   (__v64qi) __Y, 1,
    2479             :                                                   (__mmask64) __M);
    2480             : }
    2481             : 
    2482             : extern __inline __mmask64
    2483             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2484             : _mm512_mask_cmpge_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
    2485             : {
    2486             :   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
    2487             :                                                   (__v64qi) __Y, 5,
    2488             :                                                   (__mmask64) __M);
    2489             : }
    2490             : 
    2491             : extern __inline __mmask64
    2492             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2493             : _mm512_mask_cmple_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
    2494             : {
    2495             :   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
    2496             :                                                   (__v64qi) __Y, 2,
    2497             :                                                   (__mmask64) __M);
    2498             : }
    2499             : 
    2500             : extern __inline __mmask32
    2501             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2502             : _mm512_mask_cmpneq_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
    2503             : {
    2504             :   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
    2505             :                                                   (__v32hi) __Y, 4,
    2506             :                                                   (__mmask32) __M);
    2507             : }
    2508             : 
    2509             : extern __inline __mmask32
    2510             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2511             : _mm512_mask_cmplt_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
    2512             : {
    2513             :   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
    2514             :                                                   (__v32hi) __Y, 1,
    2515             :                                                   (__mmask32) __M);
    2516             : }
    2517             : 
    2518             : extern __inline __mmask32
    2519             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2520             : _mm512_mask_cmpge_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
    2521             : {
    2522             :   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
    2523             :                                                   (__v32hi) __Y, 5,
    2524             :                                                   (__mmask32) __M);
    2525             : }
    2526             : 
    2527             : extern __inline __mmask32
    2528             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2529             : _mm512_mask_cmple_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
    2530             : {
    2531             :   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
    2532             :                                                   (__v32hi) __Y, 2,
    2533             :                                                   (__mmask32) __M);
    2534             : }
    2535             : 
    2536             : extern __inline __mmask64
    2537             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2538             : _mm512_cmpneq_epu8_mask (__m512i __X, __m512i __Y)
    2539             : {
    2540             :   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
    2541             :                                                    (__v64qi) __Y, 4,
    2542             :                                                    (__mmask64) -1);
    2543             : }
    2544             : 
    2545             : extern __inline __mmask64
    2546             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2547             : _mm512_cmplt_epu8_mask (__m512i __X, __m512i __Y)
    2548             : {
    2549             :   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
    2550             :                                                    (__v64qi) __Y, 1,
    2551             :                                                    (__mmask64) -1);
    2552             : }
    2553             : 
    2554             : extern __inline __mmask64
    2555             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2556             : _mm512_cmpge_epu8_mask (__m512i __X, __m512i __Y)
    2557             : {
    2558             :   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
    2559             :                                                    (__v64qi) __Y, 5,
    2560             :                                                    (__mmask64) -1);
    2561             : }
    2562             : 
    2563             : extern __inline __mmask64
    2564             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2565             : _mm512_cmple_epu8_mask (__m512i __X, __m512i __Y)
    2566             : {
    2567             :   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
    2568             :                                                    (__v64qi) __Y, 2,
    2569             :                                                    (__mmask64) -1);
    2570             : }
    2571             : 
    2572             : extern __inline __mmask32
    2573             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2574             : _mm512_cmpneq_epu16_mask (__m512i __X, __m512i __Y)
    2575             : {
    2576             :   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
    2577             :                                                    (__v32hi) __Y, 4,
    2578             :                                                    (__mmask32) -1);
    2579             : }
    2580             : 
    2581             : extern __inline __mmask32
    2582             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2583             : _mm512_cmplt_epu16_mask (__m512i __X, __m512i __Y)
    2584             : {
    2585             :   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
    2586             :                                                    (__v32hi) __Y, 1,
    2587             :                                                    (__mmask32) -1);
    2588             : }
    2589             : 
    2590             : extern __inline __mmask32
    2591             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2592             : _mm512_cmpge_epu16_mask (__m512i __X, __m512i __Y)
    2593             : {
    2594             :   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
    2595             :                                                    (__v32hi) __Y, 5,
    2596             :                                                    (__mmask32) -1);
    2597             : }
    2598             : 
    2599             : extern __inline __mmask32
    2600             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2601             : _mm512_cmple_epu16_mask (__m512i __X, __m512i __Y)
    2602             : {
    2603             :   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
    2604             :                                                    (__v32hi) __Y, 2,
    2605             :                                                    (__mmask32) -1);
    2606             : }
    2607             : 
    2608             : extern __inline __mmask64
    2609             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2610             : _mm512_cmpneq_epi8_mask (__m512i __X, __m512i __Y)
    2611             : {
    2612             :   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
    2613             :                                                   (__v64qi) __Y, 4,
    2614             :                                                   (__mmask64) -1);
    2615             : }
    2616             : 
    2617             : extern __inline __mmask64
    2618             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2619             : _mm512_cmplt_epi8_mask (__m512i __X, __m512i __Y)
    2620             : {
    2621             :   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
    2622             :                                                   (__v64qi) __Y, 1,
    2623             :                                                   (__mmask64) -1);
    2624             : }
    2625             : 
    2626             : extern __inline __mmask64
    2627             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2628             : _mm512_cmpge_epi8_mask (__m512i __X, __m512i __Y)
    2629             : {
    2630             :   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
    2631             :                                                   (__v64qi) __Y, 5,
    2632             :                                                   (__mmask64) -1);
    2633             : }
    2634             : 
    2635             : extern __inline __mmask64
    2636             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2637             : _mm512_cmple_epi8_mask (__m512i __X, __m512i __Y)
    2638             : {
    2639             :   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
    2640             :                                                   (__v64qi) __Y, 2,
    2641             :                                                   (__mmask64) -1);
    2642             : }
    2643             : 
    2644             : extern __inline __mmask32
    2645             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2646             : _mm512_cmpneq_epi16_mask (__m512i __X, __m512i __Y)
    2647             : {
    2648             :   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
    2649             :                                                   (__v32hi) __Y, 4,
    2650             :                                                   (__mmask32) -1);
    2651             : }
    2652             : 
    2653             : extern __inline __mmask32
    2654             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2655             : _mm512_cmplt_epi16_mask (__m512i __X, __m512i __Y)
    2656             : {
    2657             :   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
    2658             :                                                   (__v32hi) __Y, 1,
    2659             :                                                   (__mmask32) -1);
    2660             : }
    2661             : 
    2662             : extern __inline __mmask32
    2663             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2664             : _mm512_cmpge_epi16_mask (__m512i __X, __m512i __Y)
    2665             : {
    2666             :   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
    2667             :                                                   (__v32hi) __Y, 5,
    2668             :                                                   (__mmask32) -1);
    2669             : }
    2670             : 
    2671             : extern __inline __mmask32
    2672             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2673             : _mm512_cmple_epi16_mask (__m512i __X, __m512i __Y)
    2674             : {
    2675             :   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
    2676             :                                                   (__v32hi) __Y, 2,
    2677             :                                                   (__mmask32) -1);
    2678             : }
    2679             : 
    2680             : extern __inline __m512i
    2681             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2682             : _mm512_packs_epi32 (__m512i __A, __m512i __B)
    2683             : {
    2684           0 :   return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
    2685             :                                                     (__v16si) __B,
    2686             :                                                     (__v32hi)
    2687           0 :                                                     _mm512_setzero_si512 (),
    2688             :                                                     (__mmask32) -1);
    2689             : }
    2690             : 
    2691             : extern __inline __m512i
    2692             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2693             : _mm512_maskz_packs_epi32 (__mmask32 __M, __m512i __A, __m512i __B)
    2694             : {
    2695             :   return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
    2696             :                                                     (__v16si) __B,
    2697             :                                                     (__v32hi)
    2698             :                                                     _mm512_setzero_si512 (),
    2699             :                                                     __M);
    2700             : }
    2701             : 
    2702             : extern __inline __m512i
    2703             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2704             : _mm512_mask_packs_epi32 (__m512i __W, __mmask32 __M, __m512i __A,
    2705             :                          __m512i __B)
    2706             : {
    2707             :   return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
    2708             :                                                     (__v16si) __B,
    2709             :                                                     (__v32hi) __W,
    2710             :                                                     __M);
    2711             : }
    2712             : 
    2713             : extern __inline __m512i
    2714             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2715             : _mm512_packus_epi32 (__m512i __A, __m512i __B)
    2716             : {
    2717             :   return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
    2718             :                                                     (__v16si) __B,
    2719             :                                                     (__v32hi)
    2720             :                                                     _mm512_setzero_si512 (),
    2721             :                                                     (__mmask32) -1);
    2722             : }
    2723             : 
    2724             : extern __inline __m512i
    2725             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2726             : _mm512_maskz_packus_epi32 (__mmask32 __M, __m512i __A, __m512i __B)
    2727             : {
    2728             :   return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
    2729             :                                                     (__v16si) __B,
    2730             :                                                     (__v32hi)
    2731             :                                                     _mm512_setzero_si512 (),
    2732             :                                                     __M);
    2733             : }
    2734             : 
    2735             : extern __inline __m512i
    2736             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2737             : _mm512_mask_packus_epi32 (__m512i __W, __mmask32 __M, __m512i __A,
    2738             :                           __m512i __B)
    2739             : {
    2740             :   return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
    2741             :                                                     (__v16si) __B,
    2742             :                                                     (__v32hi) __W,
    2743             :                                                     __M);
    2744             : }
    2745             : 
    2746             : #ifdef __OPTIMIZE__
    2747             : extern __inline __mmask32
    2748             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2749             : _kshiftli_mask32 (__mmask32 __A, unsigned int __B)
    2750             : {
    2751             :   return (__mmask32) __builtin_ia32_kshiftlisi ((__mmask32) __A,
    2752             :                                                 (__mmask8) __B);
    2753             : }
    2754             : 
    2755             : extern __inline __mmask64
    2756             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2757             : _kshiftli_mask64 (__mmask64 __A, unsigned int __B)
    2758             : {
    2759             :   return (__mmask64) __builtin_ia32_kshiftlidi ((__mmask64) __A,
    2760             :                                                 (__mmask8) __B);
    2761             : }
    2762             : 
    2763             : extern __inline __mmask32
    2764             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2765             : _kshiftri_mask32 (__mmask32 __A, unsigned int __B)
    2766             : {
    2767             :   return (__mmask32) __builtin_ia32_kshiftrisi ((__mmask32) __A,
    2768             :                                                 (__mmask8) __B);
    2769             : }
    2770             : 
    2771             : extern __inline __mmask64
    2772             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2773             : _kshiftri_mask64 (__mmask64 __A, unsigned int __B)
    2774             : {
    2775             :   return (__mmask64) __builtin_ia32_kshiftridi ((__mmask64) __A,
    2776             :                                                 (__mmask8) __B);
    2777             : }
    2778             : 
    2779             : extern __inline __m512i
    2780             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2781             : _mm512_alignr_epi8 (__m512i __A, __m512i __B, const int __N)
    2782             : {
    2783             :   return (__m512i) __builtin_ia32_palignr512 ((__v8di) __A,
    2784             :                                               (__v8di) __B, __N * 8);
    2785             : }
    2786             : 
    2787             : extern __inline __m512i
    2788             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2789             : _mm512_mask_alignr_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
    2790             :                          __m512i __B, const int __N)
    2791             : {
    2792             :   return (__m512i) __builtin_ia32_palignr512_mask ((__v8di) __A,
    2793             :                                                    (__v8di) __B,
    2794             :                                                    __N * 8,
    2795             :                                                    (__v8di) __W,
    2796             :                                                    (__mmask64) __U);
    2797             : }
    2798             : 
    2799             : extern __inline __m512i
    2800             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2801             : _mm512_maskz_alignr_epi8 (__mmask64 __U, __m512i __A, __m512i __B,
    2802             :                           const int __N)
    2803             : {
    2804             :   return (__m512i) __builtin_ia32_palignr512_mask ((__v8di) __A,
    2805             :                                                    (__v8di) __B,
    2806             :                                                    __N * 8,
    2807             :                                                    (__v8di)
    2808             :                                                    _mm512_setzero_si512 (),
    2809             :                                                    (__mmask64) __U);
    2810             : }
    2811             : 
    2812             : extern __inline __m512i
    2813             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2814             : _mm512_dbsad_epu8 (__m512i __A, __m512i __B, const int __imm)
    2815             : {
    2816             :   return (__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi) __A,
    2817             :                                                     (__v64qi) __B,
    2818             :                                                     __imm,
    2819             :                                                     (__v32hi)
    2820             :                                                     _mm512_setzero_si512 (),
    2821             :                                                     (__mmask32) -1);
    2822             : }
    2823             : 
    2824             : extern __inline __m512i
    2825             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2826             : _mm512_mask_dbsad_epu8 (__m512i __W, __mmask32 __U, __m512i __A,
    2827             :                         __m512i __B, const int __imm)
    2828             : {
    2829             :   return (__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi) __A,
    2830             :                                                     (__v64qi) __B,
    2831             :                                                     __imm,
    2832             :                                                     (__v32hi) __W,
    2833             :                                                     (__mmask32) __U);
    2834             : }
    2835             : 
    2836             : extern __inline __m512i
    2837             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2838             : _mm512_maskz_dbsad_epu8 (__mmask32 __U, __m512i __A, __m512i __B,
    2839             :                          const int __imm)
    2840             : {
    2841             :   return (__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi) __A,
    2842             :                                                     (__v64qi) __B,
    2843             :                                                     __imm,
    2844             :                                                     (__v32hi)
    2845             :                                                     _mm512_setzero_si512 (),
    2846             :                                                     (__mmask32) __U);
    2847             : }
    2848             : 
    2849             : extern __inline __m512i
    2850             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2851             : _mm512_srli_epi16 (__m512i __A, const int __imm)
    2852             : {
    2853             :   return (__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi) __A, __imm,
    2854             :                                                   (__v32hi)
    2855             :                                                   _mm512_setzero_si512 (),
    2856             :                                                   (__mmask32) -1);
    2857             : }
    2858             : 
    2859             : extern __inline __m512i
    2860             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2861             : _mm512_mask_srli_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    2862             :                         const int __imm)
    2863             : {
    2864             :   return (__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi) __A, __imm,
    2865             :                                                   (__v32hi) __W,
    2866             :                                                   (__mmask32) __U);
    2867             : }
    2868             : 
    2869             : extern __inline __m512i
    2870             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2871             : _mm512_maskz_srli_epi16 (__mmask32 __U, __m512i __A, const int __imm)
    2872             : {
    2873             :   return (__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi) __A, __imm,
    2874             :                                                   (__v32hi)
    2875             :                                                   _mm512_setzero_si512 (),
    2876             :                                                   (__mmask32) __U);
    2877             : }
    2878             : 
    2879             : extern __inline __m512i
    2880             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2881             : _mm512_slli_epi16 (__m512i __A, const int __B)
    2882             : {
    2883             :   return (__m512i) __builtin_ia32_psllwi512_mask ((__v32hi) __A, __B,
    2884             :                                                   (__v32hi)
    2885             :                                                   _mm512_setzero_si512 (),
    2886             :                                                   (__mmask32) -1);
    2887             : }
    2888             : 
    2889             : extern __inline __m512i
    2890             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2891             : _mm512_mask_slli_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    2892             :                         const int __B)
    2893             : {
    2894             :   return (__m512i) __builtin_ia32_psllwi512_mask ((__v32hi) __A, __B,
    2895             :                                                   (__v32hi) __W,
    2896             :                                                   (__mmask32) __U);
    2897             : }
    2898             : 
    2899             : extern __inline __m512i
    2900             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2901             : _mm512_maskz_slli_epi16 (__mmask32 __U, __m512i __A, const int __B)
    2902             : {
    2903             :   return (__m512i) __builtin_ia32_psllwi512_mask ((__v32hi) __A, __B,
    2904             :                                                   (__v32hi)
    2905             :                                                   _mm512_setzero_si512 (),
    2906             :                                                   (__mmask32) __U);
    2907             : }
    2908             : 
    2909             : extern __inline __m512i
    2910             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2911             : _mm512_shufflehi_epi16 (__m512i __A, const int __imm)
    2912             : {
    2913             :   return (__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi) __A,
    2914             :                                                    __imm,
    2915             :                                                    (__v32hi)
    2916             :                                                    _mm512_setzero_si512 (),
    2917             :                                                    (__mmask32) -1);
    2918             : }
    2919             : 
    2920             : extern __inline __m512i
    2921             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2922             : _mm512_mask_shufflehi_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    2923             :                              const int __imm)
    2924             : {
    2925             :   return (__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi) __A,
    2926             :                                                    __imm,
    2927             :                                                    (__v32hi) __W,
    2928             :                                                    (__mmask32) __U);
    2929             : }
    2930             : 
    2931             : extern __inline __m512i
    2932             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2933             : _mm512_maskz_shufflehi_epi16 (__mmask32 __U, __m512i __A,
    2934             :                               const int __imm)
    2935             : {
    2936             :   return (__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi) __A,
    2937             :                                                    __imm,
    2938             :                                                    (__v32hi)
    2939             :                                                    _mm512_setzero_si512 (),
    2940             :                                                    (__mmask32) __U);
    2941             : }
    2942             : 
    2943             : extern __inline __m512i
    2944             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2945             : _mm512_shufflelo_epi16 (__m512i __A, const int __imm)
    2946             : {
    2947             :   return (__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi) __A,
    2948             :                                                    __imm,
    2949             :                                                    (__v32hi)
    2950             :                                                    _mm512_setzero_si512 (),
    2951             :                                                    (__mmask32) -1);
    2952             : }
    2953             : 
    2954             : extern __inline __m512i
    2955             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2956             : _mm512_mask_shufflelo_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    2957             :                              const int __imm)
    2958             : {
    2959             :   return (__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi) __A,
    2960             :                                                    __imm,
    2961             :                                                    (__v32hi) __W,
    2962             :                                                    (__mmask32) __U);
    2963             : }
    2964             : 
    2965             : extern __inline __m512i
    2966             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2967             : _mm512_maskz_shufflelo_epi16 (__mmask32 __U, __m512i __A,
    2968             :                               const int __imm)
    2969             : {
    2970             :   return (__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi) __A,
    2971             :                                                    __imm,
    2972             :                                                    (__v32hi)
    2973             :                                                    _mm512_setzero_si512 (),
    2974             :                                                    (__mmask32) __U);
    2975             : }
    2976             : 
    2977             : extern __inline __m512i
    2978             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2979             : _mm512_srai_epi16 (__m512i __A, const int __imm)
    2980             : {
    2981             :   return (__m512i) __builtin_ia32_psrawi512_mask ((__v32hi) __A, __imm,
    2982             :                                                   (__v32hi)
    2983             :                                                   _mm512_setzero_si512 (),
    2984             :                                                   (__mmask32) -1);
    2985             : }
    2986             : 
    2987             : extern __inline __m512i
    2988             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2989             : _mm512_mask_srai_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    2990             :                         const int __imm)
    2991             : {
    2992             :   return (__m512i) __builtin_ia32_psrawi512_mask ((__v32hi) __A, __imm,
    2993             :                                                   (__v32hi) __W,
    2994             :                                                   (__mmask32) __U);
    2995             : }
    2996             : 
    2997             : extern __inline __m512i
    2998             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2999             : _mm512_maskz_srai_epi16 (__mmask32 __U, __m512i __A, const int __imm)
    3000             : {
    3001             :   return (__m512i) __builtin_ia32_psrawi512_mask ((__v32hi) __A, __imm,
    3002             :                                                   (__v32hi)
    3003             :                                                   _mm512_setzero_si512 (),
    3004             :                                                   (__mmask32) __U);
    3005             : }
    3006             : 
    3007             : extern __inline __m512i
    3008             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3009             : _mm512_mask_blend_epi16 (__mmask32 __U, __m512i __A, __m512i __W)
    3010             : {
    3011             :   return (__m512i) __builtin_ia32_blendmw_512_mask ((__v32hi) __A,
    3012             :                                                     (__v32hi) __W,
    3013             :                                                     (__mmask32) __U);
    3014             : }
    3015             : 
    3016             : extern __inline __m512i
    3017             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3018             : _mm512_mask_blend_epi8 (__mmask64 __U, __m512i __A, __m512i __W)
    3019             : {
    3020             :   return (__m512i) __builtin_ia32_blendmb_512_mask ((__v64qi) __A,
    3021             :                                                     (__v64qi) __W,
    3022             :                                                     (__mmask64) __U);
    3023             : }
    3024             : 
    3025             : extern __inline __mmask32
    3026             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3027             : _mm512_mask_cmp_epi16_mask (__mmask32 __U, __m512i __X, __m512i __Y,
    3028             :                             const int __P)
    3029             : {
    3030             :   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
    3031             :                                                   (__v32hi) __Y, __P,
    3032             :                                                   (__mmask32) __U);
    3033             : }
    3034             : 
    3035             : extern __inline __mmask32
    3036             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3037             : _mm512_cmp_epi16_mask (__m512i __X, __m512i __Y, const int __P)
    3038             : {
    3039             :   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
    3040             :                                                   (__v32hi) __Y, __P,
    3041             :                                                   (__mmask32) -1);
    3042             : }
    3043             : 
    3044             : extern __inline __mmask64
    3045             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3046             : _mm512_mask_cmp_epi8_mask (__mmask64 __U, __m512i __X, __m512i __Y,
    3047             :                            const int __P)
    3048             : {
    3049             :   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
    3050             :                                                   (__v64qi) __Y, __P,
    3051             :                                                   (__mmask64) __U);
    3052             : }
    3053             : 
    3054             : extern __inline __mmask64
    3055             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3056             : _mm512_cmp_epi8_mask (__m512i __X, __m512i __Y, const int __P)
    3057             : {
    3058             :   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
    3059             :                                                   (__v64qi) __Y, __P,
    3060             :                                                   (__mmask64) -1);
    3061             : }
    3062             : 
    3063             : extern __inline __mmask32
    3064             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3065             : _mm512_mask_cmp_epu16_mask (__mmask32 __U, __m512i __X, __m512i __Y,
    3066             :                             const int __P)
    3067             : {
    3068             :   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
    3069             :                                                    (__v32hi) __Y, __P,
    3070             :                                                    (__mmask32) __U);
    3071             : }
    3072             : 
    3073             : extern __inline __mmask32
    3074             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3075             : _mm512_cmp_epu16_mask (__m512i __X, __m512i __Y, const int __P)
    3076             : {
    3077             :   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
    3078             :                                                    (__v32hi) __Y, __P,
    3079             :                                                    (__mmask32) -1);
    3080             : }
    3081             : 
    3082             : extern __inline __mmask64
    3083             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3084             : _mm512_mask_cmp_epu8_mask (__mmask64 __U, __m512i __X, __m512i __Y,
    3085             :                            const int __P)
    3086             : {
    3087             :   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
    3088             :                                                    (__v64qi) __Y, __P,
    3089             :                                                    (__mmask64) __U);
    3090             : }
    3091             : 
    3092             : extern __inline __mmask64
    3093             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3094             : _mm512_cmp_epu8_mask (__m512i __X, __m512i __Y, const int __P)
    3095             : {
    3096             :   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
    3097             :                                                    (__v64qi) __Y, __P,
    3098             :                                                    (__mmask64) -1);
    3099             : }
    3100             : 
    3101             : extern __inline __m512i
    3102             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3103             : _mm512_bslli_epi128 (__m512i __A, const int __N)
    3104             : {
    3105             :   return (__m512i) __builtin_ia32_pslldq512 (__A, __N * 8);
    3106             : }
    3107             : 
    3108             : extern __inline __m512i
    3109             : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3110             : _mm512_bsrli_epi128 (__m512i __A, const int __N)
    3111             : {
    3112             :   return (__m512i) __builtin_ia32_psrldq512 (__A, __N * 8);
    3113             : }
    3114             : 
    3115             : #else
    3116             : #define _kshiftli_mask32(X, Y)                                                  \
    3117             :   ((__mmask32) __builtin_ia32_kshiftlisi ((__mmask32)(X), (__mmask8)(Y)))
    3118             : 
    3119             : #define _kshiftli_mask64(X, Y)                                                  \
    3120             :   ((__mmask64) __builtin_ia32_kshiftlidi ((__mmask64)(X), (__mmask8)(Y)))
    3121             : 
    3122             : #define _kshiftri_mask32(X, Y)                                                  \
    3123             :   ((__mmask32) __builtin_ia32_kshiftrisi ((__mmask32)(X), (__mmask8)(Y)))
    3124             : 
    3125             : #define _kshiftri_mask64(X, Y)                                                  \
    3126             :   ((__mmask64) __builtin_ia32_kshiftridi ((__mmask64)(X), (__mmask8)(Y)))
    3127             : 
    3128             : #define _mm512_alignr_epi8(X, Y, N)                                                 \
    3129             :   ((__m512i) __builtin_ia32_palignr512 ((__v8di)(__m512i)(X),                       \
    3130             :                                         (__v8di)(__m512i)(Y),                       \
    3131             :                                         (int)(N * 8)))
    3132             : 
    3133             : #define _mm512_mask_alignr_epi8(W, U, X, Y, N)                                      \
    3134             :   ((__m512i) __builtin_ia32_palignr512_mask ((__v8di)(__m512i)(X),                  \
    3135             :                                             (__v8di)(__m512i)(Y), (int)(N * 8),     \
    3136             :                                             (__v8di)(__m512i)(W), (__mmask64)(U)))
    3137             : 
    3138             : #define _mm512_maskz_alignr_epi8(U, X, Y, N)                                        \
    3139             :   ((__m512i) __builtin_ia32_palignr512_mask ((__v8di)(__m512i)(X),                  \
    3140             :                                              (__v8di)(__m512i)(Y), (int)(N * 8),    \
    3141             :                                              (__v8di)(__m512i)                      \
    3142             :                                              _mm512_setzero_si512 (),               \
    3143             :                                              (__mmask64)(U)))
    3144             : 
    3145             : #define _mm512_dbsad_epu8(X, Y, C)                                                  \
    3146             :   ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X),               \
    3147             :                                               (__v64qi)(__m512i) (Y), (int) (C),    \
    3148             :                                               (__v32hi)(__m512i)                    \
    3149             :                                               _mm512_setzero_si512 (),              \
    3150             :                                               (__mmask32)-1))
    3151             : 
    3152             : #define _mm512_mask_dbsad_epu8(W, U, X, Y, C)                                       \
    3153             :   ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X),               \
    3154             :                                               (__v64qi)(__m512i) (Y), (int) (C),    \
    3155             :                                               (__v32hi)(__m512i)(W),                \
    3156             :                                               (__mmask32)(U)))
    3157             : 
    3158             : #define _mm512_maskz_dbsad_epu8(U, X, Y, C)                                         \
    3159             :   ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X),               \
    3160             :                                               (__v64qi)(__m512i) (Y), (int) (C),    \
    3161             :                                               (__v32hi)(__m512i)                    \
    3162             :                                               _mm512_setzero_si512 (),              \
    3163             :                                               (__mmask32)(U)))
    3164             : 
    3165             : #define _mm512_srli_epi16(A, B)                                         \
    3166             :   ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A),      \
    3167             :     (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)-1))
    3168             : 
    3169             : #define _mm512_mask_srli_epi16(W, U, A, B)                              \
    3170             :   ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A),      \
    3171             :     (int)(B), (__v32hi)(__m512i)(W), (__mmask32)(U)))
    3172             : 
    3173             : #define _mm512_maskz_srli_epi16(U, A, B)                                \
    3174             :   ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A),      \
    3175             :     (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)(U)))
    3176             : 
    3177             : #define _mm512_slli_epi16(X, C)                                            \
    3178             :   ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
    3179             :     (__v32hi)(__m512i)_mm512_setzero_si512 (),                             \
    3180             :     (__mmask32)-1))
    3181             : 
    3182             : #define _mm512_mask_slli_epi16(W, U, X, C)                                 \
    3183             :   ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
    3184             :     (__v32hi)(__m512i)(W),\
    3185             :     (__mmask32)(U)))
    3186             : 
    3187             : #define _mm512_maskz_slli_epi16(U, X, C)                                   \
    3188             :   ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
    3189             :     (__v32hi)(__m512i)_mm512_setzero_si512 (),                             \
    3190             :     (__mmask32)(U)))
    3191             : 
    3192             : #define _mm512_shufflehi_epi16(A, B)                                                \
    3193             :   ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \
    3194             :                                              (__v32hi)(__m512i)                     \
    3195             :                                              _mm512_setzero_si512 (),               \
    3196             :                                              (__mmask32)-1))
    3197             : 
    3198             : #define _mm512_mask_shufflehi_epi16(W, U, A, B)                                     \
    3199             :   ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \
    3200             :                                              (__v32hi)(__m512i)(W),                 \
    3201             :                                              (__mmask32)(U)))
    3202             : 
    3203             : #define _mm512_maskz_shufflehi_epi16(U, A, B)                                       \
    3204             :   ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \
    3205             :                                              (__v32hi)(__m512i)                     \
    3206             :                                              _mm512_setzero_si512 (),               \
    3207             :                                              (__mmask32)(U)))
    3208             : 
    3209             : #define _mm512_shufflelo_epi16(A, B)                                                \
    3210             :   ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \
    3211             :                                              (__v32hi)(__m512i)                     \
    3212             :                                              _mm512_setzero_si512 (),               \
    3213             :                                              (__mmask32)-1))
    3214             : 
    3215             : #define _mm512_mask_shufflelo_epi16(W, U, A, B)                                     \
    3216             :   ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \
    3217             :                                              (__v32hi)(__m512i)(W),                 \
    3218             :                                              (__mmask32)(U)))
    3219             : 
    3220             : #define _mm512_maskz_shufflelo_epi16(U, A, B)                                       \
    3221             :   ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \
    3222             :                                              (__v32hi)(__m512i)                     \
    3223             :                                              _mm512_setzero_si512 (),               \
    3224             :                                              (__mmask32)(U)))
    3225             : 
    3226             : #define _mm512_srai_epi16(A, B)                                         \
    3227             :   ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A),      \
    3228             :     (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)-1))
    3229             : 
    3230             : #define _mm512_mask_srai_epi16(W, U, A, B)                              \
    3231             :   ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A),      \
    3232             :     (int)(B), (__v32hi)(__m512i)(W), (__mmask32)(U)))
    3233             : 
    3234             : #define _mm512_maskz_srai_epi16(U, A, B)                                \
    3235             :   ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A),      \
    3236             :     (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)(U)))
    3237             : 
    3238             : #define _mm512_mask_blend_epi16(__U, __A, __W)                        \
    3239             :   ((__m512i) __builtin_ia32_blendmw_512_mask ((__v32hi) (__A),        \
    3240             :                                                     (__v32hi) (__W),  \
    3241             :                                                     (__mmask32) (__U)))
    3242             : 
    3243             : #define _mm512_mask_blend_epi8(__U, __A, __W)                         \
    3244             :   ((__m512i) __builtin_ia32_blendmb_512_mask ((__v64qi) (__A),        \
    3245             :                                                     (__v64qi) (__W),  \
    3246             :                                                     (__mmask64) (__U)))
    3247             : 
    3248             : #define _mm512_cmp_epi16_mask(X, Y, P)                          \
    3249             :   ((__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi)(__m512i)(X),      \
    3250             :                                             (__v32hi)(__m512i)(Y), (int)(P),\
    3251             :                                             (__mmask32)(-1)))
    3252             : 
    3253             : #define _mm512_cmp_epi8_mask(X, Y, P)                           \
    3254             :   ((__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi)(__m512i)(X),      \
    3255             :                                             (__v64qi)(__m512i)(Y), (int)(P),\
    3256             :                                             (__mmask64)(-1)))
    3257             : 
    3258             : #define _mm512_cmp_epu16_mask(X, Y, P)                          \
    3259             :   ((__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi)(__m512i)(X),     \
    3260             :                                             (__v32hi)(__m512i)(Y), (int)(P),\
    3261             :                                             (__mmask32)(-1)))
    3262             : 
    3263             : #define _mm512_cmp_epu8_mask(X, Y, P)                           \
    3264             :   ((__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi)(__m512i)(X),     \
    3265             :                                             (__v64qi)(__m512i)(Y), (int)(P),\
    3266             :                                             (__mmask64)(-1)))
    3267             : 
    3268             : #define _mm512_mask_cmp_epi16_mask(M, X, Y, P)                          \
    3269             :   ((__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi)(__m512i)(X),      \
    3270             :                                             (__v32hi)(__m512i)(Y), (int)(P),\
    3271             :                                             (__mmask32)(M)))
    3272             : 
    3273             : #define _mm512_mask_cmp_epi8_mask(M, X, Y, P)                           \
    3274             :   ((__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi)(__m512i)(X),      \
    3275             :                                             (__v64qi)(__m512i)(Y), (int)(P),\
    3276             :                                             (__mmask64)(M)))
    3277             : 
    3278             : #define _mm512_mask_cmp_epu16_mask(M, X, Y, P)                          \
    3279             :   ((__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi)(__m512i)(X),     \
    3280             :                                             (__v32hi)(__m512i)(Y), (int)(P),\
    3281             :                                             (__mmask32)(M)))
    3282             : 
    3283             : #define _mm512_mask_cmp_epu8_mask(M, X, Y, P)                           \
    3284             :   ((__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi)(__m512i)(X),     \
    3285             :                                             (__v64qi)(__m512i)(Y), (int)(P),\
    3286             :                                             (__mmask64)(M)))
    3287             : 
    3288             : #define _mm512_bslli_epi128(A, N)                                         \
    3289             :   ((__m512i)__builtin_ia32_pslldq512 ((__m512i)(A), (int)(N) * 8))
    3290             : 
    3291             : #define _mm512_bsrli_epi128(A, N)                                         \
    3292             :   ((__m512i)__builtin_ia32_psrldq512 ((__m512i)(A), (int)(N) * 8))
    3293             : 
    3294             : #endif
    3295             : 
    3296             : #ifdef __DISABLE_AVX512BW__
    3297             : #undef __DISABLE_AVX512BW__
    3298             : #pragma GCC pop_options
    3299             : #endif /* __DISABLE_AVX512BW__ */
    3300             : 
    3301             : #endif /* _AVX512BWINTRIN_H_INCLUDED */

Generated by: LCOV version 1.14