1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512f -emit-llvm -o - -Werror | FileCheck %s 2 3 // Don't include mm_malloc.h, it's system specific. 4 #define __MM_MALLOC_H 5 6 #include <immintrin.h> 7 8 __m512d test_mm512_sqrt_pd(__m512d a) 9 { 10 // CHECK-LABEL: @test_mm512_sqrt_pd 11 // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512 12 return _mm512_sqrt_pd(a); 13 } 14 15 __m512 test_mm512_sqrt_ps(__m512 a) 16 { 17 // CHECK-LABEL: @test_mm512_sqrt_ps 18 // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512 19 return _mm512_sqrt_ps(a); 20 } 21 22 __m512d test_mm512_rsqrt14_pd(__m512d a) 23 { 24 // CHECK-LABEL: @test_mm512_rsqrt14_pd 25 // CHECK: @llvm.x86.avx512.rsqrt14.pd.512 26 return _mm512_rsqrt14_pd(a); 27 } 28 29 __m512 test_mm512_rsqrt14_ps(__m512 a) 30 { 31 // CHECK-LABEL: @test_mm512_rsqrt14_ps 32 // CHECK: @llvm.x86.avx512.rsqrt14.ps.512 33 return _mm512_rsqrt14_ps(a); 34 } 35 36 __m512 test_mm512_add_ps(__m512 a, __m512 b) 37 { 38 // CHECK-LABEL: @test_mm512_add_ps 39 // CHECK: fadd <16 x float> 40 return _mm512_add_ps(a, b); 41 } 42 43 __m512d test_mm512_add_pd(__m512d a, __m512d b) 44 { 45 // CHECK-LABEL: @test_mm512_add_pd 46 // CHECK: fadd <8 x double> 47 return _mm512_add_pd(a, b); 48 } 49 50 __m512 test_mm512_mul_ps(__m512 a, __m512 b) 51 { 52 // CHECK-LABEL: @test_mm512_mul_ps 53 // CHECK: fmul <16 x float> 54 return _mm512_mul_ps(a, b); 55 } 56 57 __m512d test_mm512_mul_pd(__m512d a, __m512d b) 58 { 59 // CHECK-LABEL: @test_mm512_mul_pd 60 // CHECK: fmul <8 x double> 61 return _mm512_mul_pd(a, b); 62 } 63 64 void test_mm512_storeu_ps(void *p, __m512 a) 65 { 66 // CHECK-LABEL: @test_mm512_storeu_ps 67 // CHECK: @llvm.x86.avx512.mask.storeu.ps.512 68 _mm512_storeu_ps(p, a); 69 } 70 71 void test_mm512_storeu_pd(void *p, __m512d a) 72 { 73 // CHECK-LABEL: @test_mm512_storeu_pd 74 // CHECK: @llvm.x86.avx512.mask.storeu.pd.512 75 _mm512_storeu_pd(p, a); 76 } 77 78 void test_mm512_mask_store_ps(void *p, __m512 a, __mmask16 m) 79 { 80 // CHECK-LABEL: @test_mm512_mask_store_ps 81 // CHECK: @llvm.x86.avx512.mask.store.ps.512 82 _mm512_mask_store_ps(p, m, a); 83 } 84 85 void test_mm512_store_ps(void *p, __m512 a) 86 { 87 // CHECK-LABEL: @test_mm512_store_ps 88 // CHECK: store <16 x float> 89 _mm512_store_ps(p, a); 90 } 91 92 void test_mm512_mask_store_pd(void *p, __m512d a, __mmask8 m) 93 { 94 // CHECK-LABEL: @test_mm512_mask_store_pd 95 // CHECK: @llvm.x86.avx512.mask.store.pd.512 96 _mm512_mask_store_pd(p, m, a); 97 } 98 99 void test_mm512_store_pd(void *p, __m512d a) 100 { 101 // CHECK-LABEL: @test_mm512_store_pd 102 // CHECK: store <8 x double> 103 _mm512_store_pd(p, a); 104 } 105 106 __m512 test_mm512_loadu_ps(void *p) 107 { 108 // CHECK-LABEL: @test_mm512_loadu_ps 109 // CHECK: load <16 x float>, <16 x float>* {{.*}}, align 1{{$}} 110 return _mm512_loadu_ps(p); 111 } 112 113 __m512d test_mm512_loadu_pd(void *p) 114 { 115 // CHECK-LABEL: @test_mm512_loadu_pd 116 // CHECK: load <8 x double>, <8 x double>* {{.*}}, align 1{{$}} 117 return _mm512_loadu_pd(p); 118 } 119 120 __m512 test_mm512_maskz_load_ps(void *p, __mmask16 m) 121 { 122 // CHECK-LABEL: @test_mm512_maskz_load_ps 123 // CHECK: @llvm.x86.avx512.mask.load.ps.512 124 return _mm512_maskz_load_ps(m, p); 125 } 126 127 __m512 test_mm512_load_ps(void *p) 128 { 129 // CHECK-LABEL: @test_mm512_load_ps 130 // CHECK: @llvm.x86.avx512.mask.load.ps.512 131 return _mm512_load_ps(p); 132 } 133 134 __m512d test_mm512_maskz_load_pd(void *p, __mmask8 m) 135 { 136 // CHECK-LABEL: @test_mm512_maskz_load_pd 137 // CHECK: @llvm.x86.avx512.mask.load.pd.512 138 return _mm512_maskz_load_pd(m, p); 139 } 140 141 __m512d test_mm512_load_pd(void *p) 142 { 143 // CHECK-LABEL: @test_mm512_load_pd 144 // CHECK: @llvm.x86.avx512.mask.load.pd.512 145 return _mm512_load_pd(p); 146 } 147 148 __m512d test_mm512_set1_pd(double d) 149 { 150 // CHECK-LABEL: @test_mm512_set1_pd 151 // CHECK: insertelement <8 x double> {{.*}}, i32 0 152 // CHECK: insertelement <8 x double> {{.*}}, i32 1 153 // CHECK: insertelement <8 x double> {{.*}}, i32 2 154 // CHECK: insertelement <8 x double> {{.*}}, i32 3 155 // CHECK: insertelement <8 x double> {{.*}}, i32 4 156 // CHECK: insertelement <8 x double> {{.*}}, i32 5 157 // CHECK: insertelement <8 x double> {{.*}}, i32 6 158 // CHECK: insertelement <8 x double> {{.*}}, i32 7 159 return _mm512_set1_pd(d); 160 } 161 162 __m512d test_mm512_castpd256_pd512(__m256d a) 163 { 164 // CHECK-LABEL: @test_mm512_castpd256_pd512 165 // CHECK: shufflevector <4 x double> {{.*}} <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef> 166 return _mm512_castpd256_pd512(a); 167 } 168 169 __mmask16 test_mm512_knot(__mmask16 a) 170 { 171 // CHECK-LABEL: @test_mm512_knot 172 // CHECK: @llvm.x86.avx512.knot.w 173 return _mm512_knot(a); 174 } 175 176 __m512i test_mm512_alignr_epi32(__m512i a, __m512i b) 177 { 178 // CHECK-LABEL: @test_mm512_alignr_epi32 179 // CHECK: @llvm.x86.avx512.mask.valign.d.512 180 return _mm512_alignr_epi32(a, b, 2); 181 } 182 183 __m512i test_mm512_alignr_epi64(__m512i a, __m512i b) 184 { 185 // CHECK-LABEL: @test_mm512_alignr_epi64 186 // CHECK: @llvm.x86.avx512.mask.valign.q.512 187 return _mm512_alignr_epi64(a, b, 2); 188 } 189 190 __m512d test_mm512_broadcastsd_pd(__m128d a) 191 { 192 // CHECK-LABEL: @test_mm512_broadcastsd_pd 193 // CHECK: insertelement <8 x double> {{.*}}, i32 0 194 // CHECK: insertelement <8 x double> {{.*}}, i32 1 195 // CHECK: insertelement <8 x double> {{.*}}, i32 2 196 // CHECK: insertelement <8 x double> {{.*}}, i32 3 197 // CHECK: insertelement <8 x double> {{.*}}, i32 4 198 // CHECK: insertelement <8 x double> {{.*}}, i32 5 199 // CHECK: insertelement <8 x double> {{.*}}, i32 6 200 // CHECK: insertelement <8 x double> {{.*}}, i32 7 201 return _mm512_broadcastsd_pd(a); 202 } 203 204 __m512d test_mm512_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) { 205 // CHECK-LABEL: @test_mm512_fmadd_round_pd 206 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512 207 return _mm512_fmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 208 } 209 210 __m512d test_mm512_mask_fmadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { 211 // CHECK-LABEL: @test_mm512_mask_fmadd_round_pd 212 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512 213 return _mm512_mask_fmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT); 214 } 215 __m512d test_mm512_mask3_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { 216 // CHECK-LABEL: @test_mm512_mask3_fmadd_round_pd 217 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512 218 return _mm512_mask3_fmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT); 219 } 220 __m512d test_mm512_maskz_fmadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { 221 // CHECK-LABEL: @test_mm512_maskz_fmadd_round_pd 222 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512 223 return _mm512_maskz_fmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 224 } 225 __m512d test_mm512_fmsub_round_pd(__m512d __A, __m512d __B, __m512d __C) { 226 // CHECK-LABEL: @test_mm512_fmsub_round_pd 227 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512 228 return _mm512_fmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 229 } 230 __m512d test_mm512_mask_fmsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { 231 // CHECK-LABEL: @test_mm512_mask_fmsub_round_pd 232 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512 233 return _mm512_mask_fmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT); 234 } 235 __m512d test_mm512_maskz_fmsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { 236 // CHECK-LABEL: @test_mm512_maskz_fmsub_round_pd 237 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512 238 return _mm512_maskz_fmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 239 } 240 __m512d test_mm512_fnmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) { 241 // CHECK-LABEL: @test_mm512_fnmadd_round_pd 242 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512 243 return _mm512_fnmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 244 } 245 __m512d test_mm512_mask3_fnmadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { 246 // CHECK-LABEL: @test_mm512_mask3_fnmadd_round_pd 247 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512 248 return _mm512_mask3_fnmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT); 249 } 250 __m512d test_mm512_maskz_fnmadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { 251 // CHECK-LABEL: @test_mm512_maskz_fnmadd_round_pd 252 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512 253 return _mm512_maskz_fnmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 254 } 255 __m512d test_mm512_fnmsub_round_pd(__m512d __A, __m512d __B, __m512d __C) { 256 // CHECK-LABEL: @test_mm512_fnmsub_round_pd 257 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512 258 return _mm512_fnmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 259 } 260 __m512d test_mm512_maskz_fnmsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { 261 // CHECK-LABEL: @test_mm512_maskz_fnmsub_round_pd 262 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512 263 return _mm512_maskz_fnmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 264 } 265 __m512d test_mm512_fmadd_pd(__m512d __A, __m512d __B, __m512d __C) { 266 // CHECK-LABEL: @test_mm512_fmadd_pd 267 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512 268 return _mm512_fmadd_pd(__A, __B, __C); 269 } 270 __m512d test_mm512_mask_fmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { 271 // CHECK-LABEL: @test_mm512_mask_fmadd_pd 272 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512 273 return _mm512_mask_fmadd_pd(__A, __U, __B, __C); 274 } 275 __m512d test_mm512_mask3_fmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { 276 // CHECK-LABEL: @test_mm512_mask3_fmadd_pd 277 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512 278 return _mm512_mask3_fmadd_pd(__A, __B, __C, __U); 279 } 280 __m512d test_mm512_maskz_fmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { 281 // CHECK-LABEL: @test_mm512_maskz_fmadd_pd 282 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512 283 return _mm512_maskz_fmadd_pd(__U, __A, __B, __C); 284 } 285 __m512d test_mm512_fmsub_pd(__m512d __A, __m512d __B, __m512d __C) { 286 // CHECK-LABEL: @test_mm512_fmsub_pd 287 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512 288 return _mm512_fmsub_pd(__A, __B, __C); 289 } 290 __m512d test_mm512_mask_fmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { 291 // CHECK-LABEL: @test_mm512_mask_fmsub_pd 292 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512 293 return _mm512_mask_fmsub_pd(__A, __U, __B, __C); 294 } 295 __m512d test_mm512_maskz_fmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { 296 // CHECK-LABEL: @test_mm512_maskz_fmsub_pd 297 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512 298 return _mm512_maskz_fmsub_pd(__U, __A, __B, __C); 299 } 300 __m512d test_mm512_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C) { 301 // CHECK-LABEL: @test_mm512_fnmadd_pd 302 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512 303 return _mm512_fnmadd_pd(__A, __B, __C); 304 } 305 __m512d test_mm512_mask3_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { 306 // CHECK-LABEL: @test_mm512_mask3_fnmadd_pd 307 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512 308 return _mm512_mask3_fnmadd_pd(__A, __B, __C, __U); 309 } 310 __m512d test_mm512_maskz_fnmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { 311 // CHECK-LABEL: @test_mm512_maskz_fnmadd_pd 312 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512 313 return _mm512_maskz_fnmadd_pd(__U, __A, __B, __C); 314 } 315 __m512d test_mm512_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C) { 316 // CHECK-LABEL: @test_mm512_fnmsub_pd 317 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512 318 return _mm512_fnmsub_pd(__A, __B, __C); 319 } 320 __m512d test_mm512_maskz_fnmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { 321 // CHECK-LABEL: @test_mm512_maskz_fnmsub_pd 322 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512 323 return _mm512_maskz_fnmsub_pd(__U, __A, __B, __C); 324 } 325 __m512 test_mm512_fmadd_round_ps(__m512 __A, __m512 __B, __m512 __C) { 326 // CHECK-LABEL: @test_mm512_fmadd_round_ps 327 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512 328 return _mm512_fmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 329 } 330 __m512 test_mm512_mask_fmadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { 331 // CHECK-LABEL: @test_mm512_mask_fmadd_round_ps 332 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512 333 return _mm512_mask_fmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT); 334 } 335 __m512 test_mm512_mask3_fmadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { 336 // CHECK-LABEL: @test_mm512_mask3_fmadd_round_ps 337 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512 338 return _mm512_mask3_fmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT); 339 } 340 __m512 test_mm512_maskz_fmadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { 341 // CHECK-LABEL: @test_mm512_maskz_fmadd_round_ps 342 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512 343 return _mm512_maskz_fmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 344 } 345 __m512 test_mm512_fmsub_round_ps(__m512 __A, __m512 __B, __m512 __C) { 346 // CHECK-LABEL: @test_mm512_fmsub_round_ps 347 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512 348 return _mm512_fmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 349 } 350 __m512 test_mm512_mask_fmsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { 351 // CHECK-LABEL: @test_mm512_mask_fmsub_round_ps 352 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512 353 return _mm512_mask_fmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT); 354 } 355 __m512 test_mm512_maskz_fmsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { 356 // CHECK-LABEL: @test_mm512_maskz_fmsub_round_ps 357 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512 358 return _mm512_maskz_fmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 359 } 360 __m512 test_mm512_fnmadd_round_ps(__m512 __A, __m512 __B, __m512 __C) { 361 // CHECK-LABEL: @test_mm512_fnmadd_round_ps 362 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512 363 return _mm512_fnmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 364 } 365 __m512 test_mm512_mask3_fnmadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { 366 // CHECK-LABEL: @test_mm512_mask3_fnmadd_round_ps 367 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512 368 return _mm512_mask3_fnmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT); 369 } 370 __m512 test_mm512_maskz_fnmadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { 371 // CHECK-LABEL: @test_mm512_maskz_fnmadd_round_ps 372 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512 373 return _mm512_maskz_fnmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 374 } 375 __m512 test_mm512_fnmsub_round_ps(__m512 __A, __m512 __B, __m512 __C) { 376 // CHECK-LABEL: @test_mm512_fnmsub_round_ps 377 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512 378 return _mm512_fnmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 379 } 380 __m512 test_mm512_maskz_fnmsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { 381 // CHECK-LABEL: @test_mm512_maskz_fnmsub_round_ps 382 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512 383 return _mm512_maskz_fnmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 384 } 385 __m512 test_mm512_fmadd_ps(__m512 __A, __m512 __B, __m512 __C) { 386 // CHECK-LABEL: @test_mm512_fmadd_ps 387 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512 388 return _mm512_fmadd_ps(__A, __B, __C); 389 } 390 __m512 test_mm512_mask_fmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { 391 // CHECK-LABEL: @test_mm512_mask_fmadd_ps 392 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512 393 return _mm512_mask_fmadd_ps(__A, __U, __B, __C); 394 } 395 __m512 test_mm512_mask3_fmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { 396 // CHECK-LABEL: @test_mm512_mask3_fmadd_ps 397 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512 398 return _mm512_mask3_fmadd_ps(__A, __B, __C, __U); 399 } 400 __m512 test_mm512_maskz_fmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { 401 // CHECK-LABEL: @test_mm512_maskz_fmadd_ps 402 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512 403 return _mm512_maskz_fmadd_ps(__U, __A, __B, __C); 404 } 405 __m512 test_mm512_fmsub_ps(__m512 __A, __m512 __B, __m512 __C) { 406 // CHECK-LABEL: @test_mm512_fmsub_ps 407 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512 408 return _mm512_fmsub_ps(__A, __B, __C); 409 } 410 __m512 test_mm512_mask_fmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { 411 // CHECK-LABEL: @test_mm512_mask_fmsub_ps 412 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512 413 return _mm512_mask_fmsub_ps(__A, __U, __B, __C); 414 } 415 __m512 test_mm512_maskz_fmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { 416 // CHECK-LABEL: @test_mm512_maskz_fmsub_ps 417 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512 418 return _mm512_maskz_fmsub_ps(__U, __A, __B, __C); 419 } 420 __m512 test_mm512_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C) { 421 // CHECK-LABEL: @test_mm512_fnmadd_ps 422 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512 423 return _mm512_fnmadd_ps(__A, __B, __C); 424 } 425 __m512 test_mm512_mask3_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { 426 // CHECK-LABEL: @test_mm512_mask3_fnmadd_ps 427 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512 428 return _mm512_mask3_fnmadd_ps(__A, __B, __C, __U); 429 } 430 __m512 test_mm512_maskz_fnmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { 431 // CHECK-LABEL: @test_mm512_maskz_fnmadd_ps 432 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512 433 return _mm512_maskz_fnmadd_ps(__U, __A, __B, __C); 434 } 435 __m512 test_mm512_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C) { 436 // CHECK-LABEL: @test_mm512_fnmsub_ps 437 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512 438 return _mm512_fnmsub_ps(__A, __B, __C); 439 } 440 __m512 test_mm512_maskz_fnmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { 441 // CHECK-LABEL: @test_mm512_maskz_fnmsub_ps 442 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512 443 return _mm512_maskz_fnmsub_ps(__U, __A, __B, __C); 444 } 445 __m512d test_mm512_fmaddsub_round_pd(__m512d __A, __m512d __B, __m512d __C) { 446 // CHECK-LABEL: @test_mm512_fmaddsub_round_pd 447 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512 448 return _mm512_fmaddsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 449 } 450 __m512d test_mm512_mask_fmaddsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { 451 // CHECK-LABEL: @test_mm512_mask_fmaddsub_round_pd 452 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512 453 return _mm512_mask_fmaddsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT); 454 } 455 __m512d test_mm512_mask3_fmaddsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { 456 // CHECK-LABEL: @test_mm512_mask3_fmaddsub_round_pd 457 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.512 458 return _mm512_mask3_fmaddsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT); 459 } 460 __m512d test_mm512_maskz_fmaddsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { 461 // CHECK-LABEL: @test_mm512_maskz_fmaddsub_round_pd 462 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512 463 return _mm512_maskz_fmaddsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 464 } 465 __m512d test_mm512_fmsubadd_round_pd(__m512d __A, __m512d __B, __m512d __C) { 466 // CHECK-LABEL: @test_mm512_fmsubadd_round_pd 467 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512 468 return _mm512_fmsubadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 469 } 470 __m512d test_mm512_mask_fmsubadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { 471 // CHECK-LABEL: @test_mm512_mask_fmsubadd_round_pd 472 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512 473 return _mm512_mask_fmsubadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT); 474 } 475 __m512d test_mm512_maskz_fmsubadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { 476 // CHECK-LABEL: @test_mm512_maskz_fmsubadd_round_pd 477 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512 478 return _mm512_maskz_fmsubadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 479 } 480 __m512d test_mm512_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C) { 481 // CHECK-LABEL: @test_mm512_fmaddsub_pd 482 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512 483 return _mm512_fmaddsub_pd(__A, __B, __C); 484 } 485 __m512d test_mm512_mask_fmaddsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { 486 // CHECK-LABEL: @test_mm512_mask_fmaddsub_pd 487 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512 488 return _mm512_mask_fmaddsub_pd(__A, __U, __B, __C); 489 } 490 __m512d test_mm512_mask3_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { 491 // CHECK-LABEL: @test_mm512_mask3_fmaddsub_pd 492 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.512 493 return _mm512_mask3_fmaddsub_pd(__A, __B, __C, __U); 494 } 495 __m512d test_mm512_maskz_fmaddsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { 496 // CHECK-LABEL: @test_mm512_maskz_fmaddsub_pd 497 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512 498 return _mm512_maskz_fmaddsub_pd(__U, __A, __B, __C); 499 } 500 __m512d test_mm512_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C) { 501 // CHECK-LABEL: @test_mm512_fmsubadd_pd 502 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512 503 return _mm512_fmsubadd_pd(__A, __B, __C); 504 } 505 __m512d test_mm512_mask_fmsubadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { 506 // CHECK-LABEL: @test_mm512_mask_fmsubadd_pd 507 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512 508 return _mm512_mask_fmsubadd_pd(__A, __U, __B, __C); 509 } 510 __m512d test_mm512_maskz_fmsubadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { 511 // CHECK-LABEL: @test_mm512_maskz_fmsubadd_pd 512 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512 513 return _mm512_maskz_fmsubadd_pd(__U, __A, __B, __C); 514 } 515 __m512 test_mm512_fmaddsub_round_ps(__m512 __A, __m512 __B, __m512 __C) { 516 // CHECK-LABEL: @test_mm512_fmaddsub_round_ps 517 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512 518 return _mm512_fmaddsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 519 } 520 __m512 test_mm512_mask_fmaddsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { 521 // CHECK-LABEL: @test_mm512_mask_fmaddsub_round_ps 522 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512 523 return _mm512_mask_fmaddsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT); 524 } 525 __m512 test_mm512_mask3_fmaddsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { 526 // CHECK-LABEL: @test_mm512_mask3_fmaddsub_round_ps 527 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.512 528 return _mm512_mask3_fmaddsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT); 529 } 530 __m512 test_mm512_maskz_fmaddsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { 531 // CHECK-LABEL: @test_mm512_maskz_fmaddsub_round_ps 532 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512 533 return _mm512_maskz_fmaddsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 534 } 535 __m512 test_mm512_fmsubadd_round_ps(__m512 __A, __m512 __B, __m512 __C) { 536 // CHECK-LABEL: @test_mm512_fmsubadd_round_ps 537 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512 538 return _mm512_fmsubadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 539 } 540 __m512 test_mm512_mask_fmsubadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { 541 // CHECK-LABEL: @test_mm512_mask_fmsubadd_round_ps 542 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512 543 return _mm512_mask_fmsubadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT); 544 } 545 __m512 test_mm512_maskz_fmsubadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { 546 // CHECK-LABEL: @test_mm512_maskz_fmsubadd_round_ps 547 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512 548 return _mm512_maskz_fmsubadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT); 549 } 550 __m512 test_mm512_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C) { 551 // CHECK-LABEL: @test_mm512_fmaddsub_ps 552 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512 553 return _mm512_fmaddsub_ps(__A, __B, __C); 554 } 555 __m512 test_mm512_mask_fmaddsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { 556 // CHECK-LABEL: @test_mm512_mask_fmaddsub_ps 557 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512 558 return _mm512_mask_fmaddsub_ps(__A, __U, __B, __C); 559 } 560 __m512 test_mm512_mask3_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { 561 // CHECK-LABEL: @test_mm512_mask3_fmaddsub_ps 562 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.512 563 return _mm512_mask3_fmaddsub_ps(__A, __B, __C, __U); 564 } 565 __m512 test_mm512_maskz_fmaddsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { 566 // CHECK-LABEL: @test_mm512_maskz_fmaddsub_ps 567 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512 568 return _mm512_maskz_fmaddsub_ps(__U, __A, __B, __C); 569 } 570 __m512 test_mm512_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C) { 571 // CHECK-LABEL: @test_mm512_fmsubadd_ps 572 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512 573 return _mm512_fmsubadd_ps(__A, __B, __C); 574 } 575 __m512 test_mm512_mask_fmsubadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { 576 // CHECK-LABEL: @test_mm512_mask_fmsubadd_ps 577 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512 578 return _mm512_mask_fmsubadd_ps(__A, __U, __B, __C); 579 } 580 __m512 test_mm512_maskz_fmsubadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { 581 // CHECK-LABEL: @test_mm512_maskz_fmsubadd_ps 582 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512 583 return _mm512_maskz_fmsubadd_ps(__U, __A, __B, __C); 584 } 585 __m512d test_mm512_mask3_fmsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { 586 // CHECK-LABEL: @test_mm512_mask3_fmsub_round_pd 587 // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.512 588 return _mm512_mask3_fmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT); 589 } 590 __m512d test_mm512_mask3_fmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { 591 // CHECK-LABEL: @test_mm512_mask3_fmsub_pd 592 // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.512 593 return _mm512_mask3_fmsub_pd(__A, __B, __C, __U); 594 } 595 __m512 test_mm512_mask3_fmsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { 596 // CHECK-LABEL: @test_mm512_mask3_fmsub_round_ps 597 // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.512 598 return _mm512_mask3_fmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT); 599 } 600 __m512 test_mm512_mask3_fmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { 601 // CHECK-LABEL: @test_mm512_mask3_fmsub_ps 602 // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.512 603 return _mm512_mask3_fmsub_ps(__A, __B, __C, __U); 604 } 605 __m512d test_mm512_mask3_fmsubadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { 606 // CHECK-LABEL: @test_mm512_mask3_fmsubadd_round_pd 607 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.512 608 return _mm512_mask3_fmsubadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT); 609 } 610 __m512d test_mm512_mask3_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { 611 // CHECK-LABEL: @test_mm512_mask3_fmsubadd_pd 612 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.512 613 return _mm512_mask3_fmsubadd_pd(__A, __B, __C, __U); 614 } 615 __m512 test_mm512_mask3_fmsubadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { 616 // CHECK-LABEL: @test_mm512_mask3_fmsubadd_round_ps 617 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.512 618 return _mm512_mask3_fmsubadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT); 619 } 620 __m512 test_mm512_mask3_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { 621 // CHECK-LABEL: @test_mm512_mask3_fmsubadd_ps 622 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.512 623 return _mm512_mask3_fmsubadd_ps(__A, __B, __C, __U); 624 } 625 __m512d test_mm512_mask_fnmadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { 626 // CHECK-LABEL: @test_mm512_mask_fnmadd_round_pd 627 // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.512 628 return _mm512_mask_fnmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT); 629 } 630 __m512d test_mm512_mask_fnmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { 631 // CHECK-LABEL: @test_mm512_mask_fnmadd_pd 632 // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.512 633 return _mm512_mask_fnmadd_pd(__A, __U, __B, __C); 634 } 635 __m512 test_mm512_mask_fnmadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { 636 // CHECK-LABEL: @test_mm512_mask_fnmadd_round_ps 637 // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.512 638 return _mm512_mask_fnmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT); 639 } 640 __m512 test_mm512_mask_fnmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { 641 // CHECK-LABEL: @test_mm512_mask_fnmadd_ps 642 // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.512 643 return _mm512_mask_fnmadd_ps(__A, __U, __B, __C); 644 } 645 __m512d test_mm512_mask_fnmsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { 646 // CHECK-LABEL: @test_mm512_mask_fnmsub_round_pd 647 // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.512 648 return _mm512_mask_fnmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT); 649 } 650 __m512d test_mm512_mask3_fnmsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { 651 // CHECK-LABEL: @test_mm512_mask3_fnmsub_round_pd 652 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.512 653 return _mm512_mask3_fnmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT); 654 } 655 __m512d test_mm512_mask_fnmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { 656 // CHECK-LABEL: @test_mm512_mask_fnmsub_pd 657 // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.512 658 return _mm512_mask_fnmsub_pd(__A, __U, __B, __C); 659 } 660 __m512d test_mm512_mask3_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { 661 // CHECK-LABEL: @test_mm512_mask3_fnmsub_pd 662 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.512 663 return _mm512_mask3_fnmsub_pd(__A, __B, __C, __U); 664 } 665 __m512 test_mm512_mask_fnmsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { 666 // CHECK-LABEL: @test_mm512_mask_fnmsub_round_ps 667 // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.512 668 return _mm512_mask_fnmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT); 669 } 670 __m512 test_mm512_mask3_fnmsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { 671 // CHECK-LABEL: @test_mm512_mask3_fnmsub_round_ps 672 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.512 673 return _mm512_mask3_fnmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT); 674 } 675 __m512 test_mm512_mask_fnmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { 676 // CHECK-LABEL: @test_mm512_mask_fnmsub_ps 677 // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.512 678 return _mm512_mask_fnmsub_ps(__A, __U, __B, __C); 679 } 680 __m512 test_mm512_mask3_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { 681 // CHECK-LABEL: @test_mm512_mask3_fnmsub_ps 682 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.512 683 return _mm512_mask3_fnmsub_ps(__A, __B, __C, __U); 684 } 685 686 __mmask16 test_mm512_cmpeq_epi32_mask(__m512i __a, __m512i __b) { 687 // CHECK-LABEL: @test_mm512_cmpeq_epi32_mask 688 // CHECK: @llvm.x86.avx512.mask.pcmpeq.d.512 689 return (__mmask16)_mm512_cmpeq_epi32_mask(__a, __b); 690 } 691 692 __mmask16 test_mm512_mask_cmpeq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) { 693 // CHECK-LABEL: @test_mm512_mask_cmpeq_epi32_mask 694 // CHECK: @llvm.x86.avx512.mask.pcmpeq.d.512 695 return (__mmask16)_mm512_mask_cmpeq_epi32_mask(__u, __a, __b); 696 } 697 698 __mmask8 test_mm512_mask_cmpeq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) { 699 // CHECK-LABEL: @test_mm512_mask_cmpeq_epi64_mask 700 // CHECK: @llvm.x86.avx512.mask.pcmpeq.q.512 701 return (__mmask8)_mm512_mask_cmpeq_epi64_mask(__u, __a, __b); 702 } 703 704 __mmask8 test_mm512_cmpeq_epi64_mask(__m512i __a, __m512i __b) { 705 // CHECK-LABEL: @test_mm512_cmpeq_epi64_mask 706 // CHECK: @llvm.x86.avx512.mask.pcmpeq.q.512 707 return (__mmask8)_mm512_cmpeq_epi64_mask(__a, __b); 708 } 709 710 __mmask16 test_mm512_cmpgt_epi32_mask(__m512i __a, __m512i __b) { 711 // CHECK-LABEL: @test_mm512_cmpgt_epi32_mask 712 // CHECK: @llvm.x86.avx512.mask.pcmpgt.d.512 713 return (__mmask16)_mm512_cmpgt_epi32_mask(__a, __b); 714 } 715 716 __mmask16 test_mm512_mask_cmpgt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) { 717 // CHECK-LABEL: @test_mm512_mask_cmpgt_epi32_mask 718 // CHECK: @llvm.x86.avx512.mask.pcmpgt.d.512 719 return (__mmask16)_mm512_mask_cmpgt_epi32_mask(__u, __a, __b); 720 } 721 722 __mmask8 test_mm512_mask_cmpgt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) { 723 // CHECK-LABEL: @test_mm512_mask_cmpgt_epi64_mask 724 // CHECK: @llvm.x86.avx512.mask.pcmpgt.q.512 725 return (__mmask8)_mm512_mask_cmpgt_epi64_mask(__u, __a, __b); 726 } 727 728 __mmask8 test_mm512_cmpgt_epi64_mask(__m512i __a, __m512i __b) { 729 // CHECK-LABEL: @test_mm512_cmpgt_epi64_mask 730 // CHECK: @llvm.x86.avx512.mask.pcmpgt.q.512 731 return (__mmask8)_mm512_cmpgt_epi64_mask(__a, __b); 732 } 733 734 __m512d test_mm512_unpackhi_pd(__m512d a, __m512d b) 735 { 736 // CHECK-LABEL: @test_mm512_unpackhi_pd 737 // CHECK: shufflevector <8 x double> {{.*}} <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> 738 return _mm512_unpackhi_pd(a, b); 739 } 740 741 __m512d test_mm512_unpacklo_pd(__m512d a, __m512d b) 742 { 743 // CHECK-LABEL: @test_mm512_unpacklo_pd 744 // CHECK: shufflevector <8 x double> {{.*}} <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> 745 return _mm512_unpacklo_pd(a, b); 746 } 747 748 __m512 test_mm512_unpackhi_ps(__m512 a, __m512 b) 749 { 750 // CHECK-LABEL: @test_mm512_unpackhi_ps 751 // CHECK: shufflevector <16 x float> {{.*}} <i32 2, i32 18, i32 3, i32 19, i32 6, i32 22, i32 7, i32 23, i32 10, i32 26, i32 11, i32 27, i32 14, i32 30, i32 15, i32 31> 752 return _mm512_unpackhi_ps(a, b); 753 } 754 755 __m512 test_mm512_unpacklo_ps(__m512 a, __m512 b) 756 { 757 // CHECK-LABEL: @test_mm512_unpacklo_ps 758 // CHECK: shufflevector <16 x float> {{.*}} <i32 0, i32 16, i32 1, i32 17, i32 4, i32 20, i32 5, i32 21, i32 8, i32 24, i32 9, i32 25, i32 12, i32 28, i32 13, i32 29> 759 return _mm512_unpacklo_ps(a, b); 760 } 761 762 __mmask16 test_mm512_cmp_round_ps_mask(__m512 a, __m512 b) { 763 // CHECK-LABEL: @test_mm512_cmp_round_ps_mask 764 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512 765 return _mm512_cmp_round_ps_mask(a, b, 0, _MM_FROUND_TO_NEAREST_INT); 766 } 767 768 __mmask16 test_mm512_mask_cmp_round_ps_mask(__mmask16 m, __m512 a, __m512 b) { 769 // CHECK-LABEL: @test_mm512_mask_cmp_round_ps_mask 770 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512 771 return _mm512_mask_cmp_round_ps_mask(m, a, b, 0, _MM_FROUND_TO_NEAREST_INT); 772 } 773 774 __mmask16 test_mm512_cmp_ps_mask(__m512 a, __m512 b) { 775 // CHECK-LABEL: @test_mm512_cmp_ps_mask 776 // CHECKn: @llvm.x86.avx512.mask.cmp.ps.512 777 return _mm512_cmp_ps_mask(a, b, 0); 778 } 779 780 __mmask16 test_mm512_mask_cmp_ps_mask(__mmask16 m, __m512 a, __m512 b) { 781 // CHECK-LABEL: @test_mm512_mask_cmp_ps_mask 782 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512 783 return _mm512_mask_cmp_ps_mask(m, a, b, 0); 784 } 785 786 __mmask8 test_mm512_cmp_round_pd_mask(__m512d a, __m512d b) { 787 // CHECK-LABEL: @test_mm512_cmp_round_pd_mask 788 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512 789 return _mm512_cmp_round_pd_mask(a, b, 0, _MM_FROUND_TO_NEAREST_INT); 790 } 791 792 __mmask8 test_mm512_mask_cmp_round_pd_mask(__mmask8 m, __m512d a, __m512d b) { 793 // CHECK-LABEL: @test_mm512_mask_cmp_round_pd_mask 794 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512 795 return _mm512_mask_cmp_round_pd_mask(m, a, b, 0, _MM_FROUND_TO_NEAREST_INT); 796 } 797 798 __mmask8 test_mm512_cmp_pd_mask(__m512d a, __m512d b) { 799 // CHECK-LABEL: @test_mm512_cmp_pd_mask 800 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512 801 return _mm512_cmp_pd_mask(a, b, 0); 802 } 803 804 __mmask8 test_mm512_mask_cmp_pd_mask(__mmask8 m, __m512d a, __m512d b) { 805 // CHECK-LABEL: @test_mm512_mask_cmp_pd_mask 806 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512 807 return _mm512_mask_cmp_pd_mask(m, a, b, 0); 808 } 809 810 __m256d test_mm512_extractf64x4_pd(__m512d a) 811 { 812 // CHECK-LABEL: @test_mm512_extractf64x4_pd 813 // CHECK: @llvm.x86.avx512.mask.vextractf64x4.512 814 return _mm512_extractf64x4_pd(a, 1); 815 } 816 817 __m128 test_mm512_extractf32x4_ps(__m512 a) 818 { 819 // CHECK-LABEL: @test_mm512_extractf32x4_ps 820 // CHECK: @llvm.x86.avx512.mask.vextractf32x4.512 821 return _mm512_extractf32x4_ps(a, 1); 822 } 823 824 __mmask16 test_mm512_cmpeq_epu32_mask(__m512i __a, __m512i __b) { 825 // CHECK-LABEL: @test_mm512_cmpeq_epu32_mask 826 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 0, i16 -1) 827 return (__mmask16)_mm512_cmpeq_epu32_mask(__a, __b); 828 } 829 830 __mmask16 test_mm512_mask_cmpeq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) { 831 // CHECK-LABEL: @test_mm512_mask_cmpeq_epu32_mask 832 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 0, i16 {{.*}}) 833 return (__mmask16)_mm512_mask_cmpeq_epu32_mask(__u, __a, __b); 834 } 835 836 __mmask8 test_mm512_cmpeq_epu64_mask(__m512i __a, __m512i __b) { 837 // CHECK-LABEL: @test_mm512_cmpeq_epu64_mask 838 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 0, i8 -1) 839 return (__mmask8)_mm512_cmpeq_epu64_mask(__a, __b); 840 } 841 842 __mmask8 test_mm512_mask_cmpeq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) { 843 // CHECK-LABEL: @test_mm512_mask_cmpeq_epu64_mask 844 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 0, i8 {{.*}}) 845 return (__mmask8)_mm512_mask_cmpeq_epu64_mask(__u, __a, __b); 846 } 847 848 __mmask16 test_mm512_cmpge_epi32_mask(__m512i __a, __m512i __b) { 849 // CHECK-LABEL: @test_mm512_cmpge_epi32_mask 850 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 5, i16 -1) 851 return (__mmask16)_mm512_cmpge_epi32_mask(__a, __b); 852 } 853 854 __mmask16 test_mm512_mask_cmpge_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) { 855 // CHECK-LABEL: @test_mm512_mask_cmpge_epi32_mask 856 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 5, i16 {{.*}}) 857 return (__mmask16)_mm512_mask_cmpge_epi32_mask(__u, __a, __b); 858 } 859 860 __mmask8 test_mm512_cmpge_epi64_mask(__m512i __a, __m512i __b) { 861 // CHECK-LABEL: @test_mm512_cmpge_epi64_mask 862 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 5, i8 -1) 863 return (__mmask8)_mm512_cmpge_epi64_mask(__a, __b); 864 } 865 866 __mmask8 test_mm512_mask_cmpge_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) { 867 // CHECK-LABEL: @test_mm512_mask_cmpge_epi64_mask 868 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 5, i8 {{.*}}) 869 return (__mmask8)_mm512_mask_cmpge_epi64_mask(__u, __a, __b); 870 } 871 872 __mmask16 test_mm512_cmpge_epu32_mask(__m512i __a, __m512i __b) { 873 // CHECK-LABEL: @test_mm512_cmpge_epu32_mask 874 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 5, i16 -1) 875 return (__mmask16)_mm512_cmpge_epu32_mask(__a, __b); 876 } 877 878 __mmask16 test_mm512_mask_cmpge_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) { 879 // CHECK-LABEL: @test_mm512_mask_cmpge_epu32_mask 880 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 5, i16 {{.*}}) 881 return (__mmask16)_mm512_mask_cmpge_epu32_mask(__u, __a, __b); 882 } 883 884 __mmask8 test_mm512_cmpge_epu64_mask(__m512i __a, __m512i __b) { 885 // CHECK-LABEL: @test_mm512_cmpge_epu64_mask 886 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 5, i8 -1) 887 return (__mmask8)_mm512_cmpge_epu64_mask(__a, __b); 888 } 889 890 __mmask8 test_mm512_mask_cmpge_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) { 891 // CHECK-LABEL: @test_mm512_mask_cmpge_epu64_mask 892 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 5, i8 {{.*}}) 893 return (__mmask8)_mm512_mask_cmpge_epu64_mask(__u, __a, __b); 894 } 895 896 __mmask16 test_mm512_cmpgt_epu32_mask(__m512i __a, __m512i __b) { 897 // CHECK-LABEL: @test_mm512_cmpgt_epu32_mask 898 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 6, i16 -1) 899 return (__mmask16)_mm512_cmpgt_epu32_mask(__a, __b); 900 } 901 902 __mmask16 test_mm512_mask_cmpgt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) { 903 // CHECK-LABEL: @test_mm512_mask_cmpgt_epu32_mask 904 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 6, i16 {{.*}}) 905 return (__mmask16)_mm512_mask_cmpgt_epu32_mask(__u, __a, __b); 906 } 907 908 __mmask8 test_mm512_cmpgt_epu64_mask(__m512i __a, __m512i __b) { 909 // CHECK-LABEL: @test_mm512_cmpgt_epu64_mask 910 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 6, i8 -1) 911 return (__mmask8)_mm512_cmpgt_epu64_mask(__a, __b); 912 } 913 914 __mmask8 test_mm512_mask_cmpgt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) { 915 // CHECK-LABEL: @test_mm512_mask_cmpgt_epu64_mask 916 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 6, i8 {{.*}}) 917 return (__mmask8)_mm512_mask_cmpgt_epu64_mask(__u, __a, __b); 918 } 919 920 __mmask16 test_mm512_cmple_epi32_mask(__m512i __a, __m512i __b) { 921 // CHECK-LABEL: @test_mm512_cmple_epi32_mask 922 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 2, i16 -1) 923 return (__mmask16)_mm512_cmple_epi32_mask(__a, __b); 924 } 925 926 __mmask16 test_mm512_mask_cmple_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) { 927 // CHECK-LABEL: @test_mm512_mask_cmple_epi32_mask 928 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 2, i16 {{.*}}) 929 return (__mmask16)_mm512_mask_cmple_epi32_mask(__u, __a, __b); 930 } 931 932 __mmask8 test_mm512_cmple_epi64_mask(__m512i __a, __m512i __b) { 933 // CHECK-LABEL: @test_mm512_cmple_epi64_mask 934 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 2, i8 -1) 935 return (__mmask8)_mm512_cmple_epi64_mask(__a, __b); 936 } 937 938 __mmask8 test_mm512_mask_cmple_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) { 939 // CHECK-LABEL: @test_mm512_mask_cmple_epi64_mask 940 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 2, i8 {{.*}}) 941 return (__mmask8)_mm512_mask_cmple_epi64_mask(__u, __a, __b); 942 } 943 944 __mmask16 test_mm512_cmple_epu32_mask(__m512i __a, __m512i __b) { 945 // CHECK-LABEL: @test_mm512_cmple_epu32_mask 946 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 2, i16 -1) 947 return (__mmask16)_mm512_cmple_epu32_mask(__a, __b); 948 } 949 950 __mmask16 test_mm512_mask_cmple_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) { 951 // CHECK-LABEL: @test_mm512_mask_cmple_epu32_mask 952 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 2, i16 {{.*}}) 953 return (__mmask16)_mm512_mask_cmple_epu32_mask(__u, __a, __b); 954 } 955 956 __mmask8 test_mm512_cmple_epu64_mask(__m512i __a, __m512i __b) { 957 // CHECK-LABEL: @test_mm512_cmple_epu64_mask 958 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 2, i8 -1) 959 return (__mmask8)_mm512_cmple_epu64_mask(__a, __b); 960 } 961 962 __mmask8 test_mm512_mask_cmple_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) { 963 // CHECK-LABEL: @test_mm512_mask_cmple_epu64_mask 964 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 2, i8 {{.*}}) 965 return (__mmask8)_mm512_mask_cmple_epu64_mask(__u, __a, __b); 966 } 967 968 __mmask16 test_mm512_cmplt_epi32_mask(__m512i __a, __m512i __b) { 969 // CHECK-LABEL: @test_mm512_cmplt_epi32_mask 970 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 1, i16 -1) 971 return (__mmask16)_mm512_cmplt_epi32_mask(__a, __b); 972 } 973 974 __mmask16 test_mm512_mask_cmplt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) { 975 // CHECK-LABEL: @test_mm512_mask_cmplt_epi32_mask 976 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 1, i16 {{.*}}) 977 return (__mmask16)_mm512_mask_cmplt_epi32_mask(__u, __a, __b); 978 } 979 980 __mmask8 test_mm512_cmplt_epi64_mask(__m512i __a, __m512i __b) { 981 // CHECK-LABEL: @test_mm512_cmplt_epi64_mask 982 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 1, i8 -1) 983 return (__mmask8)_mm512_cmplt_epi64_mask(__a, __b); 984 } 985 986 __mmask8 test_mm512_mask_cmplt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) { 987 // CHECK-LABEL: @test_mm512_mask_cmplt_epi64_mask 988 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 1, i8 {{.*}}) 989 return (__mmask8)_mm512_mask_cmplt_epi64_mask(__u, __a, __b); 990 } 991 992 __mmask16 test_mm512_cmplt_epu32_mask(__m512i __a, __m512i __b) { 993 // CHECK-LABEL: @test_mm512_cmplt_epu32_mask 994 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 1, i16 -1) 995 return (__mmask16)_mm512_cmplt_epu32_mask(__a, __b); 996 } 997 998 __mmask16 test_mm512_mask_cmplt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) { 999 // CHECK-LABEL: @test_mm512_mask_cmplt_epu32_mask 1000 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 1, i16 {{.*}}) 1001 return (__mmask16)_mm512_mask_cmplt_epu32_mask(__u, __a, __b); 1002 } 1003 1004 __mmask8 test_mm512_cmplt_epu64_mask(__m512i __a, __m512i __b) { 1005 // CHECK-LABEL: @test_mm512_cmplt_epu64_mask 1006 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 1, i8 -1) 1007 return (__mmask8)_mm512_cmplt_epu64_mask(__a, __b); 1008 } 1009 1010 __mmask8 test_mm512_mask_cmplt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) { 1011 // CHECK-LABEL: @test_mm512_mask_cmplt_epu64_mask 1012 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 1, i8 {{.*}}) 1013 return (__mmask8)_mm512_mask_cmplt_epu64_mask(__u, __a, __b); 1014 } 1015 1016 __mmask16 test_mm512_cmpneq_epi32_mask(__m512i __a, __m512i __b) { 1017 // CHECK-LABEL: @test_mm512_cmpneq_epi32_mask 1018 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 4, i16 -1) 1019 return (__mmask16)_mm512_cmpneq_epi32_mask(__a, __b); 1020 } 1021 1022 __mmask16 test_mm512_mask_cmpneq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) { 1023 // CHECK-LABEL: @test_mm512_mask_cmpneq_epi32_mask 1024 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 4, i16 {{.*}}) 1025 return (__mmask16)_mm512_mask_cmpneq_epi32_mask(__u, __a, __b); 1026 } 1027 1028 __mmask8 test_mm512_cmpneq_epi64_mask(__m512i __a, __m512i __b) { 1029 // CHECK-LABEL: @test_mm512_cmpneq_epi64_mask 1030 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 4, i8 -1) 1031 return (__mmask8)_mm512_cmpneq_epi64_mask(__a, __b); 1032 } 1033 1034 __mmask8 test_mm512_mask_cmpneq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) { 1035 // CHECK-LABEL: @test_mm512_mask_cmpneq_epi64_mask 1036 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 4, i8 {{.*}}) 1037 return (__mmask8)_mm512_mask_cmpneq_epi64_mask(__u, __a, __b); 1038 } 1039 1040 __mmask16 test_mm512_cmpneq_epu32_mask(__m512i __a, __m512i __b) { 1041 // CHECK-LABEL: @test_mm512_cmpneq_epu32_mask 1042 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 4, i16 -1) 1043 return (__mmask16)_mm512_cmpneq_epu32_mask(__a, __b); 1044 } 1045 1046 __mmask16 test_mm512_mask_cmpneq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) { 1047 // CHECK-LABEL: @test_mm512_mask_cmpneq_epu32_mask 1048 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 4, i16 {{.*}}) 1049 return (__mmask16)_mm512_mask_cmpneq_epu32_mask(__u, __a, __b); 1050 } 1051 1052 __mmask8 test_mm512_cmpneq_epu64_mask(__m512i __a, __m512i __b) { 1053 // CHECK-LABEL: @test_mm512_cmpneq_epu64_mask 1054 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 4, i8 -1) 1055 return (__mmask8)_mm512_cmpneq_epu64_mask(__a, __b); 1056 } 1057 1058 __mmask8 test_mm512_mask_cmpneq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) { 1059 // CHECK-LABEL: @test_mm512_mask_cmpneq_epu64_mask 1060 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 4, i8 {{.*}}) 1061 return (__mmask8)_mm512_mask_cmpneq_epu64_mask(__u, __a, __b); 1062 } 1063 1064 __mmask16 test_mm512_cmp_epi32_mask(__m512i __a, __m512i __b) { 1065 // CHECK-LABEL: @test_mm512_cmp_epi32_mask 1066 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 3, i16 -1) 1067 return (__mmask16)_mm512_cmp_epi32_mask(__a, __b, 3); 1068 } 1069 1070 __mmask16 test_mm512_mask_cmp_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) { 1071 // CHECK-LABEL: @test_mm512_mask_cmp_epi32_mask 1072 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 3, i16 {{.*}}) 1073 return (__mmask16)_mm512_mask_cmp_epi32_mask(__u, __a, __b, 3); 1074 } 1075 1076 __mmask8 test_mm512_cmp_epi64_mask(__m512i __a, __m512i __b) { 1077 // CHECK-LABEL: @test_mm512_cmp_epi64_mask 1078 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 3, i8 -1) 1079 return (__mmask8)_mm512_cmp_epi64_mask(__a, __b, 3); 1080 } 1081 1082 __mmask8 test_mm512_mask_cmp_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) { 1083 // CHECK-LABEL: @test_mm512_mask_cmp_epi64_mask 1084 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 3, i8 {{.*}}) 1085 return (__mmask8)_mm512_mask_cmp_epi64_mask(__u, __a, __b, 3); 1086 } 1087 1088 __mmask16 test_mm512_cmp_epu32_mask(__m512i __a, __m512i __b) { 1089 // CHECK-LABEL: @test_mm512_cmp_epu32_mask 1090 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 3, i16 -1) 1091 return (__mmask16)_mm512_cmp_epu32_mask(__a, __b, 3); 1092 } 1093 1094 __mmask16 test_mm512_mask_cmp_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) { 1095 // CHECK-LABEL: @test_mm512_mask_cmp_epu32_mask 1096 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 3, i16 {{.*}}) 1097 return (__mmask16)_mm512_mask_cmp_epu32_mask(__u, __a, __b, 3); 1098 } 1099 1100 __mmask8 test_mm512_cmp_epu64_mask(__m512i __a, __m512i __b) { 1101 // CHECK-LABEL: @test_mm512_cmp_epu64_mask 1102 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 3, i8 -1) 1103 return (__mmask8)_mm512_cmp_epu64_mask(__a, __b, 3); 1104 } 1105 1106 __mmask8 test_mm512_mask_cmp_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) { 1107 // CHECK-LABEL: @test_mm512_mask_cmp_epu64_mask 1108 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 3, i8 {{.*}}) 1109 return (__mmask8)_mm512_mask_cmp_epu64_mask(__u, __a, __b, 3); 1110 } 1111 1112 __m512i test_mm512_mask_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) { 1113 // CHECK-LABEL: @test_mm512_mask_and_epi32 1114 // CHECK: @llvm.x86.avx512.mask.pand.d.512 1115 return _mm512_mask_and_epi32(__src, __k,__a, __b); 1116 } 1117 1118 __m512i test_mm512_maskz_and_epi32(__mmask16 __k, __m512i __a, __m512i __b) { 1119 // CHECK-LABEL: @test_mm512_maskz_and_epi32 1120 // CHECK: @llvm.x86.avx512.mask.pand.d.512 1121 return _mm512_maskz_and_epi32(__k,__a, __b); 1122 } 1123 1124 __m512i test_mm512_mask_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) { 1125 // CHECK-LABEL: @test_mm512_mask_and_epi64 1126 // CHECK: @llvm.x86.avx512.mask.pand.q.512 1127 return _mm512_mask_and_epi64(__src, __k,__a, __b); 1128 } 1129 1130 __m512i test_mm512_maskz_and_epi64(__mmask8 __k, __m512i __a, __m512i __b) { 1131 // CHECK-LABEL: @test_mm512_maskz_and_epi64 1132 // CHECK: @llvm.x86.avx512.mask.pand.q.512 1133 return _mm512_maskz_and_epi64(__k,__a, __b); 1134 } 1135 1136 __m512i test_mm512_mask_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) { 1137 // CHECK-LABEL: @test_mm512_mask_or_epi32 1138 // CHECK: @llvm.x86.avx512.mask.por.d.512 1139 return _mm512_mask_or_epi32(__src, __k,__a, __b); 1140 } 1141 1142 __m512i test_mm512_maskz_or_epi32(__mmask16 __k, __m512i __a, __m512i __b) { 1143 // CHECK-LABEL: @test_mm512_maskz_or_epi32 1144 // CHECK: @llvm.x86.avx512.mask.por.d.512 1145 return _mm512_maskz_or_epi32(__k,__a, __b); 1146 } 1147 1148 __m512i test_mm512_mask_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) { 1149 // CHECK-LABEL: @test_mm512_mask_or_epi64 1150 // CHECK: @llvm.x86.avx512.mask.por.q.512 1151 return _mm512_mask_or_epi64(__src, __k,__a, __b); 1152 } 1153 1154 __m512i test_mm512_maskz_or_epi64(__mmask8 __k, __m512i __a, __m512i __b) { 1155 // CHECK-LABEL: @test_mm512_maskz_or_epi64 1156 // CHECK: @llvm.x86.avx512.mask.por.q.512 1157 return _mm512_maskz_or_epi64(__k,__a, __b); 1158 } 1159 1160 __m512i test_mm512_mask_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) { 1161 // CHECK-LABEL: @test_mm512_mask_xor_epi32 1162 // CHECK: @llvm.x86.avx512.mask.pxor.d.512 1163 return _mm512_mask_xor_epi32(__src, __k,__a, __b); 1164 } 1165 1166 __m512i test_mm512_maskz_xor_epi32(__mmask16 __k, __m512i __a, __m512i __b) { 1167 // CHECK-LABEL: @test_mm512_maskz_xor_epi32 1168 // CHECK: @llvm.x86.avx512.mask.pxor.d.512 1169 return _mm512_maskz_xor_epi32(__k,__a, __b); 1170 } 1171 1172 __m512i test_mm512_mask_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) { 1173 // CHECK-LABEL: @test_mm512_mask_xor_epi64 1174 // CHECK: @llvm.x86.avx512.mask.pxor.q.512 1175 return _mm512_mask_xor_epi64(__src, __k,__a, __b); 1176 } 1177 1178 __m512i test_mm512_maskz_xor_epi64(__mmask8 __k, __m512i __a, __m512i __b) { 1179 // CHECK-LABEL: @test_mm512_maskz_xor_epi64 1180 // CHECK: @llvm.x86.avx512.mask.pxor.q.512 1181 return _mm512_maskz_xor_epi64(__k,__a, __b); 1182 } 1183 1184 __m512i test_mm512_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) { 1185 // CHECK-LABEL: @test_mm512_and_epi32 1186 // CHECK: and <8 x i64> 1187 return _mm512_and_epi32(__a, __b); 1188 } 1189 1190 __m512i test_mm512_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) { 1191 // CHECK-LABEL: @test_mm512_and_epi64 1192 // CHECK: and <8 x i64> 1193 return _mm512_and_epi64(__a, __b); 1194 } 1195 1196 __m512i test_mm512_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) { 1197 // CHECK-LABEL: @test_mm512_or_epi32 1198 // CHECK: or <8 x i64> 1199 return _mm512_or_epi32(__a, __b); 1200 } 1201 1202 __m512i test_mm512_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) { 1203 // CHECK-LABEL: @test_mm512_or_epi64 1204 // CHECK: or <8 x i64> 1205 return _mm512_or_epi64(__a, __b); 1206 } 1207 1208 __m512i test_mm512_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) { 1209 // CHECK-LABEL: @test_mm512_xor_epi32 1210 // CHECK: xor <8 x i64> 1211 return _mm512_xor_epi32(__a, __b); 1212 } 1213 1214 __m512i test_mm512_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) { 1215 // CHECK-LABEL: @test_mm512_xor_epi64 1216 // CHECK: xor <8 x i64> 1217 return _mm512_xor_epi64(__a, __b); 1218 } 1219 1220 __m512i test_mm512_maskz_andnot_epi32 (__mmask16 __k,__m512i __A, __m512i __B){ 1221 //CHECK-LABEL: @test_mm512_maskz_andnot_epi32 1222 //CHECK: @llvm.x86.avx512.mask.pandn.d.512 1223 return _mm512_maskz_andnot_epi32(__k,__A,__B); 1224 } 1225 1226 __m512i test_mm512_mask_andnot_epi32 (__mmask16 __k,__m512i __A, __m512i __B, 1227 __m512i __src) { 1228 //CHECK-LABEL: @test_mm512_mask_andnot_epi32 1229 //CHECK: @llvm.x86.avx512.mask.pandn.d.512 1230 return _mm512_mask_andnot_epi32(__src,__k,__A,__B); 1231 } 1232 1233 __m512i test_mm512_andnot_epi32(__m512i __A, __m512i __B) { 1234 //CHECK-LABEL: @test_mm512_andnot_epi32 1235 //CHECK: @llvm.x86.avx512.mask.pandn.d.512 1236 return _mm512_andnot_epi32(__A,__B); 1237 } 1238 1239 __m512i test_mm512_maskz_andnot_epi64 (__mmask8 __k,__m512i __A, __m512i __B) { 1240 //CHECK-LABEL: @test_mm512_maskz_andnot_epi64 1241 //CHECK: @llvm.x86.avx512.mask.pandn.q.512 1242 return _mm512_maskz_andnot_epi64(__k,__A,__B); 1243 } 1244 1245 __m512i test_mm512_mask_andnot_epi64 (__mmask8 __k,__m512i __A, __m512i __B, 1246 __m512i __src) { 1247 //CHECK-LABEL: @test_mm512_mask_andnot_epi64 1248 //CHECK: @llvm.x86.avx512.mask.pandn.q.512 1249 return _mm512_mask_andnot_epi64(__src,__k,__A,__B); 1250 } 1251 1252 __m512i test_mm512_andnot_epi64(__m512i __A, __m512i __B) { 1253 //CHECK-LABEL: @test_mm512_andnot_epi64 1254 //CHECK: @llvm.x86.avx512.mask.pandn.q.512 1255 return _mm512_andnot_epi64(__A,__B); 1256 } 1257 1258 __m512i test_mm512_maskz_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B) { 1259 //CHECK-LABEL: @test_mm512_maskz_sub_epi32 1260 //CHECK: @llvm.x86.avx512.mask.psub.d.512 1261 return _mm512_maskz_sub_epi32(__k,__A,__B); 1262 } 1263 1264 __m512i test_mm512_mask_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B, 1265 __m512i __src) { 1266 //CHECK-LABEL: @test_mm512_mask_sub_epi32 1267 //CHECK: @llvm.x86.avx512.mask.psub.d.512 1268 return _mm512_mask_sub_epi32(__src,__k,__A,__B); 1269 } 1270 1271 __m512i test_mm512_sub_epi32(__m512i __A, __m512i __B) { 1272 //CHECK-LABEL: @test_mm512_sub_epi32 1273 //CHECK: sub <16 x i32> 1274 return _mm512_sub_epi32(__A,__B); 1275 } 1276 1277 __m512i test_mm512_maskz_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B) { 1278 //CHECK-LABEL: @test_mm512_maskz_sub_epi64 1279 //CHECK: @llvm.x86.avx512.mask.psub.q.512 1280 return _mm512_maskz_sub_epi64(__k,__A,__B); 1281 } 1282 1283 __m512i test_mm512_mask_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B, 1284 __m512i __src) { 1285 //CHECK-LABEL: @test_mm512_mask_sub_epi64 1286 //CHECK: @llvm.x86.avx512.mask.psub.q.512 1287 return _mm512_mask_sub_epi64(__src,__k,__A,__B); 1288 } 1289 1290 __m512i test_mm512_sub_epi64(__m512i __A, __m512i __B) { 1291 //CHECK-LABEL: @test_mm512_sub_epi64 1292 //CHECK: sub <8 x i64> 1293 return _mm512_sub_epi64(__A,__B); 1294 } 1295 1296 __m512i test_mm512_maskz_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B) { 1297 //CHECK-LABEL: @test_mm512_maskz_add_epi32 1298 //CHECK: @llvm.x86.avx512.mask.padd.d.512 1299 return _mm512_maskz_add_epi32(__k,__A,__B); 1300 } 1301 1302 __m512i test_mm512_mask_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B, 1303 __m512i __src) { 1304 //CHECK-LABEL: @test_mm512_mask_add_epi32 1305 //CHECK: @llvm.x86.avx512.mask.padd.d.512 1306 return _mm512_mask_add_epi32(__src,__k,__A,__B); 1307 } 1308 1309 __m512i test_mm512_add_epi32(__m512i __A, __m512i __B) { 1310 //CHECK-LABEL: @test_mm512_add_epi32 1311 //CHECK: add <16 x i32> 1312 return _mm512_add_epi32(__A,__B); 1313 } 1314 1315 __m512i test_mm512_maskz_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B) { 1316 //CHECK-LABEL: @test_mm512_maskz_add_epi64 1317 //CHECK: @llvm.x86.avx512.mask.padd.q.512 1318 return _mm512_maskz_add_epi64(__k,__A,__B); 1319 } 1320 1321 __m512i test_mm512_mask_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B, 1322 __m512i __src) { 1323 //CHECK-LABEL: @test_mm512_mask_add_epi64 1324 //CHECK: @llvm.x86.avx512.mask.padd.q.512 1325 return _mm512_mask_add_epi64(__src,__k,__A,__B); 1326 } 1327 1328 __m512i test_mm512_add_epi64(__m512i __A, __m512i __B) { 1329 //CHECK-LABEL: @test_mm512_add_epi64 1330 //CHECK: add <8 x i64> 1331 return _mm512_add_epi64(__A,__B); 1332 } 1333 1334 __m512i test_mm512_maskz_mul_epi32 (__mmask16 __k,__m512i __A, __m512i __B) { 1335 //CHECK-LABEL: @test_mm512_maskz_mul_epi32 1336 //CHECK: @llvm.x86.avx512.mask.pmul.dq.512 1337 return _mm512_maskz_mul_epi32(__k,__A,__B); 1338 } 1339 1340 __m512i test_mm512_mask_mul_epi32 (__mmask16 __k,__m512i __A, __m512i __B, 1341 __m512i __src) { 1342 //CHECK-LABEL: @test_mm512_mask_mul_epi32 1343 //CHECK: @llvm.x86.avx512.mask.pmul.dq.512 1344 return _mm512_mask_mul_epi32(__src,__k,__A,__B); 1345 } 1346 1347 __m512i test_mm512_maskz_mul_epu32 (__mmask16 __k,__m512i __A, __m512i __B) { 1348 //CHECK-LABEL: @test_mm512_maskz_mul_epu32 1349 //CHECK: @llvm.x86.avx512.mask.pmulu.dq.512 1350 return _mm512_maskz_mul_epu32(__k,__A,__B); 1351 } 1352 1353 __m512i test_mm512_mask_mul_epu32 (__mmask16 __k,__m512i __A, __m512i __B, 1354 __m512i __src) { 1355 //CHECK-LABEL: @test_mm512_mask_mul_epu32 1356 //CHECK: @llvm.x86.avx512.mask.pmulu.dq.512 1357 return _mm512_mask_mul_epu32(__src,__k,__A,__B); 1358 } 1359 1360 __m512i test_mm512_maskz_mullo_epi32 (__mmask16 __k,__m512i __A, __m512i __B) { 1361 //CHECK-LABEL: @test_mm512_maskz_mullo_epi32 1362 //CHECK: @llvm.x86.avx512.mask.pmull.d.512 1363 return _mm512_maskz_mullo_epi32(__k,__A,__B); 1364 } 1365 1366 __m512i test_mm512_mask_mullo_epi32 (__mmask16 __k,__m512i __A, __m512i __B, __m512i __src) { 1367 //CHECK-LABEL: @test_mm512_mask_mullo_epi32 1368 //CHECK: @llvm.x86.avx512.mask.pmull.d.512 1369 return _mm512_mask_mullo_epi32(__src,__k,__A,__B); 1370 } 1371 1372 __m512i test_mm512_mullo_epi32(__m512i __A, __m512i __B) { 1373 //CHECK-LABEL: @test_mm512_mullo_epi32 1374 //CHECK: mul <16 x i32> 1375 return _mm512_mullo_epi32(__A,__B); 1376 } 1377 1378 __m512d test_mm512_add_round_pd(__m512d __A, __m512d __B) { 1379 // CHECK-LABEL: @test_mm512_add_round_pd 1380 // CHECK: @llvm.x86.avx512.mask.add.pd.512 1381 return _mm512_add_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1382 } 1383 __m512d test_mm512_mask_add_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { 1384 // CHECK-LABEL: @test_mm512_mask_add_round_pd 1385 // CHECK: @llvm.x86.avx512.mask.add.pd.512 1386 return _mm512_mask_add_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1387 } 1388 __m512d test_mm512_maskz_add_round_pd(__mmask8 __U, __m512d __A, __m512d __B) { 1389 // CHECK-LABEL: @test_mm512_maskz_add_round_pd 1390 // CHECK: @llvm.x86.avx512.mask.add.pd.512 1391 return _mm512_maskz_add_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1392 } 1393 __m512d test_mm512_mask_add_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { 1394 // CHECK-LABEL: @test_mm512_mask_add_pd 1395 // CHECK: @llvm.x86.avx512.mask.add.pd.512 1396 return _mm512_mask_add_pd(__W,__U,__A,__B); 1397 } 1398 __m512d test_mm512_maskz_add_pd(__mmask8 __U, __m512d __A, __m512d __B) { 1399 // CHECK-LABEL: @test_mm512_maskz_add_pd 1400 // CHECK: @llvm.x86.avx512.mask.add.pd.512 1401 return _mm512_maskz_add_pd(__U,__A,__B); 1402 } 1403 __m512 test_mm512_add_round_ps(__m512 __A, __m512 __B) { 1404 // CHECK-LABEL: @test_mm512_add_round_ps 1405 // CHECK: @llvm.x86.avx512.mask.add.ps.512 1406 return _mm512_add_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1407 } 1408 __m512 test_mm512_mask_add_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { 1409 // CHECK-LABEL: @test_mm512_mask_add_round_ps 1410 // CHECK: @llvm.x86.avx512.mask.add.ps.512 1411 return _mm512_mask_add_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1412 } 1413 __m512 test_mm512_maskz_add_round_ps(__mmask16 __U, __m512 __A, __m512 __B) { 1414 // CHECK-LABEL: @test_mm512_maskz_add_round_ps 1415 // CHECK: @llvm.x86.avx512.mask.add.ps.512 1416 return _mm512_maskz_add_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1417 } 1418 __m512 test_mm512_mask_add_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { 1419 // CHECK-LABEL: @test_mm512_mask_add_ps 1420 // CHECK: @llvm.x86.avx512.mask.add.ps.512 1421 return _mm512_mask_add_ps(__W,__U,__A,__B); 1422 } 1423 __m512 test_mm512_maskz_add_ps(__mmask16 __U, __m512 __A, __m512 __B) { 1424 // CHECK-LABEL: @test_mm512_maskz_add_ps 1425 // CHECK: @llvm.x86.avx512.mask.add.ps.512 1426 return _mm512_maskz_add_ps(__U,__A,__B); 1427 } 1428 __m128 test_mm_add_round_ss(__m128 __A, __m128 __B) { 1429 // CHECK-LABEL: @test_mm_add_round_ss 1430 // CHECK: @llvm.x86.avx512.mask.add.ss.round 1431 return _mm_add_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1432 } 1433 __m128 test_mm_mask_add_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 1434 // CHECK-LABEL: @test_mm_mask_add_round_ss 1435 // CHECK: @llvm.x86.avx512.mask.add.ss.round 1436 return _mm_mask_add_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1437 } 1438 __m128 test_mm_maskz_add_round_ss(__mmask8 __U, __m128 __A, __m128 __B) { 1439 // CHECK-LABEL: @test_mm_maskz_add_round_ss 1440 // CHECK: @llvm.x86.avx512.mask.add.ss.round 1441 return _mm_maskz_add_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1442 } 1443 __m128 test_mm_mask_add_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 1444 // CHECK-LABEL: @test_mm_mask_add_ss 1445 // CHECK: @llvm.x86.avx512.mask.add.ss.round 1446 return _mm_mask_add_ss(__W,__U,__A,__B); 1447 } 1448 __m128 test_mm_maskz_add_ss(__mmask8 __U, __m128 __A, __m128 __B) { 1449 // CHECK-LABEL: @test_mm_maskz_add_ss 1450 // CHECK: @llvm.x86.avx512.mask.add.ss.round 1451 return _mm_maskz_add_ss(__U,__A,__B); 1452 } 1453 __m128d test_mm_add_round_sd(__m128d __A, __m128d __B) { 1454 // CHECK-LABEL: @test_mm_add_round_sd 1455 // CHECK: @llvm.x86.avx512.mask.add.sd.round 1456 return _mm_add_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1457 } 1458 __m128d test_mm_mask_add_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 1459 // CHECK-LABEL: @test_mm_mask_add_round_sd 1460 // CHECK: @llvm.x86.avx512.mask.add.sd.round 1461 return _mm_mask_add_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1462 } 1463 __m128d test_mm_maskz_add_round_sd(__mmask8 __U, __m128d __A, __m128d __B) { 1464 // CHECK-LABEL: @test_mm_maskz_add_round_sd 1465 // CHECK: @llvm.x86.avx512.mask.add.sd.round 1466 return _mm_maskz_add_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1467 } 1468 __m128d test_mm_mask_add_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 1469 // CHECK-LABEL: @test_mm_mask_add_sd 1470 // CHECK: @llvm.x86.avx512.mask.add.sd.round 1471 return _mm_mask_add_sd(__W,__U,__A,__B); 1472 } 1473 __m128d test_mm_maskz_add_sd(__mmask8 __U, __m128d __A, __m128d __B) { 1474 // CHECK-LABEL: @test_mm_maskz_add_sd 1475 // CHECK: @llvm.x86.avx512.mask.add.sd.round 1476 return _mm_maskz_add_sd(__U,__A,__B); 1477 } 1478 __m512d test_mm512_sub_round_pd(__m512d __A, __m512d __B) { 1479 // CHECK-LABEL: @test_mm512_sub_round_pd 1480 // CHECK: @llvm.x86.avx512.mask.sub.pd.512 1481 return _mm512_sub_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1482 } 1483 __m512d test_mm512_mask_sub_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { 1484 // CHECK-LABEL: @test_mm512_mask_sub_round_pd 1485 // CHECK: @llvm.x86.avx512.mask.sub.pd.512 1486 return _mm512_mask_sub_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1487 } 1488 __m512d test_mm512_maskz_sub_round_pd(__mmask8 __U, __m512d __A, __m512d __B) { 1489 // CHECK-LABEL: @test_mm512_maskz_sub_round_pd 1490 // CHECK: @llvm.x86.avx512.mask.sub.pd.512 1491 return _mm512_maskz_sub_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1492 } 1493 __m512d test_mm512_mask_sub_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { 1494 // CHECK-LABEL: @test_mm512_mask_sub_pd 1495 // CHECK: @llvm.x86.avx512.mask.sub.pd.512 1496 return _mm512_mask_sub_pd(__W,__U,__A,__B); 1497 } 1498 __m512d test_mm512_maskz_sub_pd(__mmask8 __U, __m512d __A, __m512d __B) { 1499 // CHECK-LABEL: @test_mm512_maskz_sub_pd 1500 // CHECK: @llvm.x86.avx512.mask.sub.pd.512 1501 return _mm512_maskz_sub_pd(__U,__A,__B); 1502 } 1503 __m512 test_mm512_sub_round_ps(__m512 __A, __m512 __B) { 1504 // CHECK-LABEL: @test_mm512_sub_round_ps 1505 // CHECK: @llvm.x86.avx512.mask.sub.ps.512 1506 return _mm512_sub_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1507 } 1508 __m512 test_mm512_mask_sub_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { 1509 // CHECK-LABEL: @test_mm512_mask_sub_round_ps 1510 // CHECK: @llvm.x86.avx512.mask.sub.ps.512 1511 return _mm512_mask_sub_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1512 } 1513 __m512 test_mm512_maskz_sub_round_ps(__mmask16 __U, __m512 __A, __m512 __B) { 1514 // CHECK-LABEL: @test_mm512_maskz_sub_round_ps 1515 // CHECK: @llvm.x86.avx512.mask.sub.ps.512 1516 return _mm512_maskz_sub_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1517 } 1518 __m512 test_mm512_mask_sub_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { 1519 // CHECK-LABEL: @test_mm512_mask_sub_ps 1520 // CHECK: @llvm.x86.avx512.mask.sub.ps.512 1521 return _mm512_mask_sub_ps(__W,__U,__A,__B); 1522 } 1523 __m512 test_mm512_maskz_sub_ps(__mmask16 __U, __m512 __A, __m512 __B) { 1524 // CHECK-LABEL: @test_mm512_maskz_sub_ps 1525 // CHECK: @llvm.x86.avx512.mask.sub.ps.512 1526 return _mm512_maskz_sub_ps(__U,__A,__B); 1527 } 1528 __m128 test_mm_sub_round_ss(__m128 __A, __m128 __B) { 1529 // CHECK-LABEL: @test_mm_sub_round_ss 1530 // CHECK: @llvm.x86.avx512.mask.sub.ss.round 1531 return _mm_sub_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1532 } 1533 __m128 test_mm_mask_sub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 1534 // CHECK-LABEL: @test_mm_mask_sub_round_ss 1535 // CHECK: @llvm.x86.avx512.mask.sub.ss.round 1536 return _mm_mask_sub_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1537 } 1538 __m128 test_mm_maskz_sub_round_ss(__mmask8 __U, __m128 __A, __m128 __B) { 1539 // CHECK-LABEL: @test_mm_maskz_sub_round_ss 1540 // CHECK: @llvm.x86.avx512.mask.sub.ss.round 1541 return _mm_maskz_sub_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1542 } 1543 __m128 test_mm_mask_sub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 1544 // CHECK-LABEL: @test_mm_mask_sub_ss 1545 // CHECK: @llvm.x86.avx512.mask.sub.ss.round 1546 return _mm_mask_sub_ss(__W,__U,__A,__B); 1547 } 1548 __m128 test_mm_maskz_sub_ss(__mmask8 __U, __m128 __A, __m128 __B) { 1549 // CHECK-LABEL: @test_mm_maskz_sub_ss 1550 // CHECK: @llvm.x86.avx512.mask.sub.ss.round 1551 return _mm_maskz_sub_ss(__U,__A,__B); 1552 } 1553 __m128d test_mm_sub_round_sd(__m128d __A, __m128d __B) { 1554 // CHECK-LABEL: @test_mm_sub_round_sd 1555 // CHECK: @llvm.x86.avx512.mask.sub.sd.round 1556 return _mm_sub_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1557 } 1558 __m128d test_mm_mask_sub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 1559 // CHECK-LABEL: @test_mm_mask_sub_round_sd 1560 // CHECK: @llvm.x86.avx512.mask.sub.sd.round 1561 return _mm_mask_sub_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1562 } 1563 __m128d test_mm_maskz_sub_round_sd(__mmask8 __U, __m128d __A, __m128d __B) { 1564 // CHECK-LABEL: @test_mm_maskz_sub_round_sd 1565 // CHECK: @llvm.x86.avx512.mask.sub.sd.round 1566 return _mm_maskz_sub_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1567 } 1568 __m128d test_mm_mask_sub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 1569 // CHECK-LABEL: @test_mm_mask_sub_sd 1570 // CHECK: @llvm.x86.avx512.mask.sub.sd.round 1571 return _mm_mask_sub_sd(__W,__U,__A,__B); 1572 } 1573 __m128d test_mm_maskz_sub_sd(__mmask8 __U, __m128d __A, __m128d __B) { 1574 // CHECK-LABEL: @test_mm_maskz_sub_sd 1575 // CHECK: @llvm.x86.avx512.mask.sub.sd.round 1576 return _mm_maskz_sub_sd(__U,__A,__B); 1577 } 1578 __m512d test_mm512_mul_round_pd(__m512d __A, __m512d __B) { 1579 // CHECK-LABEL: @test_mm512_mul_round_pd 1580 // CHECK: @llvm.x86.avx512.mask.mul.pd.512 1581 return _mm512_mul_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1582 } 1583 __m512d test_mm512_mask_mul_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { 1584 // CHECK-LABEL: @test_mm512_mask_mul_round_pd 1585 // CHECK: @llvm.x86.avx512.mask.mul.pd.512 1586 return _mm512_mask_mul_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1587 } 1588 __m512d test_mm512_maskz_mul_round_pd(__mmask8 __U, __m512d __A, __m512d __B) { 1589 // CHECK-LABEL: @test_mm512_maskz_mul_round_pd 1590 // CHECK: @llvm.x86.avx512.mask.mul.pd.512 1591 return _mm512_maskz_mul_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1592 } 1593 __m512d test_mm512_mask_mul_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { 1594 // CHECK-LABEL: @test_mm512_mask_mul_pd 1595 // CHECK: @llvm.x86.avx512.mask.mul.pd.512 1596 return _mm512_mask_mul_pd(__W,__U,__A,__B); 1597 } 1598 __m512d test_mm512_maskz_mul_pd(__mmask8 __U, __m512d __A, __m512d __B) { 1599 // CHECK-LABEL: @test_mm512_maskz_mul_pd 1600 // CHECK: @llvm.x86.avx512.mask.mul.pd.512 1601 return _mm512_maskz_mul_pd(__U,__A,__B); 1602 } 1603 __m512 test_mm512_mul_round_ps(__m512 __A, __m512 __B) { 1604 // CHECK-LABEL: @test_mm512_mul_round_ps 1605 // CHECK: @llvm.x86.avx512.mask.mul.ps.512 1606 return _mm512_mul_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1607 } 1608 __m512 test_mm512_mask_mul_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { 1609 // CHECK-LABEL: @test_mm512_mask_mul_round_ps 1610 // CHECK: @llvm.x86.avx512.mask.mul.ps.512 1611 return _mm512_mask_mul_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1612 } 1613 __m512 test_mm512_maskz_mul_round_ps(__mmask16 __U, __m512 __A, __m512 __B) { 1614 // CHECK-LABEL: @test_mm512_maskz_mul_round_ps 1615 // CHECK: @llvm.x86.avx512.mask.mul.ps.512 1616 return _mm512_maskz_mul_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1617 } 1618 __m512 test_mm512_mask_mul_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { 1619 // CHECK-LABEL: @test_mm512_mask_mul_ps 1620 // CHECK: @llvm.x86.avx512.mask.mul.ps.512 1621 return _mm512_mask_mul_ps(__W,__U,__A,__B); 1622 } 1623 __m512 test_mm512_maskz_mul_ps(__mmask16 __U, __m512 __A, __m512 __B) { 1624 // CHECK-LABEL: @test_mm512_maskz_mul_ps 1625 // CHECK: @llvm.x86.avx512.mask.mul.ps.512 1626 return _mm512_maskz_mul_ps(__U,__A,__B); 1627 } 1628 __m128 test_mm_mul_round_ss(__m128 __A, __m128 __B) { 1629 // CHECK-LABEL: @test_mm_mul_round_ss 1630 // CHECK: @llvm.x86.avx512.mask.mul.ss.round 1631 return _mm_mul_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1632 } 1633 __m128 test_mm_mask_mul_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 1634 // CHECK-LABEL: @test_mm_mask_mul_round_ss 1635 // CHECK: @llvm.x86.avx512.mask.mul.ss.round 1636 return _mm_mask_mul_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1637 } 1638 __m128 test_mm_maskz_mul_round_ss(__mmask8 __U, __m128 __A, __m128 __B) { 1639 // CHECK-LABEL: @test_mm_maskz_mul_round_ss 1640 // CHECK: @llvm.x86.avx512.mask.mul.ss.round 1641 return _mm_maskz_mul_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1642 } 1643 __m128 test_mm_mask_mul_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 1644 // CHECK-LABEL: @test_mm_mask_mul_ss 1645 // CHECK: @llvm.x86.avx512.mask.mul.ss.round 1646 return _mm_mask_mul_ss(__W,__U,__A,__B); 1647 } 1648 __m128 test_mm_maskz_mul_ss(__mmask8 __U, __m128 __A, __m128 __B) { 1649 // CHECK-LABEL: @test_mm_maskz_mul_ss 1650 // CHECK: @llvm.x86.avx512.mask.mul.ss.round 1651 return _mm_maskz_mul_ss(__U,__A,__B); 1652 } 1653 __m128d test_mm_mul_round_sd(__m128d __A, __m128d __B) { 1654 // CHECK-LABEL: @test_mm_mul_round_sd 1655 // CHECK: @llvm.x86.avx512.mask.mul.sd.round 1656 return _mm_mul_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1657 } 1658 __m128d test_mm_mask_mul_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 1659 // CHECK-LABEL: @test_mm_mask_mul_round_sd 1660 // CHECK: @llvm.x86.avx512.mask.mul.sd.round 1661 return _mm_mask_mul_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1662 } 1663 __m128d test_mm_maskz_mul_round_sd(__mmask8 __U, __m128d __A, __m128d __B) { 1664 // CHECK-LABEL: @test_mm_maskz_mul_round_sd 1665 // CHECK: @llvm.x86.avx512.mask.mul.sd.round 1666 return _mm_maskz_mul_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1667 } 1668 __m128d test_mm_mask_mul_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 1669 // CHECK-LABEL: @test_mm_mask_mul_sd 1670 // CHECK: @llvm.x86.avx512.mask.mul.sd.round 1671 return _mm_mask_mul_sd(__W,__U,__A,__B); 1672 } 1673 __m128d test_mm_maskz_mul_sd(__mmask8 __U, __m128d __A, __m128d __B) { 1674 // CHECK-LABEL: @test_mm_maskz_mul_sd 1675 // CHECK: @llvm.x86.avx512.mask.mul.sd.round 1676 return _mm_maskz_mul_sd(__U,__A,__B); 1677 } 1678 __m512d test_mm512_div_round_pd(__m512d __A, __m512d __B) { 1679 // CHECK-LABEL: @test_mm512_div_round_pd 1680 // CHECK: @llvm.x86.avx512.mask.div.pd.512 1681 return _mm512_div_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1682 } 1683 __m512d test_mm512_mask_div_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { 1684 // CHECK-LABEL: @test_mm512_mask_div_round_pd 1685 // CHECK: @llvm.x86.avx512.mask.div.pd.512 1686 return _mm512_mask_div_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1687 } 1688 __m512d test_mm512_maskz_div_round_pd(__mmask8 __U, __m512d __A, __m512d __B) { 1689 // CHECK-LABEL: @test_mm512_maskz_div_round_pd 1690 // CHECK: @llvm.x86.avx512.mask.div.pd.512 1691 return _mm512_maskz_div_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1692 } 1693 __m512d test_mm512_mask_div_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { 1694 // CHECK-LABEL: @test_mm512_mask_div_pd 1695 // CHECK: @llvm.x86.avx512.mask.div.pd.512 1696 return _mm512_mask_div_pd(__W,__U,__A,__B); 1697 } 1698 __m512d test_mm512_maskz_div_pd(__mmask8 __U, __m512d __A, __m512d __B) { 1699 // CHECK-LABEL: @test_mm512_maskz_div_pd 1700 // CHECK: @llvm.x86.avx512.mask.div.pd.512 1701 return _mm512_maskz_div_pd(__U,__A,__B); 1702 } 1703 __m512 test_mm512_div_round_ps(__m512 __A, __m512 __B) { 1704 // CHECK-LABEL: @test_mm512_div_round_ps 1705 // CHECK: @llvm.x86.avx512.mask.div.ps.512 1706 return _mm512_div_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1707 } 1708 __m512 test_mm512_mask_div_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { 1709 // CHECK-LABEL: @test_mm512_mask_div_round_ps 1710 // CHECK: @llvm.x86.avx512.mask.div.ps.512 1711 return _mm512_mask_div_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1712 } 1713 __m512 test_mm512_maskz_div_round_ps(__mmask16 __U, __m512 __A, __m512 __B) { 1714 // CHECK-LABEL: @test_mm512_maskz_div_round_ps 1715 // CHECK: @llvm.x86.avx512.mask.div.ps.512 1716 return _mm512_maskz_div_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1717 } 1718 __m512 test_mm512_mask_div_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { 1719 // CHECK-LABEL: @test_mm512_mask_div_ps 1720 // CHECK: @llvm.x86.avx512.mask.div.ps.512 1721 return _mm512_mask_div_ps(__W,__U,__A,__B); 1722 } 1723 __m512 test_mm512_maskz_div_ps(__mmask16 __U, __m512 __A, __m512 __B) { 1724 // CHECK-LABEL: @test_mm512_maskz_div_ps 1725 // CHECK: @llvm.x86.avx512.mask.div.ps.512 1726 return _mm512_maskz_div_ps(__U,__A,__B); 1727 } 1728 __m128 test_mm_div_round_ss(__m128 __A, __m128 __B) { 1729 // CHECK-LABEL: @test_mm_div_round_ss 1730 // CHECK: @llvm.x86.avx512.mask.div.ss.round 1731 return _mm_div_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1732 } 1733 __m128 test_mm_mask_div_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 1734 // CHECK-LABEL: @test_mm_mask_div_round_ss 1735 // CHECK: @llvm.x86.avx512.mask.div.ss.round 1736 return _mm_mask_div_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1737 } 1738 __m128 test_mm_maskz_div_round_ss(__mmask8 __U, __m128 __A, __m128 __B) { 1739 // CHECK-LABEL: @test_mm_maskz_div_round_ss 1740 // CHECK: @llvm.x86.avx512.mask.div.ss.round 1741 return _mm_maskz_div_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1742 } 1743 __m128 test_mm_mask_div_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 1744 // CHECK-LABEL: @test_mm_mask_div_ss 1745 // CHECK: @llvm.x86.avx512.mask.div.ss.round 1746 return _mm_mask_div_ss(__W,__U,__A,__B); 1747 } 1748 __m128 test_mm_maskz_div_ss(__mmask8 __U, __m128 __A, __m128 __B) { 1749 // CHECK-LABEL: @test_mm_maskz_div_ss 1750 // CHECK: @llvm.x86.avx512.mask.div.ss.round 1751 return _mm_maskz_div_ss(__U,__A,__B); 1752 } 1753 __m128d test_mm_div_round_sd(__m128d __A, __m128d __B) { 1754 // CHECK-LABEL: @test_mm_div_round_sd 1755 // CHECK: @llvm.x86.avx512.mask.div.sd.round 1756 return _mm_div_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT); 1757 } 1758 __m128d test_mm_mask_div_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 1759 // CHECK-LABEL: @test_mm_mask_div_round_sd 1760 // CHECK: @llvm.x86.avx512.mask.div.sd.round 1761 return _mm_mask_div_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1762 } 1763 __m128d test_mm_maskz_div_round_sd(__mmask8 __U, __m128d __A, __m128d __B) { 1764 // CHECK-LABEL: @test_mm_maskz_div_round_sd 1765 // CHECK: @llvm.x86.avx512.mask.div.sd.round 1766 return _mm_maskz_div_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); 1767 } 1768 __m128d test_mm_mask_div_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 1769 // CHECK-LABEL: @test_mm_mask_div_sd 1770 // CHECK: @llvm.x86.avx512.mask.div.sd.round 1771 return _mm_mask_div_sd(__W,__U,__A,__B); 1772 } 1773 __m128d test_mm_maskz_div_sd(__mmask8 __U, __m128d __A, __m128d __B) { 1774 // CHECK-LABEL: @test_mm_maskz_div_sd 1775 // CHECK: @llvm.x86.avx512.mask.div.sd.round 1776 return _mm_maskz_div_sd(__U,__A,__B); 1777 } 1778 __m128 test_mm_max_round_ss(__m128 __A, __m128 __B) { 1779 // CHECK-LABEL: @test_mm_max_round_ss 1780 // CHECK: @llvm.x86.avx512.mask.max.ss.round 1781 return _mm_max_round_ss(__A,__B,0x08); 1782 } 1783 __m128 test_mm_mask_max_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 1784 // CHECK-LABEL: @test_mm_mask_max_round_ss 1785 // CHECK: @llvm.x86.avx512.mask.max.ss.round 1786 return _mm_mask_max_round_ss(__W,__U,__A,__B,0x08); 1787 } 1788 __m128 test_mm_maskz_max_round_ss(__mmask8 __U, __m128 __A, __m128 __B) { 1789 // CHECK-LABEL: @test_mm_maskz_max_round_ss 1790 // CHECK: @llvm.x86.avx512.mask.max.ss.round 1791 return _mm_maskz_max_round_ss(__U,__A,__B,0x08); 1792 } 1793 __m128 test_mm_mask_max_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 1794 // CHECK-LABEL: @test_mm_mask_max_ss 1795 // CHECK: @llvm.x86.avx512.mask.max.ss.round 1796 return _mm_mask_max_ss(__W,__U,__A,__B); 1797 } 1798 __m128 test_mm_maskz_max_ss(__mmask8 __U, __m128 __A, __m128 __B) { 1799 // CHECK-LABEL: @test_mm_maskz_max_ss 1800 // CHECK: @llvm.x86.avx512.mask.max.ss.round 1801 return _mm_maskz_max_ss(__U,__A,__B); 1802 } 1803 __m128d test_mm_max_round_sd(__m128d __A, __m128d __B) { 1804 // CHECK-LABEL: @test_mm_max_round_sd 1805 // CHECK: @llvm.x86.avx512.mask.max.sd.round 1806 return _mm_max_round_sd(__A,__B,0x08); 1807 } 1808 __m128d test_mm_mask_max_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 1809 // CHECK-LABEL: @test_mm_mask_max_round_sd 1810 // CHECK: @llvm.x86.avx512.mask.max.sd.round 1811 return _mm_mask_max_round_sd(__W,__U,__A,__B,0x08); 1812 } 1813 __m128d test_mm_maskz_max_round_sd(__mmask8 __U, __m128d __A, __m128d __B) { 1814 // CHECK-LABEL: @test_mm_maskz_max_round_sd 1815 // CHECK: @llvm.x86.avx512.mask.max.sd.round 1816 return _mm_maskz_max_round_sd(__U,__A,__B,0x08); 1817 } 1818 __m128d test_mm_mask_max_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 1819 // CHECK-LABEL: @test_mm_mask_max_sd 1820 // CHECK: @llvm.x86.avx512.mask.max.sd.round 1821 return _mm_mask_max_sd(__W,__U,__A,__B); 1822 } 1823 __m128d test_mm_maskz_max_sd(__mmask8 __U, __m128d __A, __m128d __B) { 1824 // CHECK-LABEL: @test_mm_maskz_max_sd 1825 // CHECK: @llvm.x86.avx512.mask.max.sd.round 1826 return _mm_maskz_max_sd(__U,__A,__B); 1827 } 1828 __m128 test_mm_min_round_ss(__m128 __A, __m128 __B) { 1829 // CHECK-LABEL: @test_mm_min_round_ss 1830 // CHECK: @llvm.x86.avx512.mask.min.ss.round 1831 return _mm_min_round_ss(__A,__B,0x08); 1832 } 1833 __m128 test_mm_mask_min_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 1834 // CHECK-LABEL: @test_mm_mask_min_round_ss 1835 // CHECK: @llvm.x86.avx512.mask.min.ss.round 1836 return _mm_mask_min_round_ss(__W,__U,__A,__B,0x08); 1837 } 1838 __m128 test_mm_maskz_min_round_ss(__mmask8 __U, __m128 __A, __m128 __B) { 1839 // CHECK-LABEL: @test_mm_maskz_min_round_ss 1840 // CHECK: @llvm.x86.avx512.mask.min.ss.round 1841 return _mm_maskz_min_round_ss(__U,__A,__B,0x08); 1842 } 1843 __m128 test_mm_mask_min_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 1844 // CHECK-LABEL: @test_mm_mask_min_ss 1845 // CHECK: @llvm.x86.avx512.mask.min.ss.round 1846 return _mm_mask_min_ss(__W,__U,__A,__B); 1847 } 1848 __m128 test_mm_maskz_min_ss(__mmask8 __U, __m128 __A, __m128 __B) { 1849 // CHECK-LABEL: @test_mm_maskz_min_ss 1850 // CHECK: @llvm.x86.avx512.mask.min.ss.round 1851 return _mm_maskz_min_ss(__U,__A,__B); 1852 } 1853 __m128d test_mm_min_round_sd(__m128d __A, __m128d __B) { 1854 // CHECK-LABEL: @test_mm_min_round_sd 1855 // CHECK: @llvm.x86.avx512.mask.min.sd.round 1856 return _mm_min_round_sd(__A,__B,0x08); 1857 } 1858 __m128d test_mm_mask_min_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 1859 // CHECK-LABEL: @test_mm_mask_min_round_sd 1860 // CHECK: @llvm.x86.avx512.mask.min.sd.round 1861 return _mm_mask_min_round_sd(__W,__U,__A,__B,0x08); 1862 } 1863 __m128d test_mm_maskz_min_round_sd(__mmask8 __U, __m128d __A, __m128d __B) { 1864 // CHECK-LABEL: @test_mm_maskz_min_round_sd 1865 // CHECK: @llvm.x86.avx512.mask.min.sd.round 1866 return _mm_maskz_min_round_sd(__U,__A,__B,0x08); 1867 } 1868 __m128d test_mm_mask_min_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 1869 // CHECK-LABEL: @test_mm_mask_min_sd 1870 // CHECK: @llvm.x86.avx512.mask.min.sd.round 1871 return _mm_mask_min_sd(__W,__U,__A,__B); 1872 } 1873 __m128d test_mm_maskz_min_sd(__mmask8 __U, __m128d __A, __m128d __B) { 1874 // CHECK-LABEL: @test_mm_maskz_min_sd 1875 // CHECK: @llvm.x86.avx512.mask.min.sd.round 1876 return _mm_maskz_min_sd(__U,__A,__B); 1877 } 1878 1879 __m512 test_mm512_undefined() { 1880 // CHECK-LABEL: @test_mm512_undefined 1881 // CHECK: ret <16 x float> undef 1882 return _mm512_undefined(); 1883 } 1884 1885 __m512 test_mm512_undefined_ps() { 1886 // CHECK-LABEL: @test_mm512_undefined_ps 1887 // CHECK: ret <16 x float> undef 1888 return _mm512_undefined_ps(); 1889 } 1890 1891 __m512d test_mm512_undefined_pd() { 1892 // CHECK-LABEL: @test_mm512_undefined_pd 1893 // CHECK: ret <8 x double> undef 1894 return _mm512_undefined_pd(); 1895 } 1896 1897 __m512i test_mm512_undefined_epi32() { 1898 // CHECK-LABEL: @test_mm512_undefined_epi32 1899 // CHECK: ret <8 x i64> undef 1900 return _mm512_undefined_epi32(); 1901 } 1902