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 and mm_malloc.h 12 that reference the proper builtin functions. 13 14 Defining away "extern" and "__inline" results in all of them being 15 compiled as proper functions. */ 16 17#define extern 18#define __inline 19 20#define _CONCAT(x,y) x ## y 21 22#define test_0(func, type, imm) \ 23 type _CONCAT(_,func) (int const I) \ 24 { return func (imm); } 25 26#define test_1(func, type, op1_type, imm) \ 27 type _CONCAT(_,func) (op1_type A, int const I) \ 28 { return func (A, imm); } 29 30#define test_1x(func, type, op1_type, imm1, imm2) \ 31 type _CONCAT(_,func) (op1_type A, int const I, int const L) \ 32 { return func (A, imm1, imm2); } 33 34#define test_1y(func, type, op1_type, imm1, imm2, imm3) \ 35 type _CONCAT(_,func) (op1_type A, int const I, int const L, int const R)\ 36 { return func (A, imm1, imm2, imm3); } 37 38#define test_2(func, type, op1_type, op2_type, imm) \ 39 type _CONCAT(_,func) (op1_type A, op2_type B, int const I) \ 40 { return func (A, B, imm); } 41 42#define test_2x(func, type, op1_type, op2_type, imm1, imm2) \ 43 type _CONCAT(_,func) (op1_type A, op2_type B, int const I, int const L) \ 44 { return func (A, B, imm1, imm2); } 45 46#define test_2y(func, type, op1_type, op2_type, imm1, imm2, imm3) \ 47 type _CONCAT(_,func) (op1_type A, op2_type B, int const I, int const L,\ 48 int const R) \ 49 { return func (A, B, imm1, imm2, imm3); } 50 51#define test_2vx(func, op1_type, op2_type, imm1, imm2) \ 52 _CONCAT(_,func) (op1_type A, op2_type B, int const I, int const L) \ 53 { func (A, B, imm1, imm2); } 54 55#define test_3(func, type, op1_type, op2_type, op3_type, imm) \ 56 type _CONCAT(_,func) (op1_type A, op2_type B, \ 57 op3_type C, int const I) \ 58 { return func (A, B, C, imm); } 59 60#define test_3x(func, type, op1_type, op2_type, op3_type, imm1, imm2) \ 61 type _CONCAT(_,func) (op1_type A, op2_type B, \ 62 op3_type C, int const I, int const L) \ 63 { return func (A, B, C, imm1, imm2); } 64 65#define test_3y(func, type, op1_type, op2_type, op3_type, imm1, imm2, imm3) \ 66 type _CONCAT(_,func) (op1_type A, op2_type B, \ 67 op3_type C, int const I, int const L, int const R) \ 68 { return func (A, B, C, imm1, imm2, imm3); } 69 70#define test_3v(func, op1_type, op2_type, op3_type, imm) \ 71 int _CONCAT(_,func) (op1_type A, op2_type B, \ 72 op3_type C, int const I) \ 73 { func (A, B, C, imm); } 74 75#define test_3vx(func, op1_type, op2_type, op3_type, imm1, imm2) \ 76 int _CONCAT(_,func) (op1_type A, op2_type B, \ 77 op3_type C, int const I, int const L) \ 78 { func (A, B, C, imm1, imm2); } 79 80#define test_4(func, type, op1_type, op2_type, op3_type, op4_type, imm) \ 81 type _CONCAT(_,func) (op1_type A, op2_type B, \ 82 op3_type C, op4_type D, int const I) \ 83 { return func (A, B, C, D, imm); } 84 85#define test_4x(func, type, op1_type, op2_type, op3_type, op4_type, imm1, imm2) \ 86 type _CONCAT(_,func) (op1_type A, op2_type B, \ 87 op3_type C, op4_type D, int const I, int const L) \ 88 { return func (A, B, C, D, imm1, imm2); } 89 90#define test_4y(func, type, op1_type, op2_type, op3_type, op4_type, imm1, imm2, imm3) \ 91 type _CONCAT(_,func) (op1_type A, op2_type B, op3_type C, \ 92 op4_type D, int const I, int const L, int const R) \ 93 { return func (A, B, C, D, imm1, imm2, imm3); } 94 95 96#define test_4v(func, op1_type, op2_type, op3_type, op4_type, imm) \ 97 int _CONCAT(_,func) (op1_type A, op2_type B, \ 98 op3_type C, op4_type D, int const I) \ 99 { func (A, B, C, D, imm); } 100 101 102#ifndef DIFFERENT_PRAGMAS 103#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,avx512ifma") 104#endif 105 106/* Following intrinsics require immediate arguments. They 107 are defined as macros for non-optimized compilations. */ 108 109/* mmintrin.h (MMX). */ 110#ifdef DIFFERENT_PRAGMAS 111#pragma GCC target ("mmx") 112#endif 113#include <mmintrin.h> 114 115/* mm3dnow.h (3DNOW). */ 116#ifdef DIFFERENT_PRAGMAS 117#pragma GCC target ("3dnow") 118#endif 119#include <mm3dnow.h> 120 121/* xmmintrin.h (SSE). */ 122#ifdef DIFFERENT_PRAGMAS 123#pragma GCC target ("sse") 124#endif 125#include <xmmintrin.h> 126test_2 (_mm_shuffle_ps, __m128, __m128, __m128, 1) 127test_1 (_mm_extract_pi16, int, __m64, 1) 128test_1 (_m_pextrw, int, __m64, 1) 129test_2 (_mm_insert_pi16, __m64, __m64, int, 1) 130test_2 (_m_pinsrw, __m64, __m64, int, 1) 131test_1 (_mm_shuffle_pi16, __m64, __m64, 1) 132test_1 (_m_pshufw, __m64, __m64, 1) 133test_1 (_mm_prefetch, void, void *, _MM_HINT_NTA) 134 135/* emmintrin.h (SSE2). */ 136#ifdef DIFFERENT_PRAGMAS 137#pragma GCC target ("sse2") 138#endif 139#include <emmintrin.h> 140test_2 (_mm_shuffle_pd, __m128d, __m128d, __m128d, 1) 141test_1 (_mm_bsrli_si128, __m128i, __m128i, 1) 142test_1 (_mm_bslli_si128, __m128i, __m128i, 1) 143test_1 (_mm_srli_si128, __m128i, __m128i, 1) 144test_1 (_mm_slli_si128, __m128i, __m128i, 1) 145test_1 (_mm_extract_epi16, int, __m128i, 1) 146test_2 (_mm_insert_epi16, __m128i, __m128i, int, 1) 147test_1 (_mm_shufflehi_epi16, __m128i, __m128i, 1) 148test_1 (_mm_shufflelo_epi16, __m128i, __m128i, 1) 149test_1 (_mm_shuffle_epi32, __m128i, __m128i, 1) 150 151/* pmmintrin.h (SSE3). */ 152#ifdef DIFFERENT_PRAGMAS 153#pragma GCC target ("sse3") 154#endif 155#include <pmmintrin.h> 156 157/* tmmintrin.h (SSSE3). */ 158#ifdef DIFFERENT_PRAGMAS 159#pragma GCC target ("ssse3") 160#endif 161#include <tmmintrin.h> 162test_2 (_mm_alignr_epi8, __m128i, __m128i, __m128i, 1) 163test_2 (_mm_alignr_pi8, __m64, __m64, __m64, 1) 164 165/* ammintrin.h (SSE4A). */ 166#ifdef DIFFERENT_PRAGMAS 167#pragma GCC target ("sse4a") 168#endif 169#include <ammintrin.h> 170test_1x (_mm_extracti_si64, __m128i, __m128i, 1, 1) 171test_2x (_mm_inserti_si64, __m128i, __m128i, __m128i, 1, 1) 172 173/* Note, nmmintrin.h includes smmintrin.h, and smmintrin.h 174 checks for the #ifdef. So just set the option to SSE4.2. */ 175#ifdef DIFFERENT_PRAGMAS 176#pragma GCC target ("sse4.2") 177#endif 178#include <nmmintrin.h> 179/* smmintrin.h (SSE4.2). */ 180test_1 (_mm_round_pd, __m128d, __m128d, 9) 181test_1 (_mm_round_ps, __m128, __m128, 9) 182test_2 (_mm_round_sd, __m128d, __m128d, __m128d, 9) 183test_2 (_mm_round_ss, __m128, __m128, __m128, 9) 184 185test_2 (_mm_blend_epi16, __m128i, __m128i, __m128i, 1) 186test_2 (_mm_blend_ps, __m128, __m128, __m128, 1) 187test_2 (_mm_blend_pd, __m128d, __m128d, __m128d, 1) 188test_2 (_mm_dp_ps, __m128, __m128, __m128, 1) 189test_2 (_mm_dp_pd, __m128d, __m128d, __m128d, 1) 190test_2 (_mm_insert_ps, __m128, __m128, __m128, 1) 191test_1 (_mm_extract_ps, int, __m128, 1) 192test_2 (_mm_insert_epi8, __m128i, __m128i, int, 1) 193test_2 (_mm_insert_epi32, __m128i, __m128i, int, 1) 194#ifdef __x86_64__ 195test_2 (_mm_insert_epi64, __m128i, __m128i, long long, 1) 196#endif 197test_1 (_mm_extract_epi8, int, __m128i, 1) 198test_1 (_mm_extract_epi32, int, __m128i, 1) 199#ifdef __x86_64__ 200test_1 (_mm_extract_epi64, long long, __m128i, 1) 201#endif 202test_2 (_mm_mpsadbw_epu8, __m128i, __m128i, __m128i, 1) 203test_2 (_mm_cmpistrm, __m128i, __m128i, __m128i, 1) 204test_2 (_mm_cmpistri, int, __m128i, __m128i, 1) 205test_4 (_mm_cmpestrm, __m128i, __m128i, int, __m128i, int, 1) 206test_4 (_mm_cmpestri, int, __m128i, int, __m128i, int, 1) 207test_2 (_mm_cmpistra, int, __m128i, __m128i, 1) 208test_2 (_mm_cmpistrc, int, __m128i, __m128i, 1) 209test_2 (_mm_cmpistro, int, __m128i, __m128i, 1) 210test_2 (_mm_cmpistrs, int, __m128i, __m128i, 1) 211test_2 (_mm_cmpistrz, int, __m128i, __m128i, 1) 212test_4 (_mm_cmpestra, int, __m128i, int, __m128i, int, 1) 213test_4 (_mm_cmpestrc, int, __m128i, int, __m128i, int, 1) 214test_4 (_mm_cmpestro, int, __m128i, int, __m128i, int, 1) 215test_4 (_mm_cmpestrs, int, __m128i, int, __m128i, int, 1) 216test_4 (_mm_cmpestrz, int, __m128i, int, __m128i, int, 1) 217 218/* immintrin.h (AVX/AVX2/RDRND/FSGSBASE/F16C/RTM/AVX512F/SHA) */ 219#ifdef DIFFERENT_PRAGMAS 220#pragma GCC target ("avx,avx2,rdrnd,fsgsbase,f16c,rtm,avx512f,avx512er,avx512cd,avx512pf,sha,avx512vl,avx512bw,avx512dq,avx512ifma,avx512vbmi") 221#endif 222#include <immintrin.h> 223test_1 (_cvtss_sh, unsigned short, float, 1) 224test_1 (_mm_cvtps_ph, __m128i, __m128, 1) 225test_1 (_mm256_cvtps_ph, __m128i, __m256, 1) 226 227/* avxintrin.h */ 228test_2 (_mm256_blend_pd, __m256d, __m256d, __m256d, 1) 229test_2 (_mm256_blend_ps, __m256, __m256, __m256, 1) 230test_2 (_mm256_dp_ps, __m256, __m256, __m256, 1) 231test_2 (_mm256_shuffle_pd, __m256d, __m256d, __m256d, 1) 232test_2 (_mm256_shuffle_ps, __m256, __m256, __m256, 1) 233test_2 (_mm_cmp_sd, __m128d, __m128d, __m128d, 1) 234test_2 (_mm_cmp_ss, __m128, __m128, __m128, 1) 235test_2 (_mm_cmp_pd, __m128d, __m128d, __m128d, 1) 236test_2 (_mm_cmp_ps, __m128, __m128, __m128, 1) 237test_2 (_mm256_cmp_pd, __m256d, __m256d, __m256d, 1) 238test_2 (_mm256_cmp_ps, __m256, __m256, __m256, 1) 239test_1 (_mm256_extractf128_pd, __m128d, __m256d, 1) 240test_1 (_mm256_extractf128_ps, __m128, __m256, 1) 241test_1 (_mm256_extractf128_si256, __m128i, __m256i, 1) 242test_1 (_mm256_extract_epi8, int, __m256i, 20) 243test_1 (_mm256_extract_epi16, int, __m256i, 13) 244test_1 (_mm256_extract_epi32, int, __m256i, 6) 245#ifdef __x86_64__ 246test_1 (_mm256_extract_epi64, long long, __m256i, 2) 247#endif 248test_1 (_mm_permute_pd, __m128d, __m128d, 1) 249test_1 (_mm256_permute_pd, __m256d, __m256d, 1) 250test_1 (_mm_permute_ps, __m128, __m128, 1) 251test_1 (_mm256_permute_ps, __m256, __m256, 1) 252test_2 (_mm256_permute2f128_pd, __m256d, __m256d, __m256d, 1) 253test_2 (_mm256_permute2f128_ps, __m256, __m256, __m256, 1) 254test_2 (_mm256_permute2f128_si256, __m256i, __m256i, __m256i, 1) 255test_2 (_mm256_insertf128_pd, __m256d, __m256d, __m128d, 1) 256test_2 (_mm256_insertf128_ps, __m256, __m256, __m128, 1) 257test_2 (_mm256_insertf128_si256, __m256i, __m256i, __m128i, 1) 258test_2 (_mm256_insert_epi8, __m256i, __m256i, int, 30) 259test_2 (_mm256_insert_epi16, __m256i, __m256i, int, 7) 260test_2 (_mm256_insert_epi32, __m256i, __m256i, int, 3) 261#ifdef __x86_64__ 262test_2 (_mm256_insert_epi64, __m256i, __m256i, long long, 1) 263#endif 264test_1 (_mm256_round_pd, __m256d, __m256d, 9) 265test_1 (_mm256_round_ps, __m256, __m256, 9) 266 267/* avx2intrin.h */ 268test_2 ( _mm256_mpsadbw_epu8, __m256i, __m256i, __m256i, 1) 269test_2 ( _mm256_alignr_epi8, __m256i, __m256i, __m256i, 1) 270test_2 ( _mm256_blend_epi16, __m256i, __m256i, __m256i, 1) 271test_1 ( _mm256_shuffle_epi32, __m256i, __m256i, 1) 272test_1 ( _mm256_shufflehi_epi16, __m256i, __m256i, 1) 273test_1 ( _mm256_shufflelo_epi16, __m256i, __m256i, 1) 274test_1 ( _mm256_bslli_epi128, __m256i, __m256i, 8) 275test_1 ( _mm256_bsrli_epi128, __m256i, __m256i, 8) 276test_1 ( _mm256_slli_si256, __m256i, __m256i, 8) 277test_1 ( _mm256_srli_si256, __m256i, __m256i, 8) 278test_2 ( _mm_blend_epi32, __m128i, __m128i, __m128i, 1) 279test_2 ( _mm256_blend_epi32, __m256i, __m256i, __m256, 1) 280test_1 ( _mm256_permute4x64_pd, __m256d, __m256d, 1) 281test_1 ( _mm256_permute4x64_epi64, __m256i, __m256i, 1) 282test_2 ( _mm256_permute2x128_si256, __m256i, __m256i, __m256i, 1) 283test_1 ( _mm256_extracti128_si256, __m128i, __m256i, 1) 284test_2 ( _mm256_inserti128_si256, __m256i, __m256i, __m128i, 1) 285test_2 ( _mm_i32gather_pd, __m128d, double const *, __m128i, 1) 286test_2 ( _mm256_i32gather_pd, __m256d, double const *, __m128i, 1) 287test_2 ( _mm_i64gather_pd, __m128d, double const *, __m128i, 1) 288test_2 ( _mm256_i64gather_pd, __m256d, double const *, __m256i, 1) 289test_2 ( _mm_i32gather_ps, __m128, float const *, __m128i, 1) 290test_2 ( _mm256_i32gather_ps, __m256, float const *, __m256i, 1) 291test_2 ( _mm_i64gather_ps, __m128, float const *, __m128i, 1) 292test_2 ( _mm256_i64gather_ps, __m128, float const *, __m256i, 1) 293test_2 ( _mm_i32gather_epi64, __m128i, long long int const *, __m128i, 1) 294test_2 ( _mm256_i32gather_epi64, __m256i, long long int const *, __m128i, 1) 295test_2 ( _mm_i64gather_epi64, __m128i, long long int const *, __m128i, 1) 296test_2 ( _mm256_i64gather_epi64, __m256i, long long int const *, __m256i, 1) 297test_2 ( _mm_i32gather_epi32, __m128i, int const *, __m128i, 1) 298test_2 ( _mm256_i32gather_epi32, __m256i, int const *, __m256i, 1) 299test_2 ( _mm_i64gather_epi32, __m128i, int const *, __m128i, 1) 300test_2 ( _mm256_i64gather_epi32, __m128i, int const *, __m256i, 1) 301 302/* rtmintrin.h */ 303test_0 ( _xabort, void, 1) 304 305/* avx512fintrin.h */ 306test_1 (_mm512_cvt_roundepi32_ps, __m512, __m512i, 9) 307test_1 (_mm512_cvt_roundepu32_ps, __m512, __m512i, 9) 308test_1 (_mm512_cvt_roundpd_epi32, __m256i, __m512d, 9) 309test_1 (_mm512_cvt_roundpd_epu32, __m256i, __m512d, 9) 310test_1 (_mm512_cvt_roundpd_ps, __m256, __m512d, 9) 311test_1 (_mm512_cvt_roundph_ps, __m512, __m256i, 8) 312test_1 (_mm512_cvt_roundps_epi32, __m512i, __m512, 9) 313test_1 (_mm512_cvt_roundps_epu32, __m512i, __m512, 9) 314test_1 (_mm512_cvt_roundps_pd, __m512d, __m256, 8) 315test_1 (_mm512_cvtps_ph, __m256i, __m512, 1) 316test_1 (_mm512_cvtt_roundpd_epi32, __m256i, __m512d, 8) 317test_1 (_mm512_cvtt_roundpd_epu32, __m256i, __m512d, 8) 318test_1 (_mm512_cvtt_roundps_epi32, __m512i, __m512, 8) 319test_1 (_mm512_cvtt_roundps_epu32, __m512i, __m512, 8) 320test_1 (_mm512_extractf32x4_ps, __m128, __m512, 1) 321test_1 (_mm512_extractf64x4_pd, __m256d, __m512d, 1) 322test_1 (_mm512_extracti32x4_epi32, __m128i, __m512i, 1) 323test_1 (_mm512_extracti64x4_epi64, __m256i, __m512i, 1) 324test_1 (_mm512_getexp_round_pd, __m512d, __m512d, 8) 325test_1 (_mm512_getexp_round_ps, __m512, __m512, 8) 326test_1y (_mm512_getmant_round_pd, __m512d, __m512d, 1, 1, 8) 327test_1y (_mm512_getmant_round_ps, __m512, __m512, 1, 1, 8) 328test_1 (_mm512_permute_pd, __m512d, __m512d, 1) 329test_1 (_mm512_permute_ps, __m512, __m512, 1) 330test_1 (_mm512_permutex_epi64, __m512i, __m512i, 1) 331test_1 (_mm512_permutex_pd, __m512d, __m512d, 1) 332test_1 (_mm512_rol_epi32, __m512i, __m512i, 1) 333test_1 (_mm512_rol_epi64, __m512i, __m512i, 1) 334test_1 (_mm512_ror_epi32, __m512i, __m512i, 1) 335test_1 (_mm512_ror_epi64, __m512i, __m512i, 1) 336test_1 (_mm512_shuffle_epi32, __m512i, __m512i, 1) 337test_1 (_mm512_slli_epi32, __m512i, __m512i, 1) 338test_1 (_mm512_slli_epi64, __m512i, __m512i, 1) 339test_1 (_mm512_sqrt_round_pd, __m512d, __m512d, 9) 340test_1 (_mm512_sqrt_round_ps, __m512, __m512, 9) 341test_1 (_mm512_srai_epi32, __m512i, __m512i, 1) 342test_1 (_mm512_srai_epi64, __m512i, __m512i, 1) 343test_1 (_mm512_srli_epi32, __m512i, __m512i, 1) 344test_1 (_mm512_srli_epi64, __m512i, __m512i, 1) 345test_1 (_mm_cvt_roundsd_i32, int, __m128d, 9) 346test_1 (_mm_cvt_roundsd_u32, unsigned, __m128d, 9) 347test_1 (_mm_cvt_roundss_i32, int, __m128, 9) 348test_1 (_mm_cvt_roundss_u32, unsigned, __m128, 9) 349test_1 (_mm_cvtt_roundsd_i32, int, __m128d, 8) 350test_1 (_mm_cvtt_roundsd_u32, unsigned, __m128d, 8) 351test_1 (_mm_cvtt_roundss_i32, int, __m128, 8) 352test_1 (_mm_cvtt_roundss_u32, unsigned, __m128, 8) 353test_1x (_mm512_getmant_pd, __m512d, __m512d, 1, 1) 354test_1x (_mm512_getmant_ps, __m512, __m512, 1, 1) 355test_1x (_mm_cvt_roundi32_ss, __m128, __m128, 1, 9) 356test_2 (_mm512_add_round_pd, __m512d, __m512d, __m512d, 9) 357test_2 (_mm512_add_round_ps, __m512, __m512, __m512, 9) 358test_2 (_mm512_alignr_epi32, __m512i, __m512i, __m512i, 1) 359test_2 (_mm512_alignr_epi64, __m512i, __m512i, __m512i, 1) 360test_2 (_mm512_cmp_epi32_mask, __mmask16, __m512i, __m512i, 1) 361test_2 (_mm512_cmp_epi64_mask, __mmask8, __m512i, __m512i, 1) 362test_2 (_mm512_cmp_epu32_mask, __mmask16, __m512i, __m512i, 1) 363test_2 (_mm512_cmp_epu64_mask, __mmask8, __m512i, __m512i, 1) 364test_2 (_mm512_cmp_pd_mask, __mmask8, __m512d, __m512d, 1) 365test_2 (_mm512_cmp_ps_mask, __mmask16, __m512, __m512, 1) 366test_2 (_mm512_div_round_pd, __m512d, __m512d, __m512d, 9) 367test_2 (_mm512_div_round_ps, __m512, __m512, __m512, 9) 368test_2 (_mm512_i32gather_epi32, __m512i, __m512i, void const *, 1) 369test_2 (_mm512_i32gather_epi64, __m512i, __m256i, void const *, 1) 370test_2 (_mm512_i32gather_pd, __m512d, __m256i, void const *, 1) 371test_2 (_mm512_i32gather_ps, __m512, __m512i, void const *, 1) 372test_2 (_mm512_i64gather_epi32, __m256i, __m512i, void const *, 1) 373test_2 (_mm512_i64gather_epi64, __m512i, __m512i, void const *, 1) 374test_2 (_mm512_i64gather_pd, __m512d, __m512i, void const *, 1) 375test_2 (_mm512_i64gather_ps, __m256, __m512i, void const *, 1) 376test_2 (_mm512_insertf32x4, __m512, __m512, __m128, 1) 377test_2 (_mm512_insertf64x4, __m512d, __m512d, __m256d, 1) 378test_2 (_mm512_inserti32x4, __m512i, __m512i, __m128i, 1) 379test_2 (_mm512_inserti64x4, __m512i, __m512i, __m256i, 1) 380test_2 (_mm512_maskz_cvt_roundepi32_ps, __m512, __mmask16, __m512i, 9) 381test_2 (_mm512_maskz_cvt_roundepu32_ps, __m512, __mmask16, __m512i, 9) 382test_2 (_mm512_maskz_cvt_roundpd_epi32, __m256i, __mmask8, __m512d, 9) 383test_2 (_mm512_maskz_cvt_roundpd_epu32, __m256i, __mmask8, __m512d, 9) 384test_2 (_mm512_maskz_cvt_roundpd_ps, __m256, __mmask8, __m512d, 9) 385test_2 (_mm512_maskz_cvt_roundph_ps, __m512, __mmask16, __m256i, 8) 386test_2 (_mm512_maskz_cvt_roundps_epi32, __m512i, __mmask16, __m512, 9) 387test_2 (_mm512_maskz_cvt_roundps_epu32, __m512i, __mmask16, __m512, 9) 388test_2 (_mm512_maskz_cvt_roundps_pd, __m512d, __mmask8, __m256, 8) 389test_2 (_mm512_maskz_cvtps_ph, __m256i, __mmask16, __m512, 1) 390test_2 (_mm512_maskz_cvtt_roundpd_epi32, __m256i, __mmask8, __m512d, 8) 391test_2 (_mm512_maskz_cvtt_roundpd_epu32, __m256i, __mmask8, __m512d, 8) 392test_2 (_mm512_maskz_cvtt_roundps_epi32, __m512i, __mmask16, __m512, 8) 393test_2 (_mm512_maskz_cvtt_roundps_epu32, __m512i, __mmask16, __m512, 8) 394test_2 (_mm512_maskz_extractf32x4_ps, __m128, __mmask8, __m512, 1) 395test_2 (_mm512_maskz_extractf64x4_pd, __m256d, __mmask8, __m512d, 1) 396test_2 (_mm512_maskz_extracti32x4_epi32, __m128i, __mmask8, __m512i, 1) 397test_2 (_mm512_maskz_extracti64x4_epi64, __m256i, __mmask8, __m512i, 1) 398test_2 (_mm512_maskz_getexp_round_pd, __m512d, __mmask8, __m512d, 8) 399test_2 (_mm512_maskz_getexp_round_ps, __m512, __mmask16, __m512, 8) 400test_2y (_mm512_maskz_getmant_round_pd, __m512d, __mmask8, __m512d, 1, 1, 8) 401test_2y (_mm512_maskz_getmant_round_ps, __m512, __mmask16, __m512, 1, 1, 8) 402test_2 (_mm512_maskz_permute_pd, __m512d, __mmask8, __m512d, 1) 403test_2 (_mm512_maskz_permute_ps, __m512, __mmask16, __m512, 1) 404test_2 (_mm512_maskz_permutex_epi64, __m512i, __mmask8, __m512i, 1) 405test_2 (_mm512_maskz_permutex_pd, __m512d, __mmask8, __m512d, 1) 406test_2 (_mm512_maskz_rol_epi32, __m512i, __mmask16, __m512i, 1) 407test_2 (_mm512_maskz_rol_epi64, __m512i, __mmask8, __m512i, 1) 408test_2 (_mm512_maskz_ror_epi32, __m512i, __mmask16, __m512i, 1) 409test_2 (_mm512_maskz_ror_epi64, __m512i, __mmask8, __m512i, 1) 410test_2 (_mm512_maskz_shuffle_epi32, __m512i, __mmask16, __m512i, 1) 411test_2 (_mm512_maskz_slli_epi32, __m512i, __mmask16, __m512i, 1) 412test_2 (_mm512_maskz_slli_epi64, __m512i, __mmask8, __m512i, 1) 413test_2 (_mm512_maskz_sqrt_round_pd, __m512d, __mmask8, __m512d, 9) 414test_2 (_mm512_maskz_sqrt_round_ps, __m512, __mmask16, __m512, 9) 415test_2 (_mm512_maskz_srai_epi32, __m512i, __mmask16, __m512i, 1) 416test_2 (_mm512_maskz_srai_epi64, __m512i, __mmask8, __m512i, 1) 417test_2 (_mm512_maskz_srli_epi32, __m512i, __mmask16, __m512i, 1) 418test_2 (_mm512_maskz_srli_epi64, __m512i, __mmask8, __m512i, 1) 419test_2 (_mm512_max_round_pd, __m512d, __m512d, __m512d, 8) 420test_2 (_mm512_max_round_ps, __m512, __m512, __m512, 8) 421test_2 (_mm512_min_round_pd, __m512d, __m512d, __m512d, 8) 422test_2 (_mm512_min_round_ps, __m512, __m512, __m512, 8) 423test_2 (_mm512_mul_round_pd, __m512d, __m512d, __m512d, 9) 424test_2 (_mm512_mul_round_ps, __m512, __m512, __m512, 9) 425test_2 (_mm512_scalef_round_pd, __m512d, __m512d, __m512d, 9) 426test_2 (_mm512_scalef_round_ps, __m512, __m512, __m512, 9) 427test_2 (_mm512_shuffle_f32x4, __m512, __m512, __m512, 1) 428test_2 (_mm512_shuffle_f64x2, __m512d, __m512d, __m512d, 1) 429test_2 (_mm512_shuffle_i32x4, __m512i, __m512i, __m512i, 1) 430test_2 (_mm512_shuffle_i64x2, __m512i, __m512i, __m512i, 1) 431test_2 (_mm512_shuffle_pd, __m512d, __m512d, __m512d, 1) 432test_2 (_mm512_shuffle_ps, __m512, __m512, __m512, 1) 433test_2 (_mm512_sub_round_pd, __m512d, __m512d, __m512d, 9) 434test_2 (_mm512_sub_round_ps, __m512, __m512, __m512, 9) 435test_2 (_mm_cmp_sd_mask, __mmask8, __m128d, __m128d, 1) 436test_2 (_mm_cmp_ss_mask, __mmask8, __m128, __m128, 1) 437#ifdef __x86_64__ 438test_2 (_mm_cvt_roundi64_sd, __m128d, __m128d, long long, 9) 439test_2 (_mm_cvt_roundi64_ss, __m128, __m128, long long, 9) 440#endif 441test_2 (_mm_cvt_roundu32_ss, __m128, __m128, unsigned, 9) 442#ifdef __x86_64__ 443test_2 (_mm_cvt_roundu64_sd, __m128d, __m128d, unsigned long long, 9) 444test_2 (_mm_cvt_roundu64_ss, __m128, __m128, unsigned long long, 9) 445#endif 446test_2x (_mm512_cmp_round_pd_mask, __mmask8, __m512d, __m512d, 1, 8) 447test_2x (_mm512_cmp_round_ps_mask, __mmask16, __m512, __m512, 1, 8) 448test_2x (_mm512_maskz_roundscale_round_pd, __m512d, __mmask8, __m512d, 1, 8) 449test_2x (_mm512_maskz_roundscale_round_ps, __m512, __mmask16, __m512, 1, 8) 450test_2x (_mm_cmp_round_sd_mask, __mmask8, __m128d, __m128d, 1, 8) 451test_2x (_mm_cmp_round_ss_mask, __mmask8, __m128, __m128, 1, 8) 452test_2x (_mm_comi_round_sd, int, __m128d, __m128d, 1, 8) 453test_2x (_mm_comi_round_ss, int, __m128, __m128, 1, 8) 454test_3 (_mm512_fmadd_round_pd, __m512d, __m512d, __m512d, __m512d, 9) 455test_3 (_mm512_fmadd_round_ps, __m512, __m512, __m512, __m512, 9) 456test_3 (_mm512_fmaddsub_round_pd, __m512d, __m512d, __m512d, __m512d, 9) 457test_3 (_mm512_fmaddsub_round_ps, __m512, __m512, __m512, __m512, 9) 458test_3 (_mm512_fmsub_round_pd, __m512d, __m512d, __m512d, __m512d, 9) 459test_3 (_mm512_fmsub_round_ps, __m512, __m512, __m512, __m512, 9) 460test_3 (_mm512_fmsubadd_round_pd, __m512d, __m512d, __m512d, __m512d, 9) 461test_3 (_mm512_fmsubadd_round_ps, __m512, __m512, __m512, __m512, 9) 462test_3 (_mm512_fnmadd_round_pd, __m512d, __m512d, __m512d, __m512d, 9) 463test_3 (_mm512_fnmadd_round_ps, __m512, __m512, __m512, __m512, 9) 464test_3 (_mm512_fnmsub_round_pd, __m512d, __m512d, __m512d, __m512d, 9) 465test_3 (_mm512_fnmsub_round_ps, __m512, __m512, __m512, __m512, 9) 466test_3 (_mm512_mask_cmp_epi32_mask, __mmask16, __mmask16, __m512i, __m512i, 1) 467test_3 (_mm512_mask_cmp_epi64_mask, __mmask8, __mmask8, __m512i, __m512i, 1) 468test_3 (_mm512_mask_cmp_epu32_mask, __mmask16, __mmask16, __m512i, __m512i, 1) 469test_3 (_mm512_mask_cmp_epu64_mask, __mmask8, __mmask8, __m512i, __m512i, 1) 470test_3 (_mm512_mask_cmp_pd_mask, __mmask8, __mmask8, __m512d, __m512d, 1) 471test_3 (_mm512_mask_cmp_ps_mask, __mmask16, __mmask16, __m512, __m512, 1) 472test_3 (_mm512_mask_cvt_roundepi32_ps, __m512, __m512, __mmask16, __m512i, 9) 473test_3 (_mm512_mask_cvt_roundepu32_ps, __m512, __m512, __mmask16, __m512i, 9) 474test_3 (_mm512_mask_cvt_roundpd_epi32, __m256i, __m256i, __mmask8, __m512d, 9) 475test_3 (_mm512_mask_cvt_roundpd_epu32, __m256i, __m256i, __mmask8, __m512d, 9) 476test_3 (_mm512_mask_cvt_roundpd_ps, __m256, __m256, __mmask8, __m512d, 9) 477test_3 (_mm512_mask_cvt_roundph_ps, __m512, __m512, __mmask16, __m256i, 8) 478test_3 (_mm512_mask_cvt_roundps_epi32, __m512i, __m512i, __mmask16, __m512, 9) 479test_3 (_mm512_mask_cvt_roundps_epu32, __m512i, __m512i, __mmask16, __m512, 9) 480test_3 (_mm512_mask_cvt_roundps_pd, __m512d, __m512d, __mmask8, __m256, 8) 481test_3 (_mm512_mask_cvtps_ph, __m256i, __m256i, __mmask16, __m512, 1) 482test_3 (_mm512_mask_cvtt_roundpd_epi32, __m256i, __m256i, __mmask8, __m512d, 8) 483test_3 (_mm512_mask_cvtt_roundpd_epu32, __m256i, __m256i, __mmask8, __m512d, 8) 484test_3 (_mm512_mask_cvtt_roundps_epi32, __m512i, __m512i, __mmask16, __m512, 8) 485test_3 (_mm512_mask_cvtt_roundps_epu32, __m512i, __m512i, __mmask16, __m512, 8) 486test_3 (_mm512_mask_extractf32x4_ps, __m128, __m128, __mmask8, __m512, 1) 487test_3 (_mm512_mask_extractf64x4_pd, __m256d, __m256d, __mmask8, __m512d, 1) 488test_3 (_mm512_mask_extracti32x4_epi32, __m128i, __m128i, __mmask8, __m512i, 1) 489test_3 (_mm512_mask_extracti64x4_epi64, __m256i, __m256i, __mmask8, __m512i, 1) 490test_3 (_mm512_mask_getexp_round_pd, __m512d, __m512d, __mmask8, __m512d, 8) 491test_3 (_mm512_mask_getexp_round_ps, __m512, __m512, __mmask16, __m512, 8) 492test_3y (_mm512_mask_getmant_round_pd, __m512d, __m512d, __mmask8, __m512d, 1, 1, 8) 493test_3y (_mm512_mask_getmant_round_ps, __m512, __m512, __mmask16, __m512, 1, 1, 8) 494test_3 (_mm512_mask_permute_pd, __m512d, __m512d, __mmask8, __m512d, 1) 495test_3 (_mm512_mask_permute_ps, __m512, __m512, __mmask16, __m512, 1) 496test_3 (_mm512_mask_permutex_epi64, __m512i, __m512i, __mmask8, __m512i, 1) 497test_3 (_mm512_mask_permutex_pd, __m512d, __m512d, __mmask8, __m512d, 1) 498test_3 (_mm512_mask_rol_epi32, __m512i, __m512i, __mmask16, __m512i, 1) 499test_3 (_mm512_mask_rol_epi64, __m512i, __m512i, __mmask8, __m512i, 1) 500test_3 (_mm512_mask_ror_epi32, __m512i, __m512i, __mmask16, __m512i, 1) 501test_3 (_mm512_mask_ror_epi64, __m512i, __m512i, __mmask8, __m512i, 1) 502test_3 (_mm512_mask_shuffle_epi32, __m512i, __m512i, __mmask16, __m512i, 1) 503test_3 (_mm512_mask_slli_epi32, __m512i, __m512i, __mmask16, __m512i, 1) 504test_3 (_mm512_mask_slli_epi64, __m512i, __m512i, __mmask8, __m512i, 1) 505test_3 (_mm512_mask_sqrt_round_pd, __m512d, __m512d, __mmask8, __m512d, 9) 506test_3 (_mm512_mask_sqrt_round_ps, __m512, __m512, __mmask16, __m512, 9) 507test_3 (_mm512_mask_srai_epi32, __m512i, __m512i, __mmask16, __m512i, 1) 508test_3 (_mm512_mask_srai_epi64, __m512i, __m512i, __mmask8, __m512i, 1) 509test_3 (_mm512_mask_srli_epi32, __m512i, __m512i, __mmask16, __m512i, 1) 510test_3 (_mm512_mask_srli_epi64, __m512i, __m512i, __mmask8, __m512i, 1) 511test_3 (_mm512_maskz_add_round_pd, __m512d, __mmask8, __m512d, __m512d, 9) 512test_3 (_mm512_maskz_add_round_ps, __m512, __mmask16, __m512, __m512, 9) 513test_3 (_mm512_maskz_alignr_epi32, __m512i, __mmask16, __m512i, __m512i, 1) 514test_3 (_mm512_maskz_alignr_epi64, __m512i, __mmask8, __m512i, __m512i, 1) 515test_3 (_mm512_maskz_div_round_pd, __m512d, __mmask8, __m512d, __m512d, 9) 516test_3 (_mm512_maskz_div_round_ps, __m512, __mmask16, __m512, __m512, 9) 517test_3 (_mm512_maskz_insertf32x4, __m512, __mmask16, __m512, __m128, 1) 518test_3 (_mm512_maskz_insertf64x4, __m512d, __mmask8, __m512d, __m256d, 1) 519test_3 (_mm512_maskz_inserti32x4, __m512i, __mmask16, __m512i, __m128i, 1) 520test_3 (_mm512_maskz_inserti64x4, __m512i, __mmask8, __m512i, __m256i, 1) 521test_3 (_mm512_maskz_max_round_pd, __m512d, __mmask8, __m512d, __m512d, 8) 522test_3 (_mm512_maskz_max_round_ps, __m512, __mmask16, __m512, __m512, 8) 523test_3 (_mm512_maskz_min_round_pd, __m512d, __mmask8, __m512d, __m512d, 8) 524test_3 (_mm512_maskz_min_round_ps, __m512, __mmask16, __m512, __m512, 8) 525test_3 (_mm512_maskz_mul_round_pd, __m512d, __mmask8, __m512d, __m512d, 9) 526test_3 (_mm512_maskz_mul_round_ps, __m512, __mmask16, __m512, __m512, 9) 527test_3 (_mm512_maskz_scalef_round_pd, __m512d, __mmask8, __m512d, __m512d, 9) 528test_3 (_mm512_maskz_scalef_round_ps, __m512, __mmask16, __m512, __m512, 9) 529test_3 (_mm512_maskz_shuffle_f32x4, __m512, __mmask16, __m512, __m512, 1) 530test_3 (_mm512_maskz_shuffle_f64x2, __m512d, __mmask8, __m512d, __m512d, 1) 531test_3 (_mm512_maskz_shuffle_i32x4, __m512i, __mmask16, __m512i, __m512i, 1) 532test_3 (_mm512_maskz_shuffle_i64x2, __m512i, __mmask8, __m512i, __m512i, 1) 533test_3 (_mm512_maskz_shuffle_pd, __m512d, __mmask8, __m512d, __m512d, 1) 534test_3 (_mm512_maskz_shuffle_ps, __m512, __mmask16, __m512, __m512, 1) 535test_3 (_mm512_maskz_sub_round_pd, __m512d, __mmask8, __m512d, __m512d, 9) 536test_3 (_mm512_maskz_sub_round_ps, __m512, __mmask16, __m512, __m512, 9) 537test_3 (_mm512_ternarylogic_epi32, __m512i, __m512i, __m512i, __m512i, 1) 538test_3 (_mm512_ternarylogic_epi64, __m512i, __m512i, __m512i, __m512i, 1) 539test_3 (_mm_mask_cmp_sd_mask, __mmask8, __mmask8, __m128d, __m128d, 1) 540test_3 (_mm_mask_cmp_ss_mask, __mmask8, __mmask8, __m128, __m128, 1) 541test_3v (_mm512_i32scatter_epi32, void *, __m512i, __m512i, 1) 542test_3v (_mm512_i32scatter_epi64, void *, __m256i, __m512i, 1) 543test_3v (_mm512_i32scatter_pd, void *, __m256i, __m512d, 1) 544test_3v (_mm512_i32scatter_ps, void *, __m512i, __m512, 1) 545test_3v (_mm512_i64scatter_epi32, void *, __m512i, __m256i, 1) 546test_3v (_mm512_i64scatter_epi64, void *, __m512i, __m512i, 1) 547test_3v (_mm512_i64scatter_pd, void *, __m512i, __m512d, 1) 548test_3v (_mm512_i64scatter_ps, void *, __m512i, __m256, 1) 549test_3x (_mm512_mask_roundscale_round_pd, __m512d, __m512d, __mmask8, __m512d, 1, 8) 550test_3x (_mm512_mask_roundscale_round_ps, __m512, __m512, __mmask16, __m512, 1, 8) 551test_3x (_mm512_mask_cmp_round_pd_mask, __mmask8, __mmask8, __m512d, __m512d, 1, 8) 552test_3x (_mm512_mask_cmp_round_ps_mask, __mmask16, __mmask16, __m512, __m512, 1, 8) 553test_3x (_mm_fixupimm_round_sd, __m128d, __m128d, __m128d, __m128i, 1, 8) 554test_3x (_mm_fixupimm_round_ss, __m128, __m128, __m128, __m128i, 1, 8) 555test_3x (_mm_mask_cmp_round_sd_mask, __mmask8, __mmask8, __m128d, __m128d, 1, 8) 556test_3x (_mm_mask_cmp_round_ss_mask, __mmask8, __mmask8, __m128, __m128, 1, 8) 557test_4 (_mm512_mask3_fmadd_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 9) 558test_4 (_mm512_mask3_fmadd_round_ps, __m512, __m512, __m512, __m512, __mmask16, 9) 559test_4 (_mm512_mask3_fmaddsub_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 9) 560test_4 (_mm512_mask3_fmaddsub_round_ps, __m512, __m512, __m512, __m512, __mmask16, 9) 561test_4 (_mm512_mask3_fmsub_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 9) 562test_4 (_mm512_mask3_fmsub_round_ps, __m512, __m512, __m512, __m512, __mmask16, 9) 563test_4 (_mm512_mask3_fmsubadd_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 9) 564test_4 (_mm512_mask3_fmsubadd_round_ps, __m512, __m512, __m512, __m512, __mmask16, 9) 565test_4 (_mm512_mask3_fnmadd_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 9) 566test_4 (_mm512_mask3_fnmadd_round_ps, __m512, __m512, __m512, __m512, __mmask16, 9) 567test_4 (_mm512_mask3_fnmsub_round_pd, __m512d, __m512d, __m512d, __m512d, __mmask8, 9) 568test_4 (_mm512_mask3_fnmsub_round_ps, __m512, __m512, __m512, __m512, __mmask16, 9) 569test_4 (_mm512_mask_add_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9) 570test_4 (_mm512_mask_add_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9) 571test_4 (_mm512_mask_alignr_epi32, __m512i, __m512i, __mmask16, __m512i, __m512i, 1) 572test_4 (_mm512_mask_alignr_epi64, __m512i, __m512i, __mmask8, __m512i, __m512i, 1) 573test_4 (_mm512_mask_div_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9) 574test_4 (_mm512_mask_div_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9) 575test_4 (_mm512_mask_fmadd_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9) 576test_4 (_mm512_mask_fmadd_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9) 577test_4 (_mm512_mask_fmaddsub_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9) 578test_4 (_mm512_mask_fmaddsub_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9) 579test_4 (_mm512_mask_fmsub_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9) 580test_4 (_mm512_mask_fmsub_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9) 581test_4 (_mm512_mask_fmsubadd_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9) 582test_4 (_mm512_mask_fmsubadd_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9) 583test_4 (_mm512_mask_fnmadd_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9) 584test_4 (_mm512_mask_fnmadd_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9) 585test_4 (_mm512_mask_fnmsub_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9) 586test_4 (_mm512_mask_fnmsub_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9) 587test_4 (_mm512_mask_i32gather_epi32, __m512i, __m512i, __mmask16, __m512i, void const *, 1) 588test_4 (_mm512_mask_i32gather_epi64, __m512i, __m512i, __mmask8, __m256i, void const *, 1) 589test_4 (_mm512_mask_i32gather_pd, __m512d, __m512d, __mmask8, __m256i, void const *, 1) 590test_4 (_mm512_mask_i32gather_ps, __m512, __m512, __mmask16, __m512i, void const *, 1) 591test_4 (_mm512_mask_i64gather_epi32, __m256i, __m256i, __mmask8, __m512i, void const *, 1) 592test_4 (_mm512_mask_i64gather_epi64, __m512i, __m512i, __mmask8, __m512i, void const *, 1) 593test_4 (_mm512_mask_i64gather_pd, __m512d, __m512d, __mmask8, __m512i, void const *, 1) 594test_4 (_mm512_mask_i64gather_ps, __m256, __m256, __mmask8, __m512i, void const *, 1) 595test_4 (_mm512_mask_insertf32x4, __m512, __m512, __mmask16, __m512, __m128, 1) 596test_4 (_mm512_mask_insertf64x4, __m512d, __m512d, __mmask8, __m512d, __m256d, 1) 597test_4 (_mm512_mask_inserti32x4, __m512i, __m512i, __mmask16, __m512i, __m128i, 1) 598test_4 (_mm512_mask_inserti64x4, __m512i, __m512i, __mmask8, __m512i, __m256i, 1) 599test_4 (_mm512_mask_max_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 8) 600test_4 (_mm512_mask_max_round_ps, __m512, __m512, __mmask16, __m512, __m512, 8) 601test_4 (_mm512_mask_min_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 8) 602test_4 (_mm512_mask_min_round_ps, __m512, __m512, __mmask16, __m512, __m512, 8) 603test_4 (_mm512_mask_mul_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9) 604test_4 (_mm512_mask_mul_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9) 605test_4 (_mm512_mask_scalef_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9) 606test_4 (_mm512_mask_scalef_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9) 607test_4 (_mm512_mask_shuffle_f32x4, __m512, __m512, __mmask16, __m512, __m512, 1) 608test_4 (_mm512_mask_shuffle_f64x2, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) 609test_4 (_mm512_mask_shuffle_i32x4, __m512i, __m512i, __mmask16, __m512i, __m512i, 1) 610test_4 (_mm512_mask_shuffle_i64x2, __m512i, __m512i, __mmask8, __m512i, __m512i, 1) 611test_4 (_mm512_mask_shuffle_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) 612test_4 (_mm512_mask_shuffle_ps, __m512, __m512, __mmask16, __m512, __m512, 1) 613test_4 (_mm512_mask_sub_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9) 614test_4 (_mm512_mask_sub_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9) 615test_4 (_mm512_mask_ternarylogic_epi32, __m512i, __m512i, __mmask16, __m512i, __m512i, 1) 616test_4 (_mm512_mask_ternarylogic_epi64, __m512i, __m512i, __mmask8, __m512i, __m512i, 1) 617test_4 (_mm512_maskz_fmadd_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 9) 618test_4 (_mm512_maskz_fmadd_round_ps, __m512, __mmask16, __m512, __m512, __m512, 9) 619test_4 (_mm512_maskz_fmaddsub_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 9) 620test_4 (_mm512_maskz_fmaddsub_round_ps, __m512, __mmask16, __m512, __m512, __m512, 9) 621test_4 (_mm512_maskz_fmsub_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 9) 622test_4 (_mm512_maskz_fmsub_round_ps, __m512, __mmask16, __m512, __m512, __m512, 9) 623test_4 (_mm512_maskz_fmsubadd_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 9) 624test_4 (_mm512_maskz_fmsubadd_round_ps, __m512, __mmask16, __m512, __m512, __m512, 9) 625test_4 (_mm512_maskz_fnmadd_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 9) 626test_4 (_mm512_maskz_fnmadd_round_ps, __m512, __mmask16, __m512, __m512, __m512, 9) 627test_4 (_mm512_maskz_fnmsub_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512d, 9) 628test_4 (_mm512_maskz_fnmsub_round_ps, __m512, __mmask16, __m512, __m512, __m512, 9) 629test_4 (_mm512_maskz_ternarylogic_epi32, __m512i, __mmask16, __m512i, __m512i, __m512i, 1) 630test_4 (_mm512_maskz_ternarylogic_epi64, __m512i, __mmask8, __m512i, __m512i, __m512i, 1) 631test_4v (_mm512_mask_i32scatter_epi32, void *, __mmask16, __m512i, __m512i, 1) 632test_4v (_mm512_mask_i32scatter_epi64, void *, __mmask8, __m256i, __m512i, 1) 633test_4v (_mm512_mask_i32scatter_pd, void *, __mmask8, __m256i, __m512d, 1) 634test_4v (_mm512_mask_i32scatter_ps, void *, __mmask16, __m512i, __m512, 1) 635test_4v (_mm512_mask_i64scatter_epi32, void *, __mmask8, __m512i, __m256i, 1) 636test_4v (_mm512_mask_i64scatter_epi64, void *, __mmask8, __m512i, __m512i, 1) 637test_4v (_mm512_mask_i64scatter_pd, void *, __mmask8, __m512i, __m512d, 1) 638test_4v (_mm512_mask_i64scatter_ps, void *, __mmask8, __m512i, __m256, 1) 639test_4x (_mm512_mask_fixupimm_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512i, 1, 8) 640test_4x (_mm512_mask_fixupimm_round_ps, __m512, __m512, __mmask16, __m512, __m512i, 1, 8) 641test_4x (_mm512_maskz_fixupimm_round_pd, __m512d, __mmask8, __m512d, __m512d, __m512i, 1, 8) 642test_4x (_mm512_maskz_fixupimm_round_ps, __m512, __mmask16, __m512, __m512, __m512i, 1, 8) 643test_4x (_mm_mask_fixupimm_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128i, 1, 8) 644test_4x (_mm_mask_fixupimm_round_ss, __m128, __m128, __mmask8, __m128, __m128i, 1, 8) 645test_4x (_mm_maskz_fixupimm_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128i, 1, 8) 646test_4x (_mm_maskz_fixupimm_round_ss, __m128, __mmask8, __m128, __m128, __m128i, 1, 8) 647 648/* avx512pfintrin.h */ 649test_3vx (_mm512_mask_prefetch_i32gather_ps, __m512i, __mmask16, void const *, 1, _MM_HINT_T0) 650test_3vx (_mm512_mask_prefetch_i32scatter_ps, void const *, __mmask16, __m512i, 1, _MM_HINT_T0) 651test_3vx (_mm512_mask_prefetch_i64gather_ps, __m512i, __mmask8, void const *, 1, _MM_HINT_T0) 652test_3vx (_mm512_mask_prefetch_i64scatter_ps, void const *, __mmask8, __m512i, 1, _MM_HINT_T0) 653 654test_3vx (_mm512_mask_prefetch_i32gather_pd, __m256i, __mmask8, void const *, 1, _MM_HINT_T0) 655test_3vx (_mm512_mask_prefetch_i32scatter_pd, void const *, __mmask8, __m256i, 1, _MM_HINT_T0) 656test_3vx (_mm512_mask_prefetch_i64gather_pd, __m512i, __mmask8, long long *, 1, _MM_HINT_T0) 657test_3vx (_mm512_mask_prefetch_i64scatter_pd, void const *, __mmask8, __m512i, 1, _MM_HINT_T0) 658 659/* avx512erintrin.h */ 660test_1 (_mm512_exp2a23_round_pd, __m512d, __m512d, 8) 661test_1 (_mm512_exp2a23_round_ps, __m512, __m512, 8) 662test_1 (_mm512_rcp28_round_pd, __m512d, __m512d, 8) 663test_1 (_mm512_rcp28_round_ps, __m512, __m512, 8) 664test_1 (_mm512_rsqrt28_round_pd, __m512d, __m512d, 8) 665test_1 (_mm512_rsqrt28_round_ps, __m512, __m512, 8) 666test_2 (_mm512_maskz_exp2a23_round_pd, __m512d, __mmask8, __m512d, 8) 667test_2 (_mm512_maskz_exp2a23_round_ps, __m512, __mmask16, __m512, 8) 668test_2 (_mm512_maskz_rcp28_round_pd, __m512d, __mmask8, __m512d, 8) 669test_2 (_mm512_maskz_rcp28_round_ps, __m512, __mmask16, __m512, 8) 670test_2 (_mm512_maskz_rsqrt28_round_pd, __m512d, __mmask8, __m512d, 8) 671test_2 (_mm512_maskz_rsqrt28_round_ps, __m512, __mmask16, __m512, 8) 672test_3 (_mm512_mask_exp2a23_round_pd, __m512d, __m512d, __mmask8, __m512d, 8) 673test_3 (_mm512_mask_exp2a23_round_ps, __m512, __m512, __mmask16, __m512, 8) 674test_3 (_mm512_mask_rcp28_round_pd, __m512d, __m512d, __mmask8, __m512d, 8) 675test_3 (_mm512_mask_rcp28_round_ps, __m512, __m512, __mmask16, __m512, 8) 676test_3 (_mm512_mask_rsqrt28_round_pd, __m512d, __m512d, __mmask8, __m512d, 8) 677test_3 (_mm512_mask_rsqrt28_round_ps, __m512, __m512, __mmask16, __m512, 8) 678test_2 (_mm_rcp28_round_sd, __m128d, __m128d, __m128d, 8) 679test_2 (_mm_rcp28_round_ss, __m128, __m128, __m128, 8) 680test_2 (_mm_rsqrt28_round_sd, __m128d, __m128d, __m128d, 8) 681test_2 (_mm_rsqrt28_round_ss, __m128, __m128, __m128, 8) 682 683/* shaintrin.h */ 684test_2 (_mm_sha1rnds4_epu32, __m128i, __m128i, __m128i, 1) 685 686/* wmmintrin.h (AES/PCLMUL). */ 687#ifdef DIFFERENT_PRAGMAS 688#pragma GCC target ("aes,pclmul") 689#endif 690#include <wmmintrin.h> 691test_1 (_mm_aeskeygenassist_si128, __m128i, __m128i, 1) 692test_2 (_mm_clmulepi64_si128, __m128i, __m128i, __m128i, 1) 693 694/* popcnintrin.h (POPCNT). */ 695#ifdef DIFFERENT_PRAGMAS 696#pragma GCC target ("popcnt") 697#endif 698#include <popcntintrin.h> 699 700/* x86intrin.h (FMA4/XOP/LWP/BMI/BMI2/TBM/LZCNT/FMA). */ 701#ifdef DIFFERENT_PRAGMAS 702#pragma GCC target ("fma4,xop,lwp,bmi,bmi2,tbm,lzcnt,fma,rdseed,prfchw,adx,fxsr,xsaveopt,xsavec,xsaves,clflushopt,clwb,pcommit") 703#endif 704#include <x86intrin.h> 705/* xopintrin.h */ 706test_1 ( _mm_roti_epi8, __m128i, __m128i, 1) 707test_1 ( _mm_roti_epi16, __m128i, __m128i, 1) 708test_1 ( _mm_roti_epi32, __m128i, __m128i, 1) 709test_1 ( _mm_roti_epi64, __m128i, __m128i, 1) 710test_3 (_mm_permute2_pd, __m128d, __m128d, __m128d, __m128d, 1) 711test_3 (_mm256_permute2_pd, __m256d, __m256d, __m256d, __m256d, 1) 712test_3 (_mm_permute2_ps, __m128, __m128, __m128, __m128, 1) 713test_3 (_mm256_permute2_ps, __m256, __m256, __m256, __m256, 1) 714 715/* lwpintrin.h */ 716test_2 ( __lwpval32, void, unsigned int, unsigned int, 1) 717test_2 ( __lwpins32, unsigned char, unsigned int, unsigned int, 1) 718#ifdef __x86_64__ 719test_2 ( __lwpval64, void, unsigned long long, unsigned int, 1) 720test_2 ( __lwpins64, unsigned char, unsigned long long, unsigned int, 1) 721#endif 722 723/* tbmintrin.h */ 724test_1 ( __bextri_u32, unsigned int, unsigned int, 1) 725#ifdef __x86_64__ 726test_1 ( __bextri_u64, unsigned long long, unsigned long long, 1) 727#endif 728