(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
sse-22.c
       1  /* Same as sse-14, except converted to use #pragma GCC option.  */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8" } */
       4  /* { dg-add-options bind_pic_locally } */
       5  
       6  #include <mm_malloc.h>
       7  
       8  /* Test that the intrinsics compile with optimization.  All of them
       9     are defined as inline functions in {,x,e,p,t,s,w,a,b,i}mmintrin.h,
      10     mm3dnow.h, fma4intrin.h, xopintrin.h, abmintrin.h, bmiintrin.h,
      11     tbmintrin.h, lwpintrin.h, popcntintrin.h, fmaintrin.h, tsxldtrkintrin.h,
      12     avx5124fmapsintrin.h, avx5124vnniwintrin.h, avx512vpopcntdqintrin.h,
      13     avx512bitalgintrin.h, avx512vp2intersectintrin.h,
      14     amxtileintrin.h, amxint8intrin.h, amxbf16intrin.h,
      15     avx512vp2intersectvlintrin.h and mm_malloc.h that reference the proper
      16     builtin functions.
      17     Defining away "extern" and "__inline" results in all of them being
      18     compiled as proper functions.  */
      19  
      20  #define extern
      21  #define __inline
      22  
      23  #define _CONCAT(x,y) x ## y
      24  
      25  #define test_0(func, type, imm)						\
      26    type _CONCAT(_,func) (int const I)					\
      27    { return func (imm); }
      28  
      29  #define test_1(func, type, op1_type, imm)				\
      30    type _CONCAT(_,func) (op1_type A, int const I)			\
      31    { return func (A, imm); }
      32  
      33  #define test_1x(func, type, op1_type, imm1, imm2)			\
      34    type _CONCAT(_,func) (op1_type A, int const I, int const L)		\
      35    { return func (A, imm1, imm2); }
      36  
      37  #define test_1y(func, type, op1_type, imm1, imm2, imm3)			\
      38    type _CONCAT(_,func) (op1_type A, int const I, int const L, int const R)\
      39    { return func (A, imm1, imm2, imm3); }
      40  
      41  #define test_2(func, type, op1_type, op2_type, imm)			\
      42    type _CONCAT(_,func) (op1_type A, op2_type B, int const I)		\
      43    { return func (A, B, imm); }
      44  
      45  #define test_2x(func, type, op1_type, op2_type, imm1, imm2)		\
      46    type _CONCAT(_,func) (op1_type A, op2_type B, int const I, int const L) \
      47    { return func (A, B, imm1, imm2); }
      48  
      49  #define test_2y(func, type, op1_type, op2_type, imm1, imm2, imm3)	 \
      50    type _CONCAT(_,func) (op1_type A, op2_type B, int const I, int const L,\
      51  			int const R)					 \
      52    { return func (A, B, imm1, imm2, imm3); }
      53  
      54  #define test_2vx(func, op1_type, op2_type, imm1, imm2)     \
      55    void _CONCAT(_,func) (op1_type A, op2_type B, int const I, int const L) \
      56    { func (A, B, imm1, imm2); }
      57  
      58  #define test_3(func, type, op1_type, op2_type, op3_type, imm)		\
      59    type _CONCAT(_,func) (op1_type A, op2_type B,				\
      60  			op3_type C, int const I)			\
      61    { return func (A, B, C, imm); }
      62  
      63  #define test_3x(func, type, op1_type, op2_type, op3_type, imm1, imm2)		\
      64    type _CONCAT(_,func) (op1_type A, op2_type B,				\
      65  			op3_type C, int const I, int const L)			\
      66    { return func (A, B, C, imm1, imm2); }
      67  
      68  #define test_3y(func, type, op1_type, op2_type, op3_type, imm1, imm2, imm3)	\
      69    type _CONCAT(_,func) (op1_type A, op2_type B,				\
      70  			op3_type C, int const I, int const L, int const R)	\
      71    { return func (A, B, C, imm1, imm2, imm3); }
      72  
      73  #define test_3v(func, op1_type, op2_type, op3_type, imm)		\
      74    int _CONCAT(_,func) (op1_type A, op2_type B,				\
      75  		       op3_type C, int const I)				\
      76    { func (A, B, C, imm); }
      77  
      78  #define test_3vx(func, op1_type, op2_type, op3_type, imm1, imm2)   \
      79    void _CONCAT(_,func) (op1_type A, op2_type B,             	   \
      80  		       op3_type C, int const I, int const L)       \
      81    { func (A, B, C, imm1, imm2); }
      82  
      83  #define test_4(func, type, op1_type, op2_type, op3_type, op4_type, imm)	\
      84    type _CONCAT(_,func) (op1_type A, op2_type B,				\
      85  			op3_type C, op4_type D, int const I)		\
      86    { return func (A, B, C, D, imm); }
      87  
      88  #define test_4x(func, type, op1_type, op2_type, op3_type, op4_type, imm1, imm2)	\
      89    type _CONCAT(_,func) (op1_type A, op2_type B,				\
      90  			op3_type C, op4_type D, int const I, int const L)		\
      91    { return func (A, B, C, D, imm1, imm2); }
      92  
      93  #define test_4y(func, type, op1_type, op2_type, op3_type, op4_type, imm1, imm2, imm3)	\
      94    type _CONCAT(_,func) (op1_type A, op2_type B,	op3_type C,		\
      95  			op4_type D, int const I, int const L, int const R)		\
      96    { return func (A, B, C, D, imm1, imm2, imm3); }
      97  
      98  
      99  #define test_4v(func, op1_type, op2_type, op3_type, op4_type, imm)	\
     100    int _CONCAT(_,func) (op1_type A, op2_type B,				\
     101  		       op3_type C, op4_type D, int const I)		\
     102    { func (A, B, C, D, imm); }
     103  
     104  
     105  #ifndef DIFFERENT_PRAGMAS
     106  #pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,avx512f,avx512er,avx512cd,avx512pf,sha,prefetchwt1,avx512vl,avx512bw,avx512dq,avx512vbmi,avx512vbmi2,avx512ifma,avx5124fmaps,avx5124vnniw,avx512vpopcntdq,gfni,avx512bitalg,avx512bf16,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-bf16,kl,widekl,avxvnni,avx512fp16,avxifma,avxvnniint8,avxneconvert,amx-fp16,raoint,amx-complex")
     107  #endif
     108  
     109  /* Following intrinsics require immediate arguments.  They
     110     are defined as macros for non-optimized compilations. */
     111  
     112  /* mmintrin.h (MMX).  */
     113  #ifdef DIFFERENT_PRAGMAS
     114  #pragma GCC target ("mmx")
     115  #endif
     116  #include <mmintrin.h>
     117  
     118  /* mm3dnow.h (3DNOW).  */
     119  #ifdef DIFFERENT_PRAGMAS
     120  #pragma GCC target ("3dnow")
     121  #endif
     122  #include <mm3dnow.h>
     123  
     124  /* xmmintrin.h (SSE).  */
     125  #ifdef DIFFERENT_PRAGMAS
     126  #pragma GCC target ("sse")
     127  #endif
     128  #include <xmmintrin.h>
     129  test_2 (_mm_shuffle_ps, __m128, __m128, __m128, 1)
     130  test_1 (_mm_extract_pi16, int, __m64, 1)
     131  test_1 (_m_pextrw, int, __m64, 1)
     132  test_2 (_mm_insert_pi16, __m64, __m64, int, 1)
     133  test_2 (_m_pinsrw, __m64, __m64, int, 1)
     134  test_1 (_mm_shuffle_pi16, __m64, __m64, 1)
     135  test_1 (_m_pshufw, __m64, __m64, 1)
     136  test_1 (_mm_prefetch, void, void *, _MM_HINT_NTA)
     137  
     138  /* emmintrin.h (SSE2).  */
     139  #ifdef DIFFERENT_PRAGMAS
     140  #pragma GCC target ("sse2")
     141  #endif
     142  #include <emmintrin.h>
     143  test_2 (_mm_shuffle_pd, __m128d, __m128d, __m128d, 1)
     144  test_1 (_mm_bsrli_si128, __m128i, __m128i, 1)
     145  test_1 (_mm_bslli_si128, __m128i, __m128i, 1)
     146  test_1 (_mm_srli_si128, __m128i, __m128i, 1)
     147  test_1 (_mm_slli_si128, __m128i, __m128i, 1)
     148  test_1 (_mm_extract_epi16, int, __m128i, 1)
     149  test_2 (_mm_insert_epi16, __m128i, __m128i, int, 1)
     150  test_1 (_mm_shufflehi_epi16, __m128i, __m128i, 1)
     151  test_1 (_mm_shufflelo_epi16, __m128i, __m128i, 1)
     152  test_1 (_mm_shuffle_epi32, __m128i, __m128i, 1)
     153  
     154  /* pmmintrin.h (SSE3).  */
     155  #ifdef DIFFERENT_PRAGMAS
     156  #pragma GCC target ("sse3")
     157  #endif
     158  #include <pmmintrin.h>
     159  
     160  /* tmmintrin.h (SSSE3).  */
     161  #ifdef DIFFERENT_PRAGMAS
     162  #pragma GCC target ("ssse3")
     163  #endif
     164  #include <tmmintrin.h>
     165  test_2 (_mm_alignr_epi8, __m128i, __m128i, __m128i, 1)
     166  test_2 (_mm_alignr_pi8, __m64, __m64, __m64, 1)
     167  
     168  /* ammintrin.h (SSE4A).  */
     169  #ifdef DIFFERENT_PRAGMAS
     170  #pragma GCC target ("sse4a")
     171  #endif
     172  #include <ammintrin.h>
     173  test_1x (_mm_extracti_si64, __m128i, __m128i, 1, 1)
     174  test_2x (_mm_inserti_si64, __m128i, __m128i, __m128i, 1, 1)
     175  
     176  /* Note, nmmintrin.h includes smmintrin.h, and smmintrin.h
     177     checks for the #ifdef.  So just set the option to SSE4.2.  */
     178  #ifdef DIFFERENT_PRAGMAS
     179  #pragma GCC target ("sse4.2")
     180  #endif
     181  #include <nmmintrin.h>
     182  /* smmintrin.h (SSE4.2).  */
     183  test_1 (_mm_round_pd, __m128d, __m128d, 9)
     184  test_1 (_mm_round_ps, __m128, __m128, 9)
     185  test_2 (_mm_round_sd, __m128d, __m128d, __m128d, 9)
     186  test_2 (_mm_round_ss, __m128, __m128, __m128, 9)
     187  
     188  test_2 (_mm_blend_epi16, __m128i, __m128i, __m128i, 1)
     189  test_2 (_mm_blend_ps, __m128, __m128, __m128, 1)
     190  test_2 (_mm_blend_pd, __m128d, __m128d, __m128d, 1)
     191  test_2 (_mm_dp_ps, __m128, __m128, __m128, 1)
     192  test_2 (_mm_dp_pd, __m128d, __m128d, __m128d, 1)
     193  test_2 (_mm_insert_ps, __m128, __m128, __m128, 1)
     194  test_1 (_mm_extract_ps, int, __m128, 1)
     195  test_2 (_mm_insert_epi8, __m128i, __m128i, int, 1)
     196  test_2 (_mm_insert_epi32, __m128i, __m128i, int, 1)
     197  #ifdef __x86_64__
     198  test_2 (_mm_insert_epi64, __m128i, __m128i, long long, 1)
     199  #endif
     200  test_1 (_mm_extract_epi8, int, __m128i, 1)
     201  test_1 (_mm_extract_epi32, int, __m128i, 1)
     202  #ifdef __x86_64__
     203  test_1 (_mm_extract_epi64, long long, __m128i, 1)
     204  #endif
     205  test_2 (_mm_mpsadbw_epu8, __m128i, __m128i, __m128i, 1)
     206  test_2 (_mm_cmpistrm, __m128i, __m128i, __m128i, 1)
     207  test_2 (_mm_cmpistri, int, __m128i, __m128i, 1)
     208  test_4 (_mm_cmpestrm, __m128i, __m128i, int, __m128i, int, 1)
     209  test_4 (_mm_cmpestri, int, __m128i, int, __m128i, int, 1)
     210  test_2 (_mm_cmpistra, int, __m128i, __m128i, 1)
     211  test_2 (_mm_cmpistrc, int, __m128i, __m128i, 1)
     212  test_2 (_mm_cmpistro, int, __m128i, __m128i, 1)
     213  test_2 (_mm_cmpistrs, int, __m128i, __m128i, 1)
     214  test_2 (_mm_cmpistrz, int, __m128i, __m128i, 1)
     215  test_4 (_mm_cmpestra, int, __m128i, int, __m128i, int, 1)
     216  test_4 (_mm_cmpestrc, int, __m128i, int, __m128i, int, 1)
     217  test_4 (_mm_cmpestro, int, __m128i, int, __m128i, int, 1)
     218  test_4 (_mm_cmpestrs, int, __m128i, int, __m128i, int, 1)
     219  test_4 (_mm_cmpestrz, int, __m128i, int, __m128i, int, 1)
     220  
     221  /* immintrin.h (AVX/AVX2/RDRND/FSGSBASE/F16C/RTM/AVX512F/SHA) */
     222  #ifdef DIFFERENT_PRAGMAS
     223  #pragma GCC target ("avx,avx2,rdrnd,fsgsbase,f16c,rtm,avx512f,avx512er,avx512cd,avx512pf,sha,avx512vl,avx512bw,avx512dq,avx512ifma,avx512vbmi,avx512vbmi2,avx5124fmaps,avx5124vnniw,avx512vpopcntdq,gfni,avx512bitalg,avx512bf16,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-bf16,kl,widekl,avxvnni,avx512fp16,avxifma,avxvnniint8,avxneconvert,amx-fp16,raoint,amx-complex")
     224  #endif
     225  #include <immintrin.h>
     226  test_1 (_cvtss_sh, unsigned short, float, 1)
     227  test_1 (_mm_cvtps_ph, __m128i, __m128, 1)
     228  test_1 (_mm256_cvtps_ph, __m128i, __m256, 1)
     229  
     230  /* avxintrin.h */
     231  test_2 (_mm256_blend_pd, __m256d, __m256d, __m256d, 1)
     232  test_2 (_mm256_blend_ps, __m256, __m256, __m256, 1)
     233  test_2 (_mm256_dp_ps, __m256, __m256, __m256, 1)
     234  test_2 (_mm256_shuffle_pd, __m256d, __m256d, __m256d, 1)
     235  test_2 (_mm256_shuffle_ps, __m256, __m256, __m256, 1)
     236  test_2 (_mm_cmp_sd, __m128d, __m128d, __m128d, 1)
     237  test_2 (_mm_cmp_ss, __m128, __m128, __m128, 1)
     238  test_2 (_mm_cmp_pd, __m128d, __m128d, __m128d, 1)
     239  test_2 (_mm_cmp_ps, __m128, __m128, __m128, 1)
     240  test_2 (_mm256_cmp_pd, __m256d, __m256d, __m256d, 1)
     241  test_2 (_mm256_cmp_ps, __m256, __m256, __m256, 1)
     242  test_1 (_mm256_extractf128_pd, __m128d, __m256d, 1)
     243  test_1 (_mm256_extractf128_ps, __m128, __m256, 1)
     244  test_1 (_mm256_extractf128_si256, __m128i, __m256i, 1)
     245  test_1 (_mm256_extract_epi8, int, __m256i, 20)
     246  test_1 (_mm256_extract_epi16, int, __m256i, 13)
     247  test_1 (_mm256_extract_epi32, int, __m256i, 6)
     248  #ifdef __x86_64__
     249  test_1 (_mm256_extract_epi64, long long, __m256i, 2)
     250  #endif
     251  test_1 (_mm_permute_pd, __m128d, __m128d, 1)
     252  test_1 (_mm256_permute_pd, __m256d, __m256d, 1)
     253  test_1 (_mm_permute_ps, __m128, __m128, 1)
     254  test_1 (_mm256_permute_ps, __m256, __m256, 1)
     255  test_2 (_mm256_permute2f128_pd, __m256d, __m256d, __m256d, 1)
     256  test_2 (_mm256_permute2f128_ps, __m256, __m256, __m256, 1)
     257  test_2 (_mm256_permute2f128_si256, __m256i, __m256i, __m256i, 1)
     258  test_2 (_mm256_insertf128_pd, __m256d, __m256d, __m128d, 1)
     259  test_2 (_mm256_insertf128_ps, __m256, __m256, __m128, 1)
     260  test_2 (_mm256_insertf128_si256, __m256i, __m256i, __m128i, 1)
     261  test_2 (_mm256_insert_epi8, __m256i, __m256i, int, 30)
     262  test_2 (_mm256_insert_epi16, __m256i, __m256i, int, 7)
     263  test_2 (_mm256_insert_epi32, __m256i, __m256i, int, 3)
     264  #ifdef __x86_64__
     265  test_2 (_mm256_insert_epi64, __m256i, __m256i, long long, 1)
     266  #endif
     267  test_1 (_mm256_round_pd, __m256d, __m256d, 9)
     268  test_1 (_mm256_round_ps, __m256, __m256, 9)
     269  
     270  /* avx2intrin.h */
     271  test_2 ( _mm256_mpsadbw_epu8, __m256i, __m256i, __m256i, 1)
     272  test_2 ( _mm256_alignr_epi8, __m256i, __m256i, __m256i, 1)
     273  test_2 ( _mm256_blend_epi16, __m256i, __m256i, __m256i, 1)
     274  test_1 ( _mm256_shuffle_epi32, __m256i, __m256i, 1)
     275  test_1 ( _mm256_shufflehi_epi16, __m256i, __m256i, 1)
     276  test_1 ( _mm256_shufflelo_epi16, __m256i, __m256i, 1)
     277  test_1 ( _mm256_bslli_epi128, __m256i, __m256i, 8)
     278  test_1 ( _mm256_bsrli_epi128, __m256i, __m256i, 8)
     279  test_1 ( _mm256_slli_si256, __m256i, __m256i, 8)
     280  test_1 ( _mm256_srli_si256, __m256i, __m256i, 8)
     281  test_2 ( _mm_blend_epi32, __m128i, __m128i, __m128i, 1)
     282  test_2 ( _mm256_blend_epi32, __m256i, __m256i, __m256, 1)
     283  test_1 ( _mm256_permute4x64_pd, __m256d, __m256d, 1)
     284  test_1 ( _mm256_permute4x64_epi64, __m256i, __m256i, 1)
     285  test_2 ( _mm256_permute2x128_si256, __m256i, __m256i, __m256i, 1)
     286  test_1 ( _mm256_extracti128_si256, __m128i, __m256i, 1)
     287  test_2 ( _mm256_inserti128_si256, __m256i, __m256i, __m128i, 1)
     288  test_2 ( _mm_i32gather_pd, __m128d, double const *, __m128i, 1)
     289  test_2 ( _mm256_i32gather_pd, __m256d, double const *, __m128i, 1)
     290  test_2 ( _mm_i64gather_pd, __m128d, double const *, __m128i, 1)
     291  test_2 ( _mm256_i64gather_pd, __m256d, double const *, __m256i, 1)
     292  test_2 ( _mm_i32gather_ps, __m128, float const *, __m128i, 1)
     293  test_2 ( _mm256_i32gather_ps, __m256, float const *, __m256i, 1)
     294  test_2 ( _mm_i64gather_ps, __m128, float const *, __m128i, 1)
     295  test_2 ( _mm256_i64gather_ps, __m128, float const *, __m256i, 1)
     296  test_2 ( _mm_i32gather_epi64, __m128i, long long int const *, __m128i, 1)
     297  test_2 ( _mm256_i32gather_epi64, __m256i, long long int const *, __m128i, 1)
     298  test_2 ( _mm_i64gather_epi64, __m128i, long long int const *, __m128i, 1)
     299  test_2 ( _mm256_i64gather_epi64,  __m256i, long long int const *, __m256i, 1)
     300  test_2 ( _mm_i32gather_epi32, __m128i, int const *, __m128i, 1)
     301  test_2 ( _mm256_i32gather_epi32, __m256i, int const *, __m256i, 1)
     302  test_2 ( _mm_i64gather_epi32, __m128i, int const *, __m128i, 1)
     303  test_2 ( _mm256_i64gather_epi32, __m128i, int const *, __m256i, 1)
     304  
     305  /* rtmintrin.h */
     306  test_0 ( _xabort, void, 1)
     307  
     308  /* avx512fintrin.h */
     309  test_1 (_mm512_cvt_roundepi32_ps, __m512, __m512i, 9)
     310  test_1 (_mm512_cvt_roundepu32_ps, __m512, __m512i, 9)
     311  test_1 (_mm512_cvt_roundpd_epi32, __m256i, __m512d, 9)
     312  test_1 (_mm512_cvt_roundpd_epu32, __m256i, __m512d, 9)
     313  test_1 (_mm512_cvt_roundpd_ps, __m256, __m512d, 9)
     314  test_1 (_mm512_cvt_roundph_ps, __m512, __m256i, 8)
     315  test_1 (_mm512_cvt_roundps_epi32, __m512i, __m512, 9)
     316  test_1 (_mm512_cvt_roundps_epu32, __m512i, __m512, 9)
     317  test_1 (_mm512_cvt_roundps_pd, __m512d, __m256, 8)
     318  test_1 (_mm512_cvtps_ph, __m256i, __m512, 1)
     319  test_1 (_mm512_cvtt_roundpd_epi32, __m256i, __m512d, 8)
     320  test_1 (_mm512_cvtt_roundpd_epu32, __m256i, __m512d, 8)
     321  test_1 (_mm512_cvtt_roundps_epi32, __m512i, __m512, 8)
     322  test_1 (_mm512_cvtt_roundps_epu32, __m512i, __m512, 8)
     323  test_1 (_mm512_extractf32x4_ps, __m128, __m512, 1)
     324  test_1 (_mm512_extractf64x4_pd, __m256d, __m512d, 1)
     325  test_1 (_mm512_extracti32x4_epi32, __m128i, __m512i, 1)
     326  test_1 (_mm512_extracti64x4_epi64, __m256i, __m512i, 1)
     327  test_1 (_mm512_getexp_round_pd, __m512d, __m512d, 8)
     328  test_1 (_mm512_getexp_round_ps, __m512, __m512, 8)
     329  test_1y (_mm512_getmant_round_pd, __m512d, __m512d, 1, 1, 8)
     330  test_1y (_mm512_getmant_round_ps, __m512, __m512, 1, 1, 8)
     331  test_1 (_mm512_permute_pd, __m512d, __m512d, 1)
     332  test_1 (_mm512_permute_ps, __m512, __m512, 1)
     333  test_1 (_mm512_permutex_epi64, __m512i, __m512i, 1)
     334  test_1 (_mm512_permutex_pd, __m512d, __m512d, 1)
     335  test_1 (_mm512_rol_epi32, __m512i, __m512i, 1)
     336  test_1 (_mm512_rol_epi64, __m512i, __m512i, 1)
     337  test_1 (_mm512_ror_epi32, __m512i, __m512i, 1)
     338  test_1 (_mm512_ror_epi64, __m512i, __m512i, 1)
     339  test_1 (_mm512_shuffle_epi32, __m512i, __m512i, 1)
     340  test_1 (_mm512_slli_epi32, __m512i, __m512i, 1)
     341  test_1 (_mm512_slli_epi64, __m512i, __m512i, 1)
     342  test_1 (_mm512_sqrt_round_pd, __m512d, __m512d, 9)
     343  test_1 (_mm512_sqrt_round_ps, __m512, __m512, 9)
     344  test_1 (_mm512_srai_epi32, __m512i, __m512i, 1)
     345  test_1 (_mm512_srai_epi64, __m512i, __m512i, 1)
     346  test_1 (_mm512_srli_epi32, __m512i, __m512i, 1)
     347  test_1 (_mm512_srli_epi64, __m512i, __m512i, 1)
     348  test_1 (_mm_cvt_roundsd_i32, int, __m128d, 9)
     349  test_1 (_mm_cvt_roundsd_u32, unsigned, __m128d, 9)
     350  test_1 (_mm_cvt_roundss_i32, int, __m128, 9)
     351  test_1 (_mm_cvt_roundss_u32, unsigned, __m128, 9)
     352  test_1 (_mm_cvtt_roundsd_i32, int, __m128d, 8)
     353  test_1 (_mm_cvtt_roundsd_u32, unsigned, __m128d, 8)
     354  test_1 (_mm_cvtt_roundss_i32, int, __m128, 8)
     355  test_1 (_mm_cvtt_roundss_u32, unsigned, __m128, 8)
     356  test_1x (_mm512_getmant_pd, __m512d, __m512d, 1, 1)
     357  test_1x (_mm512_getmant_ps, __m512, __m512, 1, 1)
     358  test_1x (_mm_cvt_roundi32_ss, __m128, __m128, 1, 9)
     359  test_2 (_mm512_add_round_pd, __m512d, __m512d, __m512d, 9)
     360  test_2 (_mm512_add_round_ps, __m512, __m512, __m512, 9)
     361  test_2 (_mm512_alignr_epi32, __m512i, __m512i, __m512i, 1)
     362  test_2 (_mm512_alignr_epi64, __m512i, __m512i, __m512i, 1)
     363  test_2 (_mm512_cmp_epi32_mask, __mmask16, __m512i, __m512i, 1)
     364  test_2 (_mm512_cmp_epi64_mask, __mmask8, __m512i, __m512i, 1)
     365  test_2 (_mm512_cmp_epu32_mask, __mmask16, __m512i, __m512i, 1)
     366  test_2 (_mm512_cmp_epu64_mask, __mmask8, __m512i, __m512i, 1)
     367  test_2 (_mm512_cmp_pd_mask, __mmask8, __m512d, __m512d, 1)
     368  test_2 (_mm512_cmp_ps_mask, __mmask16, __m512, __m512, 1)
     369  test_2 (_mm512_div_round_pd, __m512d, __m512d, __m512d, 9)
     370  test_2 (_mm512_div_round_ps, __m512, __m512, __m512, 9)
     371  test_2 (_mm512_i32gather_epi32, __m512i, __m512i, void const *, 1)
     372  test_2 (_mm512_i32gather_epi64, __m512i, __m256i, void const *, 1)
     373  test_2 (_mm512_i32gather_pd, __m512d, __m256i, void const *, 1)
     374  test_2 (_mm512_i32gather_ps, __m512, __m512i, void const *, 1)
     375  test_2 (_mm512_i64gather_epi32, __m256i, __m512i, void const *, 1)
     376  test_2 (_mm512_i64gather_epi64, __m512i, __m512i, void const *, 1)
     377  test_2 (_mm512_i64gather_pd, __m512d, __m512i, void const *, 1)
     378  test_2 (_mm512_i64gather_ps, __m256, __m512i, void const *, 1)
     379  test_2 (_mm512_insertf32x4, __m512, __m512, __m128, 1)
     380  test_2 (_mm512_insertf64x4, __m512d, __m512d, __m256d, 1)
     381  test_2 (_mm512_inserti32x4, __m512i, __m512i, __m128i, 1)
     382  test_2 (_mm512_inserti64x4, __m512i, __m512i, __m256i, 1)
     383  test_2 (_mm512_maskz_cvt_roundepi32_ps, __m512, __mmask16, __m512i, 9)
     384  test_2 (_mm512_maskz_cvt_roundepu32_ps, __m512, __mmask16, __m512i, 9)
     385  test_2 (_mm512_maskz_cvt_roundpd_epi32, __m256i, __mmask8, __m512d, 9)
     386  test_2 (_mm512_maskz_cvt_roundpd_epu32, __m256i, __mmask8, __m512d, 9)
     387  test_2 (_mm512_maskz_cvt_roundpd_ps, __m256, __mmask8, __m512d, 9)
     388  test_2 (_mm512_maskz_cvt_roundph_ps, __m512, __mmask16, __m256i, 8)
     389  test_2 (_mm512_maskz_cvt_roundps_epi32, __m512i, __mmask16, __m512, 9)
     390  test_2 (_mm512_maskz_cvt_roundps_epu32, __m512i, __mmask16, __m512, 9)
     391  test_2 (_mm512_maskz_cvt_roundps_pd, __m512d, __mmask8, __m256, 8)
     392  test_2 (_mm512_maskz_cvtps_ph, __m256i, __mmask16, __m512, 1)
     393  test_2 (_mm512_maskz_cvtt_roundpd_epi32, __m256i, __mmask8, __m512d, 8)
     394  test_2 (_mm512_maskz_cvtt_roundpd_epu32, __m256i, __mmask8, __m512d, 8)
     395  test_2 (_mm512_maskz_cvtt_roundps_epi32, __m512i, __mmask16, __m512, 8)
     396  test_2 (_mm512_maskz_cvtt_roundps_epu32, __m512i, __mmask16, __m512, 8)
     397  test_2 (_mm512_maskz_extractf32x4_ps, __m128, __mmask8, __m512, 1)
     398  test_2 (_mm512_maskz_extractf64x4_pd, __m256d, __mmask8, __m512d, 1)
     399  test_2 (_mm512_maskz_extracti32x4_epi32, __m128i, __mmask8, __m512i, 1)
     400  test_2 (_mm512_maskz_extracti64x4_epi64, __m256i, __mmask8, __m512i, 1)
     401  test_2 (_mm512_maskz_getexp_round_pd, __m512d, __mmask8, __m512d, 8)
     402  test_2 (_mm512_maskz_getexp_round_ps, __m512, __mmask16, __m512, 8)
     403  test_2y (_mm512_maskz_getmant_round_pd, __m512d, __mmask8, __m512d, 1, 1, 8)
     404  test_3y (_mm_maskz_getmant_round_sd, __m128d, __mmask8, __m128d, __m128d, 1, 1, 8)
     405  test_2y (_mm512_maskz_getmant_round_ps, __m512, __mmask16, __m512, 1, 1, 8)
     406  test_3y (_mm_maskz_getmant_round_ss, __m128, __mmask8, __m128, __m128, 1, 1, 8)
     407  test_2 (_mm512_maskz_permute_pd, __m512d, __mmask8, __m512d, 1)
     408  test_2 (_mm512_maskz_permute_ps, __m512, __mmask16, __m512, 1)
     409  test_2 (_mm512_maskz_permutex_epi64, __m512i, __mmask8, __m512i, 1)
     410  test_2 (_mm512_maskz_permutex_pd, __m512d, __mmask8, __m512d, 1)
     411  test_2 (_mm512_maskz_rol_epi32, __m512i, __mmask16, __m512i, 1)
     412  test_2 (_mm512_maskz_rol_epi64, __m512i, __mmask8, __m512i, 1)
     413  test_2 (_mm512_maskz_ror_epi32, __m512i, __mmask16, __m512i, 1)
     414  test_2 (_mm512_maskz_ror_epi64, __m512i, __mmask8, __m512i, 1)
     415  test_2 (_mm512_maskz_shuffle_epi32, __m512i, __mmask16, __m512i, 1)
     416  test_2 (_mm512_maskz_slli_epi32, __m512i, __mmask16, __m512i, 1)
     417  test_2 (_mm512_maskz_slli_epi64, __m512i, __mmask8, __m512i, 1)
     418  test_2 (_mm512_maskz_sqrt_round_pd, __m512d, __mmask8, __m512d, 9)
     419  test_2 (_mm512_maskz_sqrt_round_ps, __m512, __mmask16, __m512, 9)
     420  test_2 (_mm512_maskz_srai_epi32, __m512i, __mmask16, __m512i, 1)
     421  test_2 (_mm512_maskz_srai_epi64, __m512i, __mmask8, __m512i, 1)
     422  test_2 (_mm512_maskz_srli_epi32, __m512i, __mmask16, __m512i, 1)
     423  test_2 (_mm512_maskz_srli_epi64, __m512i, __mmask8, __m512i, 1)
     424  test_2 (_mm512_max_round_pd, __m512d, __m512d, __m512d, 8)
     425  test_2 (_mm512_max_round_ps, __m512, __m512, __m512, 8)
     426  test_2 (_mm512_min_round_pd, __m512d, __m512d, __m512d, 8)
     427  test_2 (_mm512_min_round_ps, __m512, __m512, __m512, 8)
     428  test_2 (_mm512_mul_round_pd, __m512d, __m512d, __m512d, 9)
     429  test_2 (_mm512_mul_round_ps, __m512, __m512, __m512, 9)
     430  test_2 (_mm512_scalef_round_pd, __m512d, __m512d, __m512d, 9)
     431  test_2 (_mm512_scalef_round_ps, __m512, __m512, __m512, 9)
     432  test_2 (_mm512_shuffle_f32x4, __m512, __m512, __m512, 1)
     433  test_2 (_mm512_shuffle_f64x2, __m512d, __m512d, __m512d, 1)
     434  test_2 (_mm512_shuffle_i32x4, __m512i, __m512i, __m512i, 1)
     435  test_2 (_mm512_shuffle_i64x2, __m512i, __m512i, __m512i, 1)
     436  test_2 (_mm512_shuffle_pd, __m512d, __m512d, __m512d, 1)
     437  test_2 (_mm512_shuffle_ps, __m512, __m512, __m512, 1)
     438  test_2 (_mm512_sub_round_pd, __m512d, __m512d, __m512d, 9)
     439  test_2 (_mm512_sub_round_ps, __m512, __m512, __m512, 9)
     440  test_2 (_mm_cmp_sd_mask, __mmask8, __m128d, __m128d, 1)
     441  test_2 (_mm_cmp_ss_mask, __mmask8, __m128, __m128, 1)
     442  test_2 (_mm512_shrdi_epi16, __m512i, __m512i, __m512i, 1)
     443  test_2 (_mm512_shrdi_epi32, __m512i, __m512i, __m512i, 1)
     444  test_2 (_mm512_shrdi_epi64, __m512i, __m512i, __m512i, 1)
     445  test_2 (_mm256_shrdi_epi16, __m256i, __m256i, __m256i, 1)
     446  test_2 (_mm256_shrdi_epi32, __m256i, __m256i, __m256i, 1)
     447  test_2 (_mm256_shrdi_epi64, __m256i, __m256i, __m256i, 1)
     448  test_2 (_mm_shrdi_epi16, __m128i, __m128i, __m128i, 1)
     449  test_2 (_mm_shrdi_epi32, __m128i, __m128i, __m128i, 1)
     450  test_2 (_mm_shrdi_epi64, __m128i, __m128i, __m128i, 1)
     451  test_2 (_mm512_shldi_epi16, __m512i, __m512i, __m512i, 1)
     452  test_2 (_mm512_shldi_epi32, __m512i, __m512i, __m512i, 1)
     453  test_2 (_mm512_shldi_epi64, __m512i, __m512i, __m512i, 1)
     454  test_2 (_mm256_shldi_epi16, __m256i, __m256i, __m256i, 1)
     455  test_2 (_mm256_shldi_epi32, __m256i, __m256i, __m256i, 1)
     456  test_2 (_mm256_shldi_epi64, __m256i, __m256i, __m256i, 1)
     457  test_2 (_mm_shldi_epi16, __m128i, __m128i, __m128i, 1)
     458  test_2 (_mm_shldi_epi32, __m128i, __m128i, __m128i, 1)
     459  test_2 (_mm_shldi_epi64, __m128i, __m128i, __m128i, 1)
     460  test_2 (_mm_cmp_sh_mask, __mmask8, __m128h, __m128h, 1)
     461  #ifdef __x86_64__
     462  test_2 (_mm_cvt_roundi64_sd, __m128d, __m128d, long long, 9)
     463  test_2 (_mm_cvt_roundi64_ss, __m128, __m128, long long, 9)
     464  #endif
     465  test_2 (_mm_cvt_roundu32_ss, __m128, __m128, unsigned, 9)
     466  #ifdef __x86_64__
     467  test_2 (_mm_cvt_roundu64_sd, __m128d, __m128d, unsigned long long, 9)
     468  test_2 (_mm_cvt_roundu64_ss, __m128, __m128, unsigned long long, 9)
     469  #endif
     470  test_2x (_mm512_cmp_round_pd_mask, __mmask8, __m512d, __m512d, 1, 8)
     471  test_2x (_mm512_cmp_round_ps_mask, __mmask16, __m512, __m512, 1, 8)
     472  test_2x (_mm512_maskz_roundscale_round_pd, __m512d, __mmask8, __m512d, 1, 8)
     473  test_2x (_mm512_maskz_roundscale_round_ps, __m512, __mmask16, __m512, 1, 8)
     474  test_2x (_mm_cmp_round_sd_mask, __mmask8, __m128d, __m128d, 1, 8)
     475  test_2x (_mm_cmp_round_ss_mask, __mmask8, __m128, __m128, 1, 8)
     476  test_2x (_mm_comi_round_sd, int, __m128d, __m128d, 1, 8)
     477  test_2x (_mm_comi_round_ss, int, __m128, __m128, 1, 8)
     478  test_3 (_mm512_fmadd_round_pd, __m512d, __m512d, __m512d, __m512d, 9)
     479  test_3 (_mm512_fmadd_round_ps, __m512, __m512, __m512, __m512, 9)
     480  test_3 (_mm512_fmaddsub_round_pd, __m512d, __m512d, __m512d, __m512d, 9)
     481  test_3 (_mm512_fmaddsub_round_ps, __m512, __m512, __m512, __m512, 9)
     482  test_3 (_mm512_fmsub_round_pd, __m512d, __m512d, __m512d, __m512d, 9)
     483  test_3 (_mm512_fmsub_round_ps, __m512, __m512, __m512, __m512, 9)
     484  test_3 (_mm512_fmsubadd_round_pd, __m512d, __m512d, __m512d, __m512d, 9)
     485  test_3 (_mm512_fmsubadd_round_ps, __m512, __m512, __m512, __m512, 9)
     486  test_3 (_mm512_fnmadd_round_pd, __m512d, __m512d, __m512d, __m512d, 9)
     487  test_3 (_mm512_fnmadd_round_ps, __m512, __m512, __m512, __m512, 9)
     488  test_3 (_mm512_fnmsub_round_pd, __m512d, __m512d, __m512d, __m512d, 9)
     489  test_3 (_mm512_fnmsub_round_ps, __m512, __m512, __m512, __m512, 9)
     490  test_3 (_mm512_mask_cmp_epi32_mask, __mmask16, __mmask16, __m512i, __m512i, 1)
     491  test_3 (_mm512_mask_cmp_epi64_mask, __mmask8, __mmask8, __m512i, __m512i, 1)
     492  test_3 (_mm512_mask_cmp_epu32_mask, __mmask16, __mmask16, __m512i, __m512i, 1)
     493  test_3 (_mm512_mask_cmp_epu64_mask, __mmask8, __mmask8, __m512i, __m512i, 1)
     494  test_3 (_mm512_mask_cmp_pd_mask, __mmask8, __mmask8, __m512d, __m512d, 1)
     495  test_3 (_mm512_mask_cmp_ps_mask, __mmask16, __mmask16, __m512, __m512, 1)
     496  test_3 (_mm512_mask_cvt_roundepi32_ps, __m512, __m512, __mmask16, __m512i, 9)
     497  test_3 (_mm512_mask_cvt_roundepu32_ps, __m512, __m512, __mmask16, __m512i, 9)
     498  test_3 (_mm512_mask_cvt_roundpd_epi32, __m256i, __m256i, __mmask8, __m512d, 9)
     499  test_3 (_mm512_mask_cvt_roundpd_epu32, __m256i, __m256i, __mmask8, __m512d, 9)
     500  test_3 (_mm512_mask_cvt_roundpd_ps, __m256, __m256, __mmask8, __m512d, 9)
     501  test_3 (_mm512_mask_cvt_roundph_ps, __m512, __m512, __mmask16, __m256i, 8)
     502  test_3 (_mm512_mask_cvt_roundps_epi32, __m512i, __m512i, __mmask16, __m512, 9)
     503  test_3 (_mm512_mask_cvt_roundps_epu32, __m512i, __m512i, __mmask16, __m512, 9)
     504  test_3 (_mm512_mask_cvt_roundps_pd, __m512d, __m512d, __mmask8, __m256, 8)
     505  test_3 (_mm512_mask_cvtps_ph, __m256i, __m256i, __mmask16, __m512, 1)
     506  test_3 (_mm512_mask_cvtt_roundpd_epi32, __m256i, __m256i, __mmask8, __m512d, 8)
     507  test_3 (_mm512_mask_cvtt_roundpd_epu32, __m256i, __m256i, __mmask8, __m512d, 8)
     508  test_3 (_mm512_mask_cvtt_roundps_epi32, __m512i, __m512i, __mmask16, __m512, 8)
     509  test_3 (_mm512_mask_cvtt_roundps_epu32, __m512i, __m512i, __mmask16, __m512, 8)
     510  test_3 (_mm512_mask_extractf32x4_ps, __m128, __m128, __mmask8, __m512, 1)
     511  test_3 (_mm512_mask_extractf64x4_pd, __m256d, __m256d, __mmask8, __m512d, 1)
     512  test_3 (_mm512_mask_extracti32x4_epi32, __m128i, __m128i, __mmask8, __m512i, 1)
     513  test_3 (_mm512_mask_extracti64x4_epi64, __m256i, __m256i, __mmask8, __m512i, 1)
     514  test_3 (_mm512_mask_getexp_round_pd, __m512d, __m512d, __mmask8, __m512d, 8)
     515  test_3 (_mm512_mask_getexp_round_ps, __m512, __m512, __mmask16, __m512, 8)
     516  test_3y (_mm512_mask_getmant_round_pd, __m512d, __m512d, __mmask8, __m512d, 1, 1, 8)
     517  test_4y (_mm_mask_getmant_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 1, 1, 8)
     518  test_3y (_mm512_mask_getmant_round_ps, __m512, __m512, __mmask16, __m512, 1, 1, 8)
     519  test_4y (_mm_mask_getmant_round_ss, __m128, __m128, __mmask8, __m128, __m128, 1, 1, 8)
     520  test_3 (_mm512_mask_permute_pd, __m512d, __m512d, __mmask8, __m512d, 1)
     521  test_3 (_mm512_mask_permute_ps, __m512, __m512, __mmask16, __m512, 1)
     522  test_3 (_mm512_mask_permutex_epi64, __m512i, __m512i, __mmask8, __m512i, 1)
     523  test_3 (_mm512_mask_permutex_pd, __m512d, __m512d, __mmask8, __m512d, 1)
     524  test_3 (_mm512_mask_rol_epi32, __m512i, __m512i, __mmask16, __m512i, 1)
     525  test_3 (_mm512_mask_rol_epi64, __m512i, __m512i, __mmask8, __m512i, 1)
     526  test_3 (_mm512_mask_ror_epi32, __m512i, __m512i, __mmask16, __m512i, 1)
     527  test_3 (_mm512_mask_ror_epi64, __m512i, __m512i, __mmask8, __m512i, 1)
     528  test_3 (_mm512_mask_shuffle_epi32, __m512i, __m512i, __mmask16, __m512i, 1)
     529  test_3 (_mm512_mask_slli_epi32, __m512i, __m512i, __mmask16, __m512i, 1)
     530  test_3 (_mm512_mask_slli_epi64, __m512i, __m512i, __mmask8, __m512i, 1)
     531  test_3 (_mm512_mask_sqrt_round_pd, __m512d, __m512d, __mmask8, __m512d, 9)
     532  test_3 (_mm512_mask_sqrt_round_ps, __m512, __m512, __mmask16, __m512, 9)
     533  test_3 (_mm512_mask_srai_epi32, __m512i, __m512i, __mmask16, __m512i, 1)
     534  test_3 (_mm512_mask_srai_epi64, __m512i, __m512i, __mmask8, __m512i, 1)
     535  test_3 (_mm512_mask_srli_epi32, __m512i, __m512i, __mmask16, __m512i, 1)
     536  test_3 (_mm512_mask_srli_epi64, __m512i, __m512i, __mmask8, __m512i, 1)
     537  test_3 (_mm512_maskz_add_round_pd, __m512d, __mmask8, __m512d, __m512d, 9)
     538  test_3 (_mm512_maskz_add_round_ps, __m512, __mmask16, __m512, __m512, 9)
     539  test_3 (_mm512_maskz_alignr_epi32, __m512i, __mmask16, __m512i, __m512i, 1)
     540  test_3 (_mm512_maskz_alignr_epi64, __m512i, __mmask8, __m512i, __m512i, 1)
     541  test_3 (_mm512_maskz_div_round_pd, __m512d, __mmask8, __m512d, __m512d, 9)
     542  test_3 (_mm512_maskz_div_round_ps, __m512, __mmask16, __m512, __m512, 9)
     543  test_3 (_mm512_maskz_insertf32x4, __m512, __mmask16, __m512, __m128, 1)
     544  test_3 (_mm512_maskz_insertf64x4, __m512d, __mmask8, __m512d, __m256d, 1)
     545  test_3 (_mm512_maskz_inserti32x4, __m512i, __mmask16, __m512i, __m128i, 1)
     546  test_3 (_mm512_maskz_inserti64x4, __m512i, __mmask8, __m512i, __m256i, 1)
     547  test_3 (_mm512_maskz_max_round_pd, __m512d, __mmask8, __m512d, __m512d, 8)
     548  test_3 (_mm512_maskz_max_round_ps, __m512, __mmask16, __m512, __m512, 8)
     549  test_3 (_mm512_maskz_min_round_pd, __m512d, __mmask8, __m512d, __m512d, 8)
     550  test_3 (_mm512_maskz_min_round_ps, __m512, __mmask16, __m512, __m512, 8)
     551  test_3 (_mm512_maskz_mul_round_pd, __m512d, __mmask8, __m512d, __m512d, 9)
     552  test_3 (_mm512_maskz_mul_round_ps, __m512, __mmask16, __m512, __m512, 9)
     553  test_3 (_mm512_maskz_scalef_round_pd, __m512d, __mmask8, __m512d, __m512d, 9)
     554  test_3 (_mm512_maskz_scalef_round_ps, __m512, __mmask16, __m512, __m512, 9)
     555  test_3 (_mm512_maskz_shuffle_f32x4, __m512, __mmask16, __m512, __m512, 1)
     556  test_3 (_mm512_maskz_shuffle_f64x2, __m512d, __mmask8, __m512d, __m512d, 1)
     557  test_3 (_mm512_maskz_shuffle_i32x4, __m512i, __mmask16, __m512i, __m512i, 1)
     558  test_3 (_mm512_maskz_shuffle_i64x2, __m512i, __mmask8, __m512i, __m512i, 1)
     559  test_3 (_mm512_maskz_shuffle_pd, __m512d, __mmask8, __m512d, __m512d, 1)
     560  test_3 (_mm512_maskz_shuffle_ps, __m512, __mmask16, __m512, __m512, 1)
     561  test_3 (_mm512_maskz_sub_round_pd, __m512d, __mmask8, __m512d, __m512d, 9)
     562  test_3 (_mm512_maskz_sub_round_ps, __m512, __mmask16, __m512, __m512, 9)
     563  test_3 (_mm512_ternarylogic_epi32, __m512i, __m512i, __m512i, __m512i, 1)
     564  test_3 (_mm512_ternarylogic_epi64, __m512i, __m512i, __m512i, __m512i, 1)
     565  test_3 (_mm_mask_cmp_sd_mask, __mmask8, __mmask8, __m128d, __m128d, 1)
     566  test_3 (_mm_mask_cmp_ss_mask, __mmask8, __mmask8, __m128, __m128, 1)
     567  test_3 (_mm512_maskz_shrdi_epi16, __m512i, __mmask32, __m512i, __m512i, 1)
     568  test_3 (_mm512_maskz_shrdi_epi32, __m512i, __mmask16, __m512i, __m512i, 1)
     569  test_3 (_mm512_maskz_shrdi_epi64, __m512i, __mmask8, __m512i, __m512i, 1)
     570  test_3 (_mm256_maskz_shrdi_epi16, __m256i, __mmask16, __m256i, __m256i, 1)
     571  test_3 (_mm256_maskz_shrdi_epi32, __m256i, __mmask8, __m256i, __m256i, 1)
     572  test_3 (_mm256_maskz_shrdi_epi64, __m256i, __mmask8, __m256i, __m256i, 1)
     573  test_3 (_mm_maskz_shrdi_epi16, __m128i, __mmask8, __m128i, __m128i, 1)
     574  test_3 (_mm_maskz_shrdi_epi32, __m128i, __mmask8, __m128i, __m128i, 1)
     575  test_3 (_mm_maskz_shrdi_epi64, __m128i, __mmask8, __m128i, __m128i, 1)
     576  test_3 (_mm512_maskz_shldi_epi16, __m512i, __mmask32, __m512i, __m512i, 1)
     577  test_3 (_mm512_maskz_shldi_epi32, __m512i, __mmask16, __m512i, __m512i, 1)
     578  test_3 (_mm512_maskz_shldi_epi64, __m512i, __mmask8, __m512i, __m512i, 1)
     579  test_3 (_mm256_maskz_shldi_epi16, __m256i, __mmask16, __m256i, __m256i, 1)
     580  test_3 (_mm256_maskz_shldi_epi32, __m256i, __mmask8, __m256i, __m256i, 1)
     581  test_3 (_mm256_maskz_shldi_epi64, __m256i, __mmask8, __m256i, __m256i, 1)
     582  test_3 (_mm_maskz_shldi_epi16, __m128i, __mmask8, __m128i, __m128i, 1)
     583  test_3 (_mm_maskz_shldi_epi32, __m128i, __mmask8, __m128i, __m128i, 1)
     584  test_3 (_mm_maskz_shldi_epi64, __m128i, __mmask8, __m128i, __m128i, 1)
     585  test_3 (_mm_mask_cmp_sh_mask, __mmask8, __mmask8, __m128h, __m128h, 1)
     586  test_3v (_mm512_i32scatter_epi32, void *, __m512i, __m512i, 1)
     587  test_3v (_mm512_i32scatter_epi64, void *, __m256i, __m512i, 1)
     588  test_3v (_mm512_i32scatter_pd, void *, __m256i, __m512d, 1)
     589  test_3v (_mm512_i32scatter_ps, void *, __m512i, __m512, 1)
     590  test_3v (_mm512_i64scatter_epi32, void *, __m512i, __m256i, 1)
     591  test_3v (_mm512_i64scatter_epi64, void *, __m512i, __m512i, 1)
     592  test_3v (_mm512_i64scatter_pd, void *, __m512i, __m512d, 1)
     593  test_3v (_mm512_i64scatter_ps, void *, __m512i, __m256, 1)
     594  test_3x (_mm512_mask_roundscale_round_pd, __m512d, __m512d, __mmask8, __m512d, 1, 8)
     595  test_3x (_mm512_mask_roundscale_round_ps, __m512, __m512, __mmask16, __m512, 1, 8)
     596  test_3x (_mm512_mask_cmp_round_pd_mask, __mmask8, __mmask8, __m512d, __m512d, 1, 8)
     597  test_3x (_mm512_mask_cmp_round_ps_mask, __mmask16, __mmask16, __m512, __m512, 1, 8)
     598  test_3x (_mm_fixupimm_round_sd, __m128d, __m128d, __m128d, __m128i, 1, 8)
     599  test_3x (_mm_fixupimm_round_ss, __m128, __m128, __m128, __m128i, 1, 8)
     600  test_3x (_mm_mask_cmp_round_sd_mask, __mmask8, __mmask8, __m128d, __m128d, 1, 8)
     601  test_3x (_mm_mask_cmp_round_ss_mask, __mmask8, __mmask8, __m128, __m128, 1, 8)
     602  test_4 (_mm512_mask3_fmadd_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 9)
     603  test_4 (_mm512_mask3_fmadd_round_ps, __m512, __m512, __m512, __m512, __mmask16, 9)
     604  test_4 (_mm512_mask3_fmaddsub_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 9)
     605  test_4 (_mm512_mask3_fmaddsub_round_ps, __m512, __m512, __m512, __m512, __mmask16, 9)
     606  test_4 (_mm512_mask3_fmsub_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 9)
     607  test_4 (_mm512_mask3_fmsub_round_ps, __m512, __m512, __m512, __m512, __mmask16, 9)
     608  test_4 (_mm512_mask3_fmsubadd_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 9)
     609  test_4 (_mm512_mask3_fmsubadd_round_ps, __m512, __m512, __m512, __m512, __mmask16, 9)
     610  test_4 (_mm512_mask3_fnmadd_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 9)
     611  test_4 (_mm512_mask3_fnmadd_round_ps, __m512, __m512, __m512, __m512, __mmask16, 9)
     612  test_4 (_mm512_mask3_fnmsub_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 9)
     613  test_4 (_mm512_mask3_fnmsub_round_ps, __m512, __m512, __m512, __m512, __mmask16, 9)
     614  test_4 (_mm512_mask_add_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9)
     615  test_4 (_mm512_mask_add_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9)
     616  test_4 (_mm512_mask_alignr_epi32, __m512i, __m512i, __mmask16, __m512i, __m512i, 1)
     617  test_4 (_mm512_mask_alignr_epi64, __m512i, __m512i, __mmask8, __m512i, __m512i, 1)
     618  test_4 (_mm512_mask_div_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9)
     619  test_4 (_mm512_mask_div_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9)
     620  test_4 (_mm512_mask_fmadd_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9)
     621  test_4 (_mm512_mask_fmadd_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9)
     622  test_4 (_mm512_mask_fmaddsub_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9)
     623  test_4 (_mm512_mask_fmaddsub_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9)
     624  test_4 (_mm512_mask_fmsub_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9)
     625  test_4 (_mm512_mask_fmsub_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9)
     626  test_4 (_mm512_mask_fmsubadd_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9)
     627  test_4 (_mm512_mask_fmsubadd_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9)
     628  test_4 (_mm512_mask_fnmadd_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9)
     629  test_4 (_mm512_mask_fnmadd_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9)
     630  test_4 (_mm512_mask_fnmsub_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9)
     631  test_4 (_mm512_mask_fnmsub_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9)
     632  test_4 (_mm512_mask_i32gather_epi32, __m512i, __m512i, __mmask16, __m512i, void const *, 1)
     633  test_4 (_mm512_mask_i32gather_epi64, __m512i, __m512i, __mmask8, __m256i, void const *, 1)
     634  test_4 (_mm512_mask_i32gather_pd, __m512d, __m512d, __mmask8, __m256i, void const *, 1)
     635  test_4 (_mm512_mask_i32gather_ps, __m512, __m512, __mmask16, __m512i, void const *, 1)
     636  test_4 (_mm512_mask_i64gather_epi32, __m256i, __m256i, __mmask8, __m512i, void const *, 1)
     637  test_4 (_mm512_mask_i64gather_epi64, __m512i, __m512i, __mmask8, __m512i, void const *, 1)
     638  test_4 (_mm512_mask_i64gather_pd, __m512d, __m512d, __mmask8, __m512i, void const *, 1)
     639  test_4 (_mm512_mask_i64gather_ps, __m256, __m256, __mmask8, __m512i, void const *, 1)
     640  test_4 (_mm512_mask_insertf32x4, __m512, __m512, __mmask16, __m512, __m128, 1)
     641  test_4 (_mm512_mask_insertf64x4, __m512d, __m512d, __mmask8, __m512d, __m256d, 1)
     642  test_4 (_mm512_mask_inserti32x4, __m512i, __m512i, __mmask16, __m512i, __m128i, 1)
     643  test_4 (_mm512_mask_inserti64x4, __m512i, __m512i, __mmask8, __m512i, __m256i, 1)
     644  test_4 (_mm512_mask_max_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 8)
     645  test_4 (_mm512_mask_max_round_ps, __m512, __m512, __mmask16, __m512, __m512, 8)
     646  test_4 (_mm512_mask_min_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 8)
     647  test_4 (_mm512_mask_min_round_ps, __m512, __m512, __mmask16, __m512, __m512, 8)
     648  test_4 (_mm512_mask_mul_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9)
     649  test_4 (_mm512_mask_mul_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9)
     650  test_4 (_mm512_mask_scalef_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9)
     651  test_4 (_mm512_mask_scalef_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9)
     652  test_4 (_mm512_mask_shuffle_f32x4, __m512, __m512, __mmask16, __m512, __m512, 1)
     653  test_4 (_mm512_mask_shuffle_f64x2, __m512d, __m512d, __mmask8, __m512d, __m512d, 1)
     654  test_4 (_mm512_mask_shuffle_i32x4, __m512i, __m512i, __mmask16, __m512i, __m512i, 1)
     655  test_4 (_mm512_mask_shuffle_i64x2, __m512i, __m512i, __mmask8, __m512i, __m512i, 1)
     656  test_4 (_mm512_mask_shuffle_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 1)
     657  test_4 (_mm512_mask_shuffle_ps, __m512, __m512, __mmask16, __m512, __m512, 1)
     658  test_4 (_mm512_mask_sub_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9)
     659  test_4 (_mm512_mask_sub_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9)
     660  test_4 (_mm512_mask_ternarylogic_epi32, __m512i, __m512i, __mmask16, __m512i, __m512i, 1)
     661  test_4 (_mm512_mask_ternarylogic_epi64, __m512i, __m512i, __mmask8, __m512i, __m512i, 1)
     662  test_4 (_mm512_maskz_fmadd_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 9)
     663  test_4 (_mm512_maskz_fmadd_round_ps, __m512, __mmask16, __m512, __m512, __m512, 9)
     664  test_4 (_mm512_maskz_fmaddsub_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 9)
     665  test_4 (_mm512_maskz_fmaddsub_round_ps, __m512, __mmask16, __m512, __m512, __m512, 9)
     666  test_4 (_mm512_maskz_fmsub_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 9)
     667  test_4 (_mm512_maskz_fmsub_round_ps, __m512, __mmask16, __m512, __m512, __m512, 9)
     668  test_4 (_mm512_maskz_fmsubadd_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 9)
     669  test_4 (_mm512_maskz_fmsubadd_round_ps, __m512, __mmask16, __m512, __m512, __m512, 9)
     670  test_4 (_mm512_maskz_fnmadd_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 9)
     671  test_4 (_mm512_maskz_fnmadd_round_ps, __m512, __mmask16, __m512, __m512, __m512, 9)
     672  test_4 (_mm512_maskz_fnmsub_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 9)
     673  test_4 (_mm512_maskz_fnmsub_round_ps, __m512, __mmask16, __m512, __m512, __m512, 9)
     674  test_4 (_mm512_maskz_ternarylogic_epi32, __m512i, __mmask16, __m512i, __m512i, __m512i, 1)
     675  test_4 (_mm512_maskz_ternarylogic_epi64, __m512i, __mmask8, __m512i, __m512i, __m512i, 1)
     676  test_4 (_mm_mask_fmadd_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 9)
     677  test_4 (_mm_mask_fmadd_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9)
     678  test_4 (_mm_mask3_fmadd_round_sd, __m128d, __m128d, __m128d, __m128d, __mmask8, 9)
     679  test_4 (_mm_mask3_fmadd_round_ss, __m128, __m128, __m128, __m128, __mmask8, 9)
     680  test_4 (_mm_maskz_fmadd_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128d, 9)
     681  test_4 (_mm_maskz_fmadd_round_ss, __m128, __mmask8, __m128, __m128, __m128, 9)
     682  test_4 (_mm_mask_fmsub_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 9)
     683  test_4 (_mm_mask_fmsub_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9)
     684  test_4 (_mm_mask3_fmsub_round_sd, __m128d, __m128d, __m128d, __m128d, __mmask8, 9)
     685  test_4 (_mm_mask3_fmsub_round_ss, __m128, __m128, __m128, __m128, __mmask8, 9)
     686  test_4 (_mm_maskz_fmsub_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128d, 9)
     687  test_4 (_mm_maskz_fmsub_round_ss, __m128, __mmask8, __m128, __m128, __m128, 9)
     688  test_4 (_mm_mask_fnmadd_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 9)
     689  test_4 (_mm_mask_fnmadd_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9)
     690  test_4 (_mm_mask3_fnmadd_round_sd, __m128d, __m128d, __m128d, __m128d, __mmask8, 9)
     691  test_4 (_mm_mask3_fnmadd_round_ss, __m128, __m128, __m128, __m128, __mmask8, 9)
     692  test_4 (_mm_maskz_fnmadd_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128d, 9)
     693  test_4 (_mm_maskz_fnmadd_round_ss, __m128, __mmask8, __m128, __m128, __m128, 9)
     694  test_4 (_mm_mask_fnmsub_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 9)
     695  test_4 (_mm_mask_fnmsub_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9)
     696  test_4 (_mm_mask3_fnmsub_round_sd, __m128d, __m128d, __m128d, __m128d, __mmask8, 9)
     697  test_4 (_mm_mask3_fnmsub_round_ss, __m128, __m128, __m128, __m128, __mmask8, 9)
     698  test_4 (_mm_maskz_fnmsub_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128d, 9)
     699  test_4 (_mm_maskz_fnmsub_round_ss, __m128, __mmask8, __m128, __m128, __m128, 9)
     700  test_4 (_mm512_mask_shrdi_epi16, __m512i, __m512i, __mmask32, __m512i, __m512i, 1)
     701  test_4 (_mm512_mask_shrdi_epi32, __m512i, __m512i, __mmask16, __m512i, __m512i, 1)
     702  test_4 (_mm512_mask_shrdi_epi64, __m512i, __m512i, __mmask8, __m512i, __m512i, 1)
     703  test_4 (_mm256_mask_shrdi_epi16, __m256i, __m256i, __mmask16, __m256i, __m256i, 1)
     704  test_4 (_mm256_mask_shrdi_epi32, __m256i, __m256i, __mmask8, __m256i, __m256i, 1)
     705  test_4 (_mm256_mask_shrdi_epi64, __m256i, __m256i, __mmask8, __m256i, __m256i, 1)
     706  test_4 (_mm_mask_shrdi_epi16, __m128i, __m128i, __mmask8, __m128i, __m128i, 1)
     707  test_4 (_mm_mask_shrdi_epi32, __m128i, __m128i, __mmask8, __m128i, __m128i, 1)
     708  test_4 (_mm_mask_shrdi_epi64, __m128i, __m128i, __mmask8, __m128i, __m128i, 1)
     709  test_4 (_mm512_mask_shldi_epi16, __m512i, __m512i, __mmask32, __m512i, __m512i, 1)
     710  test_4 (_mm512_mask_shldi_epi32, __m512i, __m512i, __mmask16, __m512i, __m512i, 1)
     711  test_4 (_mm512_mask_shldi_epi64, __m512i, __m512i, __mmask8, __m512i, __m512i, 1)
     712  test_4 (_mm256_mask_shldi_epi16, __m256i, __m256i, __mmask16, __m256i, __m256i, 1)
     713  test_4 (_mm256_mask_shldi_epi32, __m256i, __m256i, __mmask8, __m256i, __m256i, 1)
     714  test_4 (_mm256_mask_shldi_epi64, __m256i, __m256i, __mmask8, __m256i, __m256i, 1)
     715  test_4 (_mm_mask_shldi_epi16, __m128i, __m128i, __mmask8, __m128i, __m128i, 1)
     716  test_4 (_mm_mask_shldi_epi32, __m128i, __m128i, __mmask8, __m128i, __m128i, 1)
     717  test_4 (_mm_mask_shldi_epi64, __m128i, __m128i, __mmask8, __m128i, __m128i, 1)
     718  test_4v (_mm512_mask_i32scatter_epi32, void *, __mmask16, __m512i, __m512i, 1)
     719  test_4v (_mm512_mask_i32scatter_epi64, void *, __mmask8, __m256i, __m512i, 1)
     720  test_4v (_mm512_mask_i32scatter_pd, void *, __mmask8, __m256i, __m512d, 1)
     721  test_4v (_mm512_mask_i32scatter_ps, void *, __mmask16, __m512i, __m512, 1)
     722  test_4v (_mm512_mask_i64scatter_epi32, void *, __mmask8, __m512i, __m256i, 1)
     723  test_4v (_mm512_mask_i64scatter_epi64, void *, __mmask8, __m512i, __m512i, 1)
     724  test_4v (_mm512_mask_i64scatter_pd, void *, __mmask8, __m512i, __m512d, 1)
     725  test_4v (_mm512_mask_i64scatter_ps, void *, __mmask8, __m512i, __m256, 1)
     726  test_4x (_mm512_mask_fixupimm_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512i, 1, 8)
     727  test_4x (_mm512_mask_fixupimm_round_ps, __m512, __m512, __mmask16, __m512, __m512i, 1, 8)
     728  test_4x (_mm512_maskz_fixupimm_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512i, 1, 8)
     729  test_4x (_mm512_maskz_fixupimm_round_ps, __m512, __mmask16, __m512, __m512, __m512i, 1, 8)
     730  test_4x (_mm_mask_fixupimm_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128i, 1, 8)
     731  test_4x (_mm_mask_fixupimm_round_ss, __m128, __m128, __mmask8, __m128, __m128i, 1, 8)
     732  test_4x (_mm_maskz_fixupimm_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128i, 1, 8)
     733  test_4x (_mm_maskz_fixupimm_round_ss, __m128, __mmask8, __m128, __m128, __m128i, 1, 8)
     734  
     735  /* avx512pfintrin.h */
     736  test_2vx (_mm512_prefetch_i32gather_ps, __m512i, void const *, 1, _MM_HINT_T0)
     737  test_2vx (_mm512_prefetch_i32scatter_ps, void const *, __m512i, 1, _MM_HINT_T0)
     738  test_2vx (_mm512_prefetch_i64gather_ps, __m512i, void const *, 1, _MM_HINT_T0)
     739  test_2vx (_mm512_prefetch_i64scatter_ps, void const *, __m512i, 1, _MM_HINT_T0)
     740  test_2vx (_mm512_prefetch_i32gather_pd, __m256i, void const *, 1, _MM_HINT_T0)
     741  test_2vx (_mm512_prefetch_i32scatter_pd, void const *, __m256i, 1, _MM_HINT_T0)
     742  test_2vx (_mm512_prefetch_i64gather_pd, __m512i, long long *, 1, _MM_HINT_T0)
     743  test_2vx (_mm512_prefetch_i64scatter_pd, void const *, __m512i, 1, _MM_HINT_T0)
     744  test_3vx (_mm512_mask_prefetch_i32gather_ps, __m512i, __mmask16, void const *, 1, _MM_HINT_T0)
     745  test_3vx (_mm512_mask_prefetch_i32scatter_ps, void const *, __mmask16, __m512i, 1, _MM_HINT_T0)
     746  test_3vx (_mm512_mask_prefetch_i64gather_ps, __m512i, __mmask8, void const *, 1, _MM_HINT_T0)
     747  test_3vx (_mm512_mask_prefetch_i64scatter_ps, void const *, __mmask8, __m512i, 1, _MM_HINT_T0)
     748  test_3vx (_mm512_mask_prefetch_i32gather_pd, __m256i, __mmask8, void const *, 1, _MM_HINT_T0)
     749  test_3vx (_mm512_mask_prefetch_i32scatter_pd, void const *, __mmask8, __m256i, 1, _MM_HINT_T0)
     750  test_3vx (_mm512_mask_prefetch_i64gather_pd, __m512i, __mmask8, long long *, 1, _MM_HINT_T0)
     751  test_3vx (_mm512_mask_prefetch_i64scatter_pd, void const *, __mmask8, __m512i, 1, _MM_HINT_T0)
     752  
     753  /* avx512erintrin.h */
     754  test_1 (_mm512_exp2a23_round_pd, __m512d, __m512d, 8)
     755  test_1 (_mm512_exp2a23_round_ps, __m512, __m512, 8)
     756  test_1 (_mm512_rcp28_round_pd, __m512d, __m512d, 8)
     757  test_1 (_mm512_rcp28_round_ps, __m512, __m512, 8)
     758  test_1 (_mm512_rsqrt28_round_pd, __m512d, __m512d, 8)
     759  test_1 (_mm512_rsqrt28_round_ps, __m512, __m512, 8)
     760  test_2 (_mm512_maskz_exp2a23_round_pd, __m512d, __mmask8, __m512d, 8)
     761  test_2 (_mm512_maskz_exp2a23_round_ps, __m512, __mmask16, __m512, 8)
     762  test_2 (_mm512_maskz_rcp28_round_pd, __m512d, __mmask8, __m512d, 8)
     763  test_2 (_mm512_maskz_rcp28_round_ps, __m512, __mmask16, __m512, 8)
     764  test_2 (_mm512_maskz_rsqrt28_round_pd, __m512d, __mmask8, __m512d, 8)
     765  test_2 (_mm512_maskz_rsqrt28_round_ps, __m512, __mmask16, __m512, 8)
     766  test_3 (_mm512_mask_exp2a23_round_pd, __m512d, __m512d, __mmask8, __m512d, 8)
     767  test_3 (_mm512_mask_exp2a23_round_ps, __m512, __m512, __mmask16, __m512, 8)
     768  test_3 (_mm512_mask_rcp28_round_pd, __m512d, __m512d, __mmask8, __m512d, 8)
     769  test_3 (_mm512_mask_rcp28_round_ps, __m512, __m512, __mmask16, __m512, 8)
     770  test_3 (_mm512_mask_rsqrt28_round_pd, __m512d, __m512d, __mmask8, __m512d, 8)
     771  test_3 (_mm512_mask_rsqrt28_round_ps, __m512, __m512, __mmask16, __m512, 8)
     772  test_2 (_mm_rcp28_round_sd, __m128d, __m128d, __m128d, 8)
     773  test_2 (_mm_rcp28_round_ss, __m128, __m128, __m128, 8)
     774  test_2 (_mm_rsqrt28_round_sd, __m128d, __m128d, __m128d, 8)
     775  test_2 (_mm_rsqrt28_round_ss, __m128, __m128, __m128, 8)
     776  
     777  /* avx512fp16intrin.h */
     778  test_1 (_mm512_sqrt_round_ph, __m512h, __m512h, 8)
     779  test_1 (_mm_reduce_ph, __m128h, __m128h, 123)
     780  test_1 (_mm256_reduce_ph, __m256h, __m256h, 123)
     781  test_1 (_mm512_reduce_ph, __m512h, __m512h, 123)
     782  test_1 (_mm_roundscale_ph, __m128h, __m128h, 123)
     783  test_1 (_mm256_roundscale_ph, __m256h, __m256h, 123)
     784  test_1 (_mm512_roundscale_ph, __m512h, __m512h, 123)
     785  test_1 (_mm512_getexp_round_ph, __m512h, __m512h, 8)
     786  test_1 (_mm512_cvt_roundph_epi16, __m512i, __m512h, 8)
     787  test_1 (_mm512_cvt_roundph_epu16, __m512i, __m512h, 8)
     788  test_1 (_mm512_cvtt_roundph_epi16, __m512i, __m512h, 8)
     789  test_1 (_mm512_cvtt_roundph_epu16, __m512i, __m512h, 8)
     790  test_1 (_mm512_cvt_roundph_epi32, __m512i, __m256h, 8)
     791  test_1 (_mm512_cvt_roundph_epu32, __m512i, __m256h, 8)
     792  test_1 (_mm512_cvt_roundph_epi64, __m512i, __m128h, 8)
     793  test_1 (_mm512_cvt_roundph_epu64, __m512i, __m128h, 8)
     794  test_1 (_mm512_cvtt_roundph_epi32, __m512i, __m256h, 8)
     795  test_1 (_mm512_cvtt_roundph_epu32, __m512i, __m256h, 8)
     796  test_1 (_mm512_cvtt_roundph_epi64, __m512i, __m128h, 8)
     797  test_1 (_mm512_cvt_roundph_pd, __m512d, __m128h, 8)
     798  test_1 (_mm512_cvtx_roundph_ps, __m512, __m256h, 8)
     799  test_1 (_mm512_cvtt_roundph_epu64, __m512i, __m128h, 8)
     800  test_1 (_mm512_cvt_roundepi16_ph, __m512h, __m512i, 8)
     801  test_1 (_mm512_cvt_roundepu16_ph, __m512h, __m512i, 8)
     802  test_1 (_mm512_cvt_roundepi32_ph, __m256h, __m512i, 8)
     803  test_1 (_mm512_cvt_roundepu32_ph, __m256h, __m512i, 8)
     804  test_1 (_mm512_cvt_roundepi64_ph, __m128h, __m512i, 8)
     805  test_1 (_mm512_cvt_roundepu64_ph, __m128h, __m512i, 8)
     806  test_1 (_mm512_cvtx_roundps_ph, __m256h, __m512, 8)
     807  test_1 (_mm512_cvt_roundpd_ph, __m128h, __m512d, 8)
     808  test_1 (_mm_cvt_roundsh_i32, int, __m128h, 8)
     809  test_1 (_mm_cvt_roundsh_u32, unsigned, __m128h, 8)
     810  test_1 (_mm_cvtt_roundsh_i32, int, __m128h, 8)
     811  test_1 (_mm_cvtt_roundsh_u32, unsigned, __m128h, 8)
     812  #ifdef __x86_64__
     813  test_1 (_mm_cvt_roundsh_i64, long long, __m128h, 8)
     814  test_1 (_mm_cvt_roundsh_u64, unsigned long long, __m128h, 8)
     815  test_1 (_mm_cvtt_roundsh_i64, long long, __m128h, 8)
     816  test_1 (_mm_cvtt_roundsh_u64, unsigned long long, __m128h, 8)
     817  test_2 (_mm_cvt_roundi64_sh, __m128h, __m128h, long long, 8)
     818  test_2 (_mm_cvt_roundu64_sh, __m128h, __m128h, unsigned long long, 8)
     819  #endif
     820  test_1x (_mm512_reduce_round_ph, __m512h, __m512h, 123, 8)
     821  test_1x (_mm512_roundscale_round_ph, __m512h, __m512h, 123, 8)
     822  test_1x (_mm512_getmant_ph, __m512h, __m512h, 1, 1)
     823  test_1y (_mm512_getmant_round_ph, __m512h, __m512h, 1, 1, 8)
     824  test_2 (_mm512_add_round_ph, __m512h, __m512h, __m512h, 8)
     825  test_2 (_mm512_sub_round_ph, __m512h, __m512h, __m512h, 8)
     826  test_2 (_mm512_mul_round_ph, __m512h, __m512h, __m512h, 8)
     827  test_2 (_mm512_div_round_ph, __m512h, __m512h, __m512h, 8)
     828  test_2 (_mm_add_round_sh, __m128h, __m128h, __m128h, 8)
     829  test_2 (_mm_sub_round_sh, __m128h, __m128h, __m128h, 8)
     830  test_2 (_mm_mul_round_sh, __m128h, __m128h, __m128h, 8)
     831  test_2 (_mm_div_round_sh, __m128h, __m128h, __m128h, 8)
     832  test_2 (_mm512_max_round_ph, __m512h, __m512h, __m512h, 8)
     833  test_2 (_mm512_min_round_ph, __m512h, __m512h, __m512h, 8)
     834  test_2 (_mm_max_round_sh, __m128h, __m128h, __m128h, 8)
     835  test_2 (_mm_min_round_sh, __m128h, __m128h, __m128h, 8)
     836  test_2 (_mm512_cmp_ph_mask, __mmask32, __m512h, __m512h, 1)
     837  test_2 (_mm_comi_sh, int, __m128h, __m128h, 1)
     838  test_2 (_mm512_maskz_sqrt_round_ph, __m512h, __mmask32, __m512h, 8)
     839  test_2 (_mm_sqrt_round_sh, __m128h, __m128h, __m128h, 8)
     840  test_2 (_mm512_scalef_round_ph, __m512h, __m512h, __m512h, 8)
     841  test_2 (_mm_maskz_reduce_ph, __m128h, __mmask8, __m128h, 123)
     842  test_2 (_mm256_maskz_reduce_ph, __m256h, __mmask16, __m256h, 123)
     843  test_2 (_mm512_maskz_reduce_ph, __m512h, __mmask32, __m512h, 123)
     844  test_2 (_mm_reduce_sh, __m128h, __m128h, __m128h, 123)
     845  test_2 (_mm_maskz_roundscale_ph, __m128h, __mmask8, __m128h, 123)
     846  test_2 (_mm256_maskz_roundscale_ph, __m256h, __mmask16, __m256h, 123)
     847  test_2 (_mm512_maskz_roundscale_ph, __m512h, __mmask32, __m512h, 123)
     848  test_2 (_mm_roundscale_sh, __m128h, __m128h, __m128h, 123)
     849  test_2 (_mm512_maskz_getexp_round_ph, __m512h, __mmask32, __m512h, 8)
     850  test_2 (_mm_getexp_round_sh, __m128h, __m128h, __m128h, 8)
     851  test_2 (_mm512_maskz_cvt_roundph_epi16, __m512i, __mmask32, __m512h, 8)
     852  test_2 (_mm512_maskz_cvt_roundph_epu16, __m512i, __mmask32, __m512h, 8)
     853  test_2 (_mm512_maskz_cvtt_roundph_epi16, __m512i, __mmask32, __m512h, 8)
     854  test_2 (_mm512_maskz_cvtt_roundph_epu16, __m512i, __mmask32, __m512h, 8)
     855  test_2 (_mm512_maskz_cvt_roundph_epi32, __m512i, __mmask16, __m256h, 8)
     856  test_2 (_mm512_maskz_cvt_roundph_epu32, __m512i, __mmask16, __m256h, 8)
     857  test_2 (_mm512_maskz_cvt_roundph_epi64, __m512i, __mmask8, __m128h, 8)
     858  test_2 (_mm512_maskz_cvt_roundph_epu64, __m512i, __mmask8, __m128h, 8)
     859  test_2 (_mm512_maskz_cvtt_roundph_epi32, __m512i, __mmask16, __m256h, 8)
     860  test_2 (_mm512_maskz_cvtt_roundph_epu32, __m512i, __mmask16, __m256h, 8)
     861  test_2 (_mm512_maskz_cvtt_roundph_epi64, __m512i, __mmask8, __m128h, 8)
     862  test_2 (_mm512_maskz_cvt_roundph_pd, __m512d, __mmask8, __m128h, 8)
     863  test_2 (_mm512_maskz_cvtx_roundph_ps, __m512, __mmask16, __m256h, 8)
     864  test_2 (_mm512_maskz_cvtt_roundph_epu64, __m512i, __mmask8, __m128h, 8)
     865  test_2 (_mm512_maskz_cvt_roundepi16_ph, __m512h, __mmask32, __m512i, 8)
     866  test_2 (_mm512_maskz_cvt_roundepu16_ph, __m512h, __mmask32, __m512i, 8)
     867  test_2 (_mm512_maskz_cvt_roundepi32_ph, __m256h, __mmask16, __m512i, 8)
     868  test_2 (_mm512_maskz_cvt_roundepu32_ph, __m256h, __mmask16, __m512i, 8)
     869  test_2 (_mm512_maskz_cvt_roundepi64_ph, __m128h, __mmask8, __m512i, 8)
     870  test_2 (_mm512_maskz_cvt_roundepu64_ph, __m128h, __mmask8, __m512i, 8)
     871  test_2 (_mm512_maskz_cvtx_roundps_ph, __m256h, __mmask16, __m512, 8)
     872  test_2 (_mm512_maskz_cvt_roundpd_ph, __m128h, __mmask8, __m512d, 8)
     873  test_2 (_mm_cvt_roundi32_sh, __m128h, __m128h, int, 8)
     874  test_2 (_mm_cvt_roundu32_sh, __m128h, __m128h, unsigned, 8)
     875  test_2 (_mm_cvt_roundsh_ss, __m128, __m128, __m128h, 8)
     876  test_2 (_mm_cvt_roundsh_sd, __m128d, __m128d, __m128h, 8)
     877  test_2 (_mm_cvt_roundss_sh, __m128h, __m128h, __m128, 8)
     878  test_2 (_mm_cvt_roundsd_sh, __m128h, __m128h, __m128d, 8)
     879  test_2 (_mm512_fmul_round_pch, __m512h, __m512h, __m512h, 8)
     880  test_2 (_mm512_fcmul_round_pch, __m512h, __m512h, __m512h, 8)
     881  test_2 (_mm_fmul_round_sch, __m128h, __m128h, __m128h, 8)
     882  test_2 (_mm_fcmul_round_sch, __m128h, __m128h, __m128h, 8)
     883  test_2x (_mm512_cmp_round_ph_mask, __mmask32, __m512h, __m512h, 1, 8)
     884  test_2x (_mm_cmp_round_sh_mask, __mmask8, __m128h, __m128h, 1, 8)
     885  test_2x (_mm_comi_round_sh, int, __m128h, __m128h, 1, 8)
     886  test_2x (_mm512_maskz_reduce_round_ph, __m512h, __mmask32, __m512h, 123, 8)
     887  test_2x (_mm512_maskz_roundscale_round_ph, __m512h, __mmask32, __m512h, 123, 8)
     888  test_2x (_mm_reduce_round_sh, __m128h, __m128h, __m128h, 123, 8)
     889  test_2x (_mm_roundscale_round_sh, __m128h, __m128h, __m128h, 123, 8)
     890  test_2x (_mm512_maskz_getmant_ph, __m512h, __mmask32, __m512h, 1, 1)
     891  test_2x (_mm_getmant_sh, __m128h, __m128h, __m128h, 1, 1)
     892  test_2y (_mm512_maskz_getmant_round_ph, __m512h, __mmask32, __m512h, 1, 1, 8)
     893  test_2y (_mm_getmant_round_sh, __m128h, __m128h, __m128h, 1, 1, 8)
     894  test_3 (_mm512_maskz_add_round_ph, __m512h, __mmask32, __m512h, __m512h, 8)
     895  test_3 (_mm512_maskz_sub_round_ph, __m512h, __mmask32, __m512h, __m512h, 8)
     896  test_3 (_mm512_maskz_mul_round_ph, __m512h, __mmask32, __m512h, __m512h, 8)
     897  test_3 (_mm512_maskz_div_round_ph, __m512h, __mmask32, __m512h, __m512h, 8)
     898  test_3 (_mm_maskz_add_round_sh, __m128h, __mmask8, __m128h, __m128h, 8)
     899  test_3 (_mm_maskz_sub_round_sh, __m128h, __mmask8, __m128h, __m128h, 8)
     900  test_3 (_mm_maskz_mul_round_sh, __m128h, __mmask8, __m128h, __m128h, 8)
     901  test_3 (_mm_maskz_div_round_sh, __m128h, __mmask8, __m128h, __m128h, 8)
     902  test_3 (_mm512_maskz_max_round_ph, __m512h, __mmask32, __m512h, __m512h, 8)
     903  test_3 (_mm512_maskz_min_round_ph, __m512h, __mmask32, __m512h, __m512h, 8)
     904  test_3 (_mm_maskz_max_round_sh, __m128h, __mmask8, __m128h, __m128h, 8)
     905  test_3 (_mm_maskz_min_round_sh, __m128h, __mmask8, __m128h, __m128h, 8)
     906  test_3 (_mm512_mask_cmp_ph_mask, __mmask32, __mmask32, __m512h, __m512h, 1)
     907  test_3 (_mm512_mask_sqrt_round_ph, __m512h, __m512h, __mmask32, __m512h, 8)
     908  test_3 (_mm_maskz_sqrt_round_sh, __m128h, __mmask8, __m128h, __m128h, 8)
     909  test_3 (_mm512_maskz_scalef_round_ph, __m512h, __mmask32, __m512h, __m512h, 8)
     910  test_3 (_mm_mask_reduce_ph, __m128h, __m128h, __mmask8, __m128h, 123)
     911  test_3 (_mm256_mask_reduce_ph, __m256h, __m256h, __mmask16, __m256h, 123)
     912  test_3 (_mm512_mask_reduce_ph, __m512h, __m512h, __mmask32, __m512h, 123)
     913  test_3 (_mm_maskz_reduce_sh, __m128h, __mmask8, __m128h, __m128h, 123)
     914  test_3 (_mm_mask_roundscale_ph, __m128h, __m128h, __mmask8, __m128h, 123)
     915  test_3 (_mm256_mask_roundscale_ph, __m256h, __m256h, __mmask16, __m256h, 123)
     916  test_3 (_mm512_mask_roundscale_ph, __m512h, __m512h, __mmask32, __m512h, 123)
     917  test_3 (_mm_maskz_roundscale_sh, __m128h, __mmask8, __m128h, __m128h, 123)
     918  test_3 (_mm_maskz_getexp_round_sh, __m128h, __mmask8, __m128h, __m128h, 8)
     919  test_3 (_mm512_mask_getexp_round_ph, __m512h, __m512h, __mmask32, __m512h, 8)
     920  test_3 (_mm512_mask_cvt_roundph_epi16, __m512i, __m512i, __mmask32, __m512h, 8)
     921  test_3 (_mm512_mask_cvt_roundph_epu16, __m512i, __m512i, __mmask32, __m512h, 8)
     922  test_3 (_mm512_mask_cvtt_roundph_epi16, __m512i, __m512i, __mmask32, __m512h, 8)
     923  test_3 (_mm512_mask_cvtt_roundph_epu16, __m512i, __m512i, __mmask32, __m512h, 8)
     924  test_3 (_mm512_mask_cvt_roundph_epi32, __m512i, __m512i, __mmask16, __m256h, 8)
     925  test_3 (_mm512_mask_cvt_roundph_epu32, __m512i, __m512i, __mmask16, __m256h, 8)
     926  test_3 (_mm512_mask_cvt_roundph_epi64, __m512i, __m512i, __mmask8, __m128h, 8)
     927  test_3 (_mm512_mask_cvt_roundph_epu64, __m512i, __m512i, __mmask8, __m128h, 8)
     928  test_3 (_mm512_mask_cvtt_roundph_epi32, __m512i, __m512i, __mmask16, __m256h, 8)
     929  test_3 (_mm512_mask_cvtt_roundph_epu32, __m512i, __m512i, __mmask16, __m256h, 8)
     930  test_3 (_mm512_mask_cvtt_roundph_epi64, __m512i, __m512i, __mmask8, __m128h, 8)
     931  test_3 (_mm512_mask_cvt_roundph_pd, __m512d, __m512d, __mmask8, __m128h, 8)
     932  test_3 (_mm512_mask_cvtx_roundph_ps, __m512, __m512, __mmask16, __m256h, 8)
     933  test_3 (_mm512_mask_cvtt_roundph_epu64, __m512i, __m512i, __mmask8, __m128h, 8)
     934  test_3 (_mm512_mask_cvt_roundepi16_ph, __m512h, __m512h, __mmask32, __m512i, 8)
     935  test_3 (_mm512_mask_cvt_roundepu16_ph, __m512h, __m512h, __mmask32, __m512i, 8)
     936  test_3 (_mm512_mask_cvt_roundepi32_ph, __m256h, __m256h, __mmask16, __m512i, 8)
     937  test_3 (_mm512_mask_cvt_roundepu32_ph, __m256h, __m256h, __mmask16, __m512i, 8)
     938  test_3 (_mm512_mask_cvt_roundepi64_ph, __m128h, __m128h, __mmask8, __m512i, 8)
     939  test_3 (_mm512_mask_cvt_roundepu64_ph, __m128h, __m128h, __mmask8, __m512i, 8)
     940  test_3 (_mm512_mask_cvtx_roundps_ph, __m256h, __m256h, __mmask16, __m512, 8)
     941  test_3 (_mm512_mask_cvt_roundpd_ph, __m128h, __m128h, __mmask8, __m512d, 8)
     942  test_3 (_mm_maskz_cvt_roundsh_ss, __m128, __mmask8, __m128, __m128h, 8)
     943  test_3 (_mm_maskz_cvt_roundsh_sd, __m128d, __mmask8, __m128d, __m128h, 8)
     944  test_3 (_mm_maskz_cvt_roundss_sh, __m128h, __mmask8, __m128h, __m128, 8)
     945  test_3 (_mm_maskz_cvt_roundsd_sh, __m128h, __mmask8, __m128h, __m128d, 8)
     946  test_3 (_mm512_fmaddsub_round_ph, __m512h, __m512h, __m512h, __m512h, 9)
     947  test_3 (_mm512_fmsubadd_round_ph, __m512h, __m512h, __m512h, __m512h, 9)
     948  test_3 (_mm512_fmadd_round_ph, __m512h, __m512h, __m512h, __m512h, 9)
     949  test_3 (_mm512_fnmadd_round_ph, __m512h, __m512h, __m512h, __m512h, 9)
     950  test_3 (_mm512_fmsub_round_ph, __m512h, __m512h, __m512h, __m512h, 9)
     951  test_3 (_mm512_fnmsub_round_ph, __m512h, __m512h, __m512h, __m512h, 9)
     952  test_3 (_mm_fmadd_round_sh, __m128h, __m128h, __m128h, __m128h, 9)
     953  test_3 (_mm_fnmadd_round_sh, __m128h, __m128h, __m128h, __m128h, 9)
     954  test_3 (_mm_fmsub_round_sh, __m128h, __m128h, __m128h, __m128h, 9)
     955  test_3 (_mm_fnmsub_round_sh, __m128h, __m128h, __m128h, __m128h, 9)
     956  test_3 (_mm512_fmadd_round_pch, __m512h, __m512h, __m512h, __m512h, 8)
     957  test_3 (_mm512_fcmadd_round_pch, __m512h, __m512h, __m512h, __m512h, 8)
     958  test_3 (_mm512_maskz_fmul_round_pch, __m512h, __mmask16, __m512h, __m512h, 8)
     959  test_3 (_mm_maskz_fmul_round_sch, __m128h, __mmask8, __m128h, __m128h, 8)
     960  test_3 (_mm_maskz_fcmul_round_sch, __m128h, __mmask8, __m128h, __m128h, 8)
     961  test_3 (_mm_fmadd_round_sch, __m128h, __m128h, __m128h, __m128h, 8)
     962  test_3 (_mm_fcmadd_round_sch, __m128h, __m128h, __m128h, __m128h, 8)
     963  test_3 (_mm512_maskz_fcmul_round_pch, __m512h, __mmask16, __m512h, __m512h, 8)
     964  test_3x (_mm512_mask_cmp_round_ph_mask, __mmask32, __mmask32, __m512h, __m512h, 1, 8)
     965  test_3x (_mm_mask_cmp_round_sh_mask, __mmask8, __mmask8, __m128h, __m128h, 1, 8)
     966  test_3x (_mm512_mask_reduce_round_ph, __m512h, __m512h, __mmask32, __m512h, 123, 8)
     967  test_3x (_mm512_mask_roundscale_round_ph, __m512h, __m512h, __mmask32, __m512h, 123, 8)
     968  test_3x (_mm_maskz_reduce_round_sh, __m128h, __mmask8, __m128h, __m128h, 123, 8)
     969  test_3x (_mm_maskz_roundscale_round_sh, __m128h, __mmask8, __m128h, __m128h, 123, 8)
     970  test_3x (_mm512_mask_getmant_ph, __m512h, __m512h, __mmask32, __m512h, 1, 1)
     971  test_3x (_mm_maskz_getmant_sh, __m128h, __mmask8, __m128h, __m128h, 1, 1)
     972  test_3y (_mm_maskz_getmant_round_sh, __m128h, __mmask8, __m128h, __m128h, 1, 1, 8)
     973  test_3y (_mm512_mask_getmant_round_ph, __m512h, __m512h, __mmask32, __m512h, 1, 1, 8)
     974  test_4 (_mm512_mask_add_round_ph, __m512h, __m512h, __mmask32, __m512h, __m512h, 8)
     975  test_4 (_mm512_mask_sub_round_ph, __m512h, __m512h, __mmask32, __m512h, __m512h, 8)
     976  test_4 (_mm512_mask_mul_round_ph, __m512h, __m512h, __mmask32, __m512h, __m512h, 8)
     977  test_4 (_mm512_mask_div_round_ph, __m512h, __m512h, __mmask32, __m512h, __m512h, 8)
     978  test_4 (_mm_mask_add_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 8)
     979  test_4 (_mm_mask_sub_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 8)
     980  test_4 (_mm_mask_mul_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 8)
     981  test_4 (_mm_mask_div_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 8)
     982  test_4 (_mm512_mask_max_round_ph, __m512h, __m512h, __mmask32, __m512h, __m512h, 8)
     983  test_4 (_mm512_mask_min_round_ph, __m512h, __m512h, __mmask32, __m512h, __m512h, 8)
     984  test_4 (_mm_mask_max_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 8)
     985  test_4 (_mm_mask_min_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 8)
     986  test_4 (_mm_mask_sqrt_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 8)
     987  test_4 (_mm512_mask_scalef_round_ph, __m512h, __m512h, __mmask32, __m512h, __m512h, 8)
     988  test_4 (_mm_mask_reduce_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 123)
     989  test_4 (_mm_mask_roundscale_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 123)
     990  test_4 (_mm_mask_getexp_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 8)
     991  test_4 (_mm_mask_cvt_roundsh_ss, __m128, __m128, __mmask8, __m128, __m128h, 8)
     992  test_4 (_mm_mask_cvt_roundsh_sd, __m128d, __m128d, __mmask8, __m128d, __m128h, 8)
     993  test_4 (_mm_mask_cvt_roundss_sh, __m128h, __m128h, __mmask8, __m128h, __m128, 8)
     994  test_4 (_mm_mask_cvt_roundsd_sh, __m128h, __m128h, __mmask8, __m128h, __m128d, 8)
     995  test_4 (_mm512_mask_fmaddsub_round_ph, __m512h, __m512h, __mmask32, __m512h, __m512h, 9)
     996  test_4 (_mm512_mask3_fmaddsub_round_ph, __m512h, __m512h, __m512h, __m512h, __mmask32, 9)
     997  test_4 (_mm512_maskz_fmaddsub_round_ph, __m512h, __mmask32, __m512h, __m512h, __m512h, 9)
     998  test_4 (_mm512_mask3_fmsubadd_round_ph, __m512h, __m512h, __m512h, __m512h, __mmask32, 9)
     999  test_4 (_mm512_mask_fmsubadd_round_ph, __m512h, __m512h, __mmask32, __m512h, __m512h, 9)
    1000  test_4 (_mm512_maskz_fmsubadd_round_ph, __m512h, __mmask32, __m512h, __m512h, __m512h, 9)
    1001  test_4 (_mm512_mask_fmadd_round_ph, __m512h, __m512h, __mmask32, __m512h, __m512h, 9)
    1002  test_4 (_mm512_mask3_fmadd_round_ph, __m512h, __m512h, __m512h, __m512h, __mmask32, 9)
    1003  test_4 (_mm512_maskz_fmadd_round_ph, __m512h, __mmask32, __m512h, __m512h, __m512h, 9)
    1004  test_4 (_mm512_mask_fnmadd_round_ph, __m512h, __m512h, __mmask32, __m512h, __m512h, 9)
    1005  test_4 (_mm512_mask3_fnmadd_round_ph, __m512h, __m512h, __m512h, __m512h, __mmask32, 9)
    1006  test_4 (_mm512_maskz_fnmadd_round_ph, __m512h, __mmask32, __m512h, __m512h, __m512h, 9)
    1007  test_4 (_mm512_mask_fmsub_round_ph, __m512h, __m512h, __mmask32, __m512h, __m512h, 9)
    1008  test_4 (_mm512_mask3_fmsub_round_ph, __m512h, __m512h, __m512h, __m512h, __mmask32, 9)
    1009  test_4 (_mm512_maskz_fmsub_round_ph, __m512h, __mmask32, __m512h, __m512h, __m512h, 9)
    1010  test_4 (_mm512_mask_fnmsub_round_ph, __m512h, __m512h, __mmask32, __m512h, __m512h, 9)
    1011  test_4 (_mm512_mask3_fnmsub_round_ph, __m512h, __m512h, __m512h, __m512h, __mmask32, 9)
    1012  test_4 (_mm512_maskz_fnmsub_round_ph, __m512h, __mmask32, __m512h, __m512h, __m512h, 9)
    1013  test_4 (_mm_mask_fmadd_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 9)
    1014  test_4 (_mm_mask3_fmadd_round_sh, __m128h, __m128h, __m128h, __m128h, __mmask8, 9)
    1015  test_4 (_mm_maskz_fmadd_round_sh, __m128h, __mmask8, __m128h, __m128h, __m128h, 9)
    1016  test_4 (_mm_mask_fnmadd_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 9)
    1017  test_4 (_mm_mask3_fnmadd_round_sh, __m128h, __m128h, __m128h, __m128h, __mmask8, 9)
    1018  test_4 (_mm_maskz_fnmadd_round_sh, __m128h, __mmask8, __m128h, __m128h, __m128h, 9)
    1019  test_4 (_mm_mask_fmsub_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 9)
    1020  test_4 (_mm_mask3_fmsub_round_sh, __m128h, __m128h, __m128h, __m128h, __mmask8, 9)
    1021  test_4 (_mm_maskz_fmsub_round_sh, __m128h, __mmask8, __m128h, __m128h, __m128h, 9)
    1022  test_4 (_mm_mask_fnmsub_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 9)
    1023  test_4 (_mm_mask3_fnmsub_round_sh, __m128h, __m128h, __m128h, __m128h, __mmask8, 9)
    1024  test_4 (_mm_maskz_fnmsub_round_sh, __m128h, __mmask8, __m128h, __m128h, __m128h, 9)
    1025  test_4 (_mm512_mask_fmadd_round_pch, __m512h, __m512h, __mmask16, __m512h, __m512h, 8)
    1026  test_4 (_mm512_mask_fcmadd_round_pch, __m512h, __m512h, __mmask16, __m512h, __m512h, 8)
    1027  test_4 (_mm512_mask3_fmadd_round_pch, __m512h, __m512h, __m512h, __m512h, __mmask16, 8)
    1028  test_4 (_mm512_mask3_fcmadd_round_pch, __m512h, __m512h, __m512h, __m512h, __mmask16, 8)
    1029  test_4 (_mm512_maskz_fmadd_round_pch, __m512h, __mmask16, __m512h, __m512h, __m512h, 8)
    1030  test_4 (_mm512_maskz_fcmadd_round_pch, __m512h, __mmask16, __m512h, __m512h, __m512h, 8)
    1031  test_4 (_mm_mask_fmadd_round_sch, __m128h, __m128h, __mmask8, __m128h, __m128h, 8)
    1032  test_4 (_mm_mask_fcmadd_round_sch, __m128h, __m128h, __mmask8, __m128h, __m128h, 8)
    1033  test_4 (_mm_mask3_fmadd_round_sch, __m128h, __m128h, __m128h, __m128h, __mmask8, 8)
    1034  test_4 (_mm_mask3_fcmadd_round_sch, __m128h, __m128h, __m128h, __m128h, __mmask8, 8)
    1035  test_4 (_mm_maskz_fmadd_round_sch, __m128h, __mmask8, __m128h, __m128h, __m128h, 8)
    1036  test_4 (_mm_maskz_fcmadd_round_sch, __m128h, __mmask8, __m128h, __m128h, __m128h, 8)
    1037  test_4 (_mm512_mask_fmul_round_pch, __m512h, __m512h, __mmask16, __m512h, __m512h, 8)
    1038  test_4 (_mm512_mask_fcmul_round_pch, __m512h, __m512h, __mmask16, __m512h, __m512h, 8)
    1039  test_4 (_mm_mask_fmul_round_sch, __m128h, __m128h, __mmask8, __m128h, __m128h, 8)
    1040  test_4 (_mm_mask_fcmul_round_sch, __m128h, __m128h, __mmask8, __m128h, __m128h, 8)
    1041  test_4x (_mm_mask_reduce_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 123, 8)
    1042  test_4x (_mm_mask_roundscale_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 123, 8)
    1043  test_4x (_mm_mask_getmant_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 1, 1)
    1044  test_4y (_mm_mask_getmant_round_sh, __m128h, __m128h, __mmask8, __m128h, __m128h, 1, 1, 8)
    1045  
    1046  /* avx512fp16vlintrin.h */
    1047  test_2 (_mm_cmp_ph_mask, __mmask8, __m128h, __m128h, 1)
    1048  test_2 (_mm256_cmp_ph_mask, __mmask16, __m256h, __m256h, 1)
    1049  test_3 (_mm_mask_cmp_ph_mask, __mmask8, __mmask8, __m128h, __m128h, 1)
    1050  test_3 (_mm256_mask_cmp_ph_mask, __mmask16, __mmask16, __m256h, __m256h, 1)
    1051  
    1052  /* shaintrin.h */
    1053  test_2 (_mm_sha1rnds4_epu32, __m128i, __m128i, __m128i, 1)
    1054  
    1055  /* gfniintrin.h */
    1056  test_2 (_mm_gf2p8affineinv_epi64_epi8, __m128i, __m128i, __m128i, 1)
    1057  test_2 (_mm256_gf2p8affineinv_epi64_epi8, __m256i, __m256i, __m256i, 1)
    1058  test_2 (_mm512_gf2p8affineinv_epi64_epi8, __m512i, __m512i, __m512i, 1)
    1059  
    1060  /* wmmintrin.h (AES/PCLMUL).  */
    1061  #ifdef DIFFERENT_PRAGMAS
    1062  #pragma GCC target ("aes,pclmul")
    1063  #endif
    1064  #include <wmmintrin.h>
    1065  test_1 (_mm_aeskeygenassist_si128, __m128i, __m128i, 1)
    1066  test_2 (_mm_clmulepi64_si128, __m128i, __m128i, __m128i, 1)
    1067  
    1068  /* popcnintrin.h (POPCNT).  */
    1069  #ifdef DIFFERENT_PRAGMAS
    1070  #pragma GCC target ("popcnt")
    1071  #endif
    1072  #include <popcntintrin.h>
    1073  
    1074  /* x86intrin.h (FMA4/XOP/LWP/BMI/BMI2/TBM/LZCNT/FMA). */
    1075  #ifdef DIFFERENT_PRAGMAS
    1076  #pragma GCC target ("fma4,xop,lwp,bmi,bmi2,tbm,lzcnt,fma,rdseed,prfchw,adx,fxsr,xsaveopt,xsavec,xsaves,clflushopt,clwb,pku,sgx,rdpid")
    1077  #endif
    1078  #include <x86intrin.h>
    1079  /* xopintrin.h */
    1080  test_1 ( _mm_roti_epi8, __m128i, __m128i, 1)
    1081  test_1 ( _mm_roti_epi16, __m128i, __m128i, 1)
    1082  test_1 ( _mm_roti_epi32, __m128i, __m128i, 1)
    1083  test_1 ( _mm_roti_epi64, __m128i, __m128i, 1)
    1084  test_3 (_mm_permute2_pd, __m128d, __m128d, __m128d, __m128d, 1)
    1085  test_3 (_mm256_permute2_pd, __m256d, __m256d, __m256d, __m256d, 1)
    1086  test_3 (_mm_permute2_ps, __m128, __m128, __m128, __m128, 1)
    1087  test_3 (_mm256_permute2_ps, __m256, __m256, __m256, __m256, 1)
    1088  
    1089  /* lwpintrin.h */
    1090  test_2 ( __lwpval32, void, unsigned int, unsigned int, 1)
    1091  test_2 ( __lwpins32, unsigned char, unsigned int, unsigned int, 1)
    1092  #ifdef __x86_64__
    1093  test_2 ( __lwpval64, void, unsigned long long, unsigned int, 1)
    1094  test_2 ( __lwpins64, unsigned char, unsigned long long, unsigned int, 1)
    1095  #endif
    1096  
    1097  /* tbmintrin.h */
    1098  test_1 ( __bextri_u32, unsigned int, unsigned int, 1)
    1099  #ifdef __x86_64__
    1100  test_1 ( __bextri_u64, unsigned long long, unsigned long long, 1)
    1101  #endif