1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512dq -target-feature +avx512vl -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 __m256i test_mm256_mullo_epi64 (__m256i __A, __m256i __B) { 9 // CHECK-LABEL: @test_mm256_mullo_epi64 10 // CHECK: mul <4 x i64> 11 return _mm256_mullo_epi64(__A, __B); 12 } 13 14 __m256i test_mm256_mask_mullo_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 15 // CHECK-LABEL: @test_mm256_mask_mullo_epi64 16 // CHECK: @llvm.x86.avx512.mask.pmull.q.256 17 return (__m256i) _mm256_mask_mullo_epi64 ( __W, __U, __A, __B); 18 } 19 20 __m256i test_mm256_maskz_mullo_epi64 (__mmask8 __U, __m256i __A, __m256i __B) { 21 // CHECK-LABEL: @test_mm256_maskz_mullo_epi64 22 // CHECK: @llvm.x86.avx512.mask.pmull.q.256 23 return (__m256i) _mm256_maskz_mullo_epi64 (__U, __A, __B); 24 } 25 26 __m128i test_mm_mullo_epi64 (__m128i __A, __m128i __B) { 27 // CHECK-LABEL: @test_mm_mullo_epi64 28 // CHECK: mul <2 x i64> 29 return (__m128i) _mm_mullo_epi64(__A, __B); 30 } 31 32 __m128i test_mm_mask_mullo_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 33 // CHECK-LABEL: @test_mm_mask_mullo_epi64 34 // CHECK: @llvm.x86.avx512.mask.pmull.q.128 35 return (__m128i) _mm_mask_mullo_epi64 ( __W, __U, __A, __B); 36 } 37 38 __m128i test_mm_maskz_mullo_epi64 (__mmask8 __U, __m128i __A, __m128i __B) { 39 // CHECK-LABEL: @test_mm_maskz_mullo_epi64 40 // CHECK: @llvm.x86.avx512.mask.pmull.q.128 41 return (__m128i) _mm_maskz_mullo_epi64 (__U, __A, __B); 42 } 43 44 __m256d test_mm256_mask_andnot_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 45 // CHECK-LABEL: @test_mm256_mask_andnot_pd 46 // CHECK: @llvm.x86.avx512.mask.andn.pd.256 47 return (__m256d) _mm256_mask_andnot_pd ( __W, __U, __A, __B); 48 } 49 50 __m256d test_mm256_maskz_andnot_pd (__mmask8 __U, __m256d __A, __m256d __B) { 51 // CHECK-LABEL: @test_mm256_maskz_andnot_pd 52 // CHECK: @llvm.x86.avx512.mask.andn.pd.256 53 return (__m256d) _mm256_maskz_andnot_pd (__U, __A, __B); 54 } 55 56 __m128d test_mm_mask_andnot_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 57 // CHECK-LABEL: @test_mm_mask_andnot_pd 58 // CHECK: @llvm.x86.avx512.mask.andn.pd.128 59 return (__m128d) _mm_mask_andnot_pd ( __W, __U, __A, __B); 60 } 61 62 __m128d test_mm_maskz_andnot_pd (__mmask8 __U, __m128d __A, __m128d __B) { 63 // CHECK-LABEL: @test_mm_maskz_andnot_pd 64 // CHECK: @llvm.x86.avx512.mask.andn.pd.128 65 return (__m128d) _mm_maskz_andnot_pd (__U, __A, __B); 66 } 67 68 __m256 test_mm256_mask_andnot_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 69 // CHECK-LABEL: @test_mm256_mask_andnot_ps 70 // CHECK: @llvm.x86.avx512.mask.andn.ps.256 71 return (__m256) _mm256_mask_andnot_ps ( __W, __U, __A, __B); 72 } 73 74 __m256 test_mm256_maskz_andnot_ps (__mmask8 __U, __m256 __A, __m256 __B) { 75 // CHECK-LABEL: @test_mm256_maskz_andnot_ps 76 // CHECK: @llvm.x86.avx512.mask.andn.ps.256 77 return (__m256) _mm256_maskz_andnot_ps (__U, __A, __B); 78 } 79 80 __m128 test_mm_mask_andnot_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 81 // CHECK-LABEL: @test_mm_mask_andnot_ps 82 // CHECK: @llvm.x86.avx512.mask.andn.ps.128 83 return (__m128) _mm_mask_andnot_ps ( __W, __U, __A, __B); 84 } 85 86 __m128 test_mm_maskz_andnot_ps (__mmask8 __U, __m128 __A, __m128 __B) { 87 // CHECK-LABEL: @test_mm_maskz_andnot_ps 88 // CHECK: @llvm.x86.avx512.mask.andn.ps.128 89 return (__m128) _mm_maskz_andnot_ps (__U, __A, __B); 90 } 91 92 __m256d test_mm256_mask_and_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 93 // CHECK-LABEL: @test_mm256_mask_and_pd 94 // CHECK: @llvm.x86.avx512.mask.and.pd.256 95 return (__m256d) _mm256_mask_and_pd ( __W, __U, __A, __B); 96 } 97 98 __m256d test_mm256_maskz_and_pd (__mmask8 __U, __m256d __A, __m256d __B) { 99 // CHECK-LABEL: @test_mm256_maskz_and_pd 100 // CHECK: @llvm.x86.avx512.mask.and.pd.256 101 return (__m256d) _mm256_maskz_and_pd (__U, __A, __B); 102 } 103 104 __m128d test_mm_mask_and_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 105 // CHECK-LABEL: @test_mm_mask_and_pd 106 // CHECK: @llvm.x86.avx512.mask.and.pd.128 107 return (__m128d) _mm_mask_and_pd ( __W, __U, __A, __B); 108 } 109 110 __m128d test_mm_maskz_and_pd (__mmask8 __U, __m128d __A, __m128d __B) { 111 // CHECK-LABEL: @test_mm_maskz_and_pd 112 // CHECK: @llvm.x86.avx512.mask.and.pd.128 113 return (__m128d) _mm_maskz_and_pd (__U, __A, __B); 114 } 115 116 __m256 test_mm256_mask_and_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 117 // CHECK-LABEL: @test_mm256_mask_and_ps 118 // CHECK: @llvm.x86.avx512.mask.and.ps.256 119 return (__m256) _mm256_mask_and_ps ( __W, __U, __A, __B); 120 } 121 122 __m256 test_mm256_maskz_and_ps (__mmask8 __U, __m256 __A, __m256 __B) { 123 // CHECK-LABEL: @test_mm256_maskz_and_ps 124 // CHECK: @llvm.x86.avx512.mask.and.ps.256 125 return (__m256) _mm256_maskz_and_ps (__U, __A, __B); 126 } 127 128 __m128 test_mm_mask_and_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 129 // CHECK-LABEL: @test_mm_mask_and_ps 130 // CHECK: @llvm.x86.avx512.mask.and.ps.128 131 return (__m128) _mm_mask_and_ps ( __W, __U, __A, __B); 132 } 133 134 __m128 test_mm_maskz_and_ps (__mmask8 __U, __m128 __A, __m128 __B) { 135 // CHECK-LABEL: @test_mm_maskz_and_ps 136 // CHECK: @llvm.x86.avx512.mask.and.ps.128 137 return (__m128) _mm_maskz_and_ps (__U, __A, __B); 138 } 139 140 __m256d test_mm256_mask_xor_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 141 // CHECK-LABEL: @test_mm256_mask_xor_pd 142 // CHECK: @llvm.x86.avx512.mask.xor.pd.256 143 return (__m256d) _mm256_mask_xor_pd ( __W, __U, __A, __B); 144 } 145 146 __m256d test_mm256_maskz_xor_pd (__mmask8 __U, __m256d __A, __m256d __B) { 147 // CHECK-LABEL: @test_mm256_maskz_xor_pd 148 // CHECK: @llvm.x86.avx512.mask.xor.pd.256 149 return (__m256d) _mm256_maskz_xor_pd (__U, __A, __B); 150 } 151 152 __m128d test_mm_mask_xor_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 153 // CHECK-LABEL: @test_mm_mask_xor_pd 154 // CHECK: @llvm.x86.avx512.mask.xor.pd.128 155 return (__m128d) _mm_mask_xor_pd ( __W, __U, __A, __B); 156 } 157 158 __m128d test_mm_maskz_xor_pd (__mmask8 __U, __m128d __A, __m128d __B) { 159 // CHECK-LABEL: @test_mm_maskz_xor_pd 160 // CHECK: @llvm.x86.avx512.mask.xor.pd.128 161 return (__m128d) _mm_maskz_xor_pd (__U, __A, __B); 162 } 163 164 __m256 test_mm256_mask_xor_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 165 // CHECK-LABEL: @test_mm256_mask_xor_ps 166 // CHECK: @llvm.x86.avx512.mask.xor.ps.256 167 return (__m256) _mm256_mask_xor_ps ( __W, __U, __A, __B); 168 } 169 170 __m256 test_mm256_maskz_xor_ps (__mmask8 __U, __m256 __A, __m256 __B) { 171 // CHECK-LABEL: @test_mm256_maskz_xor_ps 172 // CHECK: @llvm.x86.avx512.mask.xor.ps.256 173 return (__m256) _mm256_maskz_xor_ps (__U, __A, __B); 174 } 175 176 __m128 test_mm_mask_xor_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 177 // CHECK-LABEL: @test_mm_mask_xor_ps 178 // CHECK: @llvm.x86.avx512.mask.xor.ps.128 179 return (__m128) _mm_mask_xor_ps ( __W, __U, __A, __B); 180 } 181 182 __m128 test_mm_maskz_xor_ps (__mmask8 __U, __m128 __A, __m128 __B) { 183 // CHECK-LABEL: @test_mm_maskz_xor_ps 184 // CHECK: @llvm.x86.avx512.mask.xor.ps.128 185 return (__m128) _mm_maskz_xor_ps (__U, __A, __B); 186 } 187 188 __m256d test_mm256_mask_or_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 189 // CHECK-LABEL: @test_mm256_mask_or_pd 190 // CHECK: @llvm.x86.avx512.mask.or.pd.256 191 return (__m256d) _mm256_mask_or_pd ( __W, __U, __A, __B); 192 } 193 194 __m256d test_mm256_maskz_or_pd (__mmask8 __U, __m256d __A, __m256d __B) { 195 // CHECK-LABEL: @test_mm256_maskz_or_pd 196 // CHECK: @llvm.x86.avx512.mask.or.pd.256 197 return (__m256d) _mm256_maskz_or_pd (__U, __A, __B); 198 } 199 200 __m128d test_mm_mask_or_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 201 // CHECK-LABEL: @test_mm_mask_or_pd 202 // CHECK: @llvm.x86.avx512.mask.or.pd.128 203 return (__m128d) _mm_mask_or_pd ( __W, __U, __A, __B); 204 } 205 206 __m128d test_mm_maskz_or_pd (__mmask8 __U, __m128d __A, __m128d __B) { 207 // CHECK-LABEL: @test_mm_maskz_or_pd 208 // CHECK: @llvm.x86.avx512.mask.or.pd.128 209 return (__m128d) _mm_maskz_or_pd (__U, __A, __B); 210 } 211 212 __m256 test_mm256_mask_or_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 213 // CHECK-LABEL: @test_mm256_mask_or_ps 214 // CHECK: @llvm.x86.avx512.mask.or.ps.256 215 return (__m256) _mm256_mask_or_ps ( __W, __U, __A, __B); 216 } 217 218 __m256 test_mm256_maskz_or_ps (__mmask8 __U, __m256 __A, __m256 __B) { 219 // CHECK-LABEL: @test_mm256_maskz_or_ps 220 // CHECK: @llvm.x86.avx512.mask.or.ps.256 221 return (__m256) _mm256_maskz_or_ps (__U, __A, __B); 222 } 223 224 __m128 test_mm_mask_or_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 225 // CHECK-LABEL: @test_mm_mask_or_ps 226 // CHECK: @llvm.x86.avx512.mask.or.ps.128 227 return (__m128) _mm_mask_or_ps ( __W, __U, __A, __B); 228 } 229 230 __m128 test_mm_maskz_or_ps (__mmask8 __U, __m128 __A, __m128 __B) { 231 // CHECK-LABEL: @test_mm_maskz_or_ps 232 // CHECK: @llvm.x86.avx512.mask.or.ps.128 233 return (__m128) _mm_maskz_or_ps(__U, __A, __B); 234 } 235 236 __m128i test_mm_cvtpd_epi64(__m128d __A) { 237 // CHECK-LABEL: @test_mm_cvtpd_epi64 238 // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.128 239 return _mm_cvtpd_epi64(__A); 240 } 241 242 __m128i test_mm_mask_cvtpd_epi64(__m128i __W, __mmask8 __U, __m128d __A) { 243 // CHECK-LABEL: @test_mm_mask_cvtpd_epi64 244 // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.128 245 return _mm_mask_cvtpd_epi64(__W, __U, __A); 246 } 247 248 __m128i test_mm_maskz_cvtpd_epi64(__mmask8 __U, __m128d __A) { 249 // CHECK-LABEL: @test_mm_maskz_cvtpd_epi64 250 // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.128 251 return _mm_maskz_cvtpd_epi64(__U, __A); 252 } 253 254 __m256i test_mm256_cvtpd_epi64(__m256d __A) { 255 // CHECK-LABEL: @test_mm256_cvtpd_epi64 256 // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.256 257 return _mm256_cvtpd_epi64(__A); 258 } 259 260 __m256i test_mm256_mask_cvtpd_epi64(__m256i __W, __mmask8 __U, __m256d __A) { 261 // CHECK-LABEL: @test_mm256_mask_cvtpd_epi64 262 // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.256 263 return _mm256_mask_cvtpd_epi64(__W, __U, __A); 264 } 265 266 __m256i test_mm256_maskz_cvtpd_epi64(__mmask8 __U, __m256d __A) { 267 // CHECK-LABEL: @test_mm256_maskz_cvtpd_epi64 268 // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.256 269 return _mm256_maskz_cvtpd_epi64(__U, __A); 270 } 271 272 __m128i test_mm_cvtpd_epu64(__m128d __A) { 273 // CHECK-LABEL: @test_mm_cvtpd_epu64 274 // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.128 275 return _mm_cvtpd_epu64(__A); 276 } 277 278 __m128i test_mm_mask_cvtpd_epu64(__m128i __W, __mmask8 __U, __m128d __A) { 279 // CHECK-LABEL: @test_mm_mask_cvtpd_epu64 280 // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.128 281 return _mm_mask_cvtpd_epu64(__W, __U, __A); 282 } 283 284 __m128i test_mm_maskz_cvtpd_epu64(__mmask8 __U, __m128d __A) { 285 // CHECK-LABEL: @test_mm_maskz_cvtpd_epu64 286 // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.128 287 return _mm_maskz_cvtpd_epu64(__U, __A); 288 } 289 290 __m256i test_mm256_cvtpd_epu64(__m256d __A) { 291 // CHECK-LABEL: @test_mm256_cvtpd_epu64 292 // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.256 293 return _mm256_cvtpd_epu64(__A); 294 } 295 296 __m256i test_mm256_mask_cvtpd_epu64(__m256i __W, __mmask8 __U, __m256d __A) { 297 // CHECK-LABEL: @test_mm256_mask_cvtpd_epu64 298 // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.256 299 return _mm256_mask_cvtpd_epu64(__W, __U, __A); 300 } 301 302 __m256i test_mm256_maskz_cvtpd_epu64(__mmask8 __U, __m256d __A) { 303 // CHECK-LABEL: @test_mm256_maskz_cvtpd_epu64 304 // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.256 305 return _mm256_maskz_cvtpd_epu64(__U, __A); 306 } 307 308 __m128i test_mm_cvtps_epi64(__m128 __A) { 309 // CHECK-LABEL: @test_mm_cvtps_epi64 310 // CHECK: @llvm.x86.avx512.mask.cvtps2qq.128 311 return _mm_cvtps_epi64(__A); 312 } 313 314 __m128i test_mm_mask_cvtps_epi64(__m128i __W, __mmask8 __U, __m128 __A) { 315 // CHECK-LABEL: @test_mm_mask_cvtps_epi64 316 // CHECK: @llvm.x86.avx512.mask.cvtps2qq.128 317 return _mm_mask_cvtps_epi64(__W, __U, __A); 318 } 319 320 __m128i test_mm_maskz_cvtps_epi64(__mmask8 __U, __m128 __A) { 321 // CHECK-LABEL: @test_mm_maskz_cvtps_epi64 322 // CHECK: @llvm.x86.avx512.mask.cvtps2qq.128 323 return _mm_maskz_cvtps_epi64(__U, __A); 324 } 325 326 __m256i test_mm256_cvtps_epi64(__m128 __A) { 327 // CHECK-LABEL: @test_mm256_cvtps_epi64 328 // CHECK: @llvm.x86.avx512.mask.cvtps2qq.256 329 return _mm256_cvtps_epi64(__A); 330 } 331 332 __m256i test_mm256_mask_cvtps_epi64(__m256i __W, __mmask8 __U, __m128 __A) { 333 // CHECK-LABEL: @test_mm256_mask_cvtps_epi64 334 // CHECK: @llvm.x86.avx512.mask.cvtps2qq.256 335 return _mm256_mask_cvtps_epi64(__W, __U, __A); 336 } 337 338 __m256i test_mm256_maskz_cvtps_epi64(__mmask8 __U, __m128 __A) { 339 // CHECK-LABEL: @test_mm256_maskz_cvtps_epi64 340 // CHECK: @llvm.x86.avx512.mask.cvtps2qq.256 341 return _mm256_maskz_cvtps_epi64(__U, __A); 342 } 343 344 __m128i test_mm_cvtps_epu64(__m128 __A) { 345 // CHECK-LABEL: @test_mm_cvtps_epu64 346 // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.128 347 return _mm_cvtps_epu64(__A); 348 } 349 350 __m128i test_mm_mask_cvtps_epu64(__m128i __W, __mmask8 __U, __m128 __A) { 351 // CHECK-LABEL: @test_mm_mask_cvtps_epu64 352 // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.128 353 return _mm_mask_cvtps_epu64(__W, __U, __A); 354 } 355 356 __m128i test_mm_maskz_cvtps_epu64(__mmask8 __U, __m128 __A) { 357 // CHECK-LABEL: @test_mm_maskz_cvtps_epu64 358 // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.128 359 return _mm_maskz_cvtps_epu64(__U, __A); 360 } 361 362 __m256i test_mm256_cvtps_epu64(__m128 __A) { 363 // CHECK-LABEL: @test_mm256_cvtps_epu64 364 // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.256 365 return _mm256_cvtps_epu64(__A); 366 } 367 368 __m256i test_mm256_mask_cvtps_epu64(__m256i __W, __mmask8 __U, __m128 __A) { 369 // CHECK-LABEL: @test_mm256_mask_cvtps_epu64 370 // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.256 371 return _mm256_mask_cvtps_epu64(__W, __U, __A); 372 } 373 374 __m256i test_mm256_maskz_cvtps_epu64(__mmask8 __U, __m128 __A) { 375 // CHECK-LABEL: @test_mm256_maskz_cvtps_epu64 376 // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.256 377 return _mm256_maskz_cvtps_epu64(__U, __A); 378 } 379 380 __m128d test_mm_cvtepi64_pd(__m128i __A) { 381 // CHECK-LABEL: @test_mm_cvtepi64_pd 382 // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.128 383 return _mm_cvtepi64_pd(__A); 384 } 385 386 __m128d test_mm_mask_cvtepi64_pd(__m128d __W, __mmask8 __U, __m128i __A) { 387 // CHECK-LABEL: @test_mm_mask_cvtepi64_pd 388 // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.128 389 return _mm_mask_cvtepi64_pd(__W, __U, __A); 390 } 391 392 __m128d test_mm_maskz_cvtepi64_pd(__mmask8 __U, __m128i __A) { 393 // CHECK-LABEL: @test_mm_maskz_cvtepi64_pd 394 // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.128 395 return _mm_maskz_cvtepi64_pd(__U, __A); 396 } 397 398 __m256d test_mm256_cvtepi64_pd(__m256i __A) { 399 // CHECK-LABEL: @test_mm256_cvtepi64_pd 400 // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.256 401 return _mm256_cvtepi64_pd(__A); 402 } 403 404 __m256d test_mm256_mask_cvtepi64_pd(__m256d __W, __mmask8 __U, __m256i __A) { 405 // CHECK-LABEL: @test_mm256_mask_cvtepi64_pd 406 // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.256 407 return _mm256_mask_cvtepi64_pd(__W, __U, __A); 408 } 409 410 __m256d test_mm256_maskz_cvtepi64_pd(__mmask8 __U, __m256i __A) { 411 // CHECK-LABEL: @test_mm256_maskz_cvtepi64_pd 412 // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.256 413 return _mm256_maskz_cvtepi64_pd(__U, __A); 414 } 415 416 __m128 test_mm_cvtepi64_ps(__m128i __A) { 417 // CHECK-LABEL: @test_mm_cvtepi64_ps 418 // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.128 419 return _mm_cvtepi64_ps(__A); 420 } 421 422 __m128 test_mm_mask_cvtepi64_ps(__m128 __W, __mmask8 __U, __m128i __A) { 423 // CHECK-LABEL: @test_mm_mask_cvtepi64_ps 424 // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.128 425 return _mm_mask_cvtepi64_ps(__W, __U, __A); 426 } 427 428 __m128 test_mm_maskz_cvtepi64_ps(__mmask8 __U, __m128i __A) { 429 // CHECK-LABEL: @test_mm_maskz_cvtepi64_ps 430 // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.128 431 return _mm_maskz_cvtepi64_ps(__U, __A); 432 } 433 434 __m128 test_mm256_cvtepi64_ps(__m256i __A) { 435 // CHECK-LABEL: @test_mm256_cvtepi64_ps 436 // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.256 437 return _mm256_cvtepi64_ps(__A); 438 } 439 440 __m128 test_mm256_mask_cvtepi64_ps(__m128 __W, __mmask8 __U, __m256i __A) { 441 // CHECK-LABEL: @test_mm256_mask_cvtepi64_ps 442 // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.256 443 return _mm256_mask_cvtepi64_ps(__W, __U, __A); 444 } 445 446 __m128 test_mm256_maskz_cvtepi64_ps(__mmask8 __U, __m256i __A) { 447 // CHECK-LABEL: @test_mm256_maskz_cvtepi64_ps 448 // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.256 449 return _mm256_maskz_cvtepi64_ps(__U, __A); 450 } 451 452 __m128i test_mm_cvttpd_epi64(__m128d __A) { 453 // CHECK-LABEL: @test_mm_cvttpd_epi64 454 // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.128 455 return _mm_cvttpd_epi64(__A); 456 } 457 458 __m128i test_mm_mask_cvttpd_epi64(__m128i __W, __mmask8 __U, __m128d __A) { 459 // CHECK-LABEL: @test_mm_mask_cvttpd_epi64 460 // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.128 461 return _mm_mask_cvttpd_epi64(__W, __U, __A); 462 } 463 464 __m128i test_mm_maskz_cvttpd_epi64(__mmask8 __U, __m128d __A) { 465 // CHECK-LABEL: @test_mm_maskz_cvttpd_epi64 466 // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.128 467 return _mm_maskz_cvttpd_epi64(__U, __A); 468 } 469 470 __m256i test_mm256_cvttpd_epi64(__m256d __A) { 471 // CHECK-LABEL: @test_mm256_cvttpd_epi64 472 // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.256 473 return _mm256_cvttpd_epi64(__A); 474 } 475 476 __m256i test_mm256_mask_cvttpd_epi64(__m256i __W, __mmask8 __U, __m256d __A) { 477 // CHECK-LABEL: @test_mm256_mask_cvttpd_epi64 478 // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.256 479 return _mm256_mask_cvttpd_epi64(__W, __U, __A); 480 } 481 482 __m256i test_mm256_maskz_cvttpd_epi64(__mmask8 __U, __m256d __A) { 483 // CHECK-LABEL: @test_mm256_maskz_cvttpd_epi64 484 // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.256 485 return _mm256_maskz_cvttpd_epi64(__U, __A); 486 } 487 488 __m128i test_mm_cvttpd_epu64(__m128d __A) { 489 // CHECK-LABEL: @test_mm_cvttpd_epu64 490 // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.128 491 return _mm_cvttpd_epu64(__A); 492 } 493 494 __m128i test_mm_mask_cvttpd_epu64(__m128i __W, __mmask8 __U, __m128d __A) { 495 // CHECK-LABEL: @test_mm_mask_cvttpd_epu64 496 // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.128 497 return _mm_mask_cvttpd_epu64(__W, __U, __A); 498 } 499 500 __m128i test_mm_maskz_cvttpd_epu64(__mmask8 __U, __m128d __A) { 501 // CHECK-LABEL: @test_mm_maskz_cvttpd_epu64 502 // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.128 503 return _mm_maskz_cvttpd_epu64(__U, __A); 504 } 505 506 __m256i test_mm256_cvttpd_epu64(__m256d __A) { 507 // CHECK-LABEL: @test_mm256_cvttpd_epu64 508 // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.256 509 return _mm256_cvttpd_epu64(__A); 510 } 511 512 __m256i test_mm256_mask_cvttpd_epu64(__m256i __W, __mmask8 __U, __m256d __A) { 513 // CHECK-LABEL: @test_mm256_mask_cvttpd_epu64 514 // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.256 515 return _mm256_mask_cvttpd_epu64(__W, __U, __A); 516 } 517 518 __m256i test_mm256_maskz_cvttpd_epu64(__mmask8 __U, __m256d __A) { 519 // CHECK-LABEL: @test_mm256_maskz_cvttpd_epu64 520 // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.256 521 return _mm256_maskz_cvttpd_epu64(__U, __A); 522 } 523 524 __m128i test_mm_cvttps_epi64(__m128 __A) { 525 // CHECK-LABEL: @test_mm_cvttps_epi64 526 // CHECK: @llvm.x86.avx512.mask.cvttps2qq.128 527 return _mm_cvttps_epi64(__A); 528 } 529 530 __m128i test_mm_mask_cvttps_epi64(__m128i __W, __mmask8 __U, __m128 __A) { 531 // CHECK-LABEL: @test_mm_mask_cvttps_epi64 532 // CHECK: @llvm.x86.avx512.mask.cvttps2qq.128 533 return _mm_mask_cvttps_epi64(__W, __U, __A); 534 } 535 536 __m128i test_mm_maskz_cvttps_epi64(__mmask8 __U, __m128 __A) { 537 // CHECK-LABEL: @test_mm_maskz_cvttps_epi64 538 // CHECK: @llvm.x86.avx512.mask.cvttps2qq.128 539 return _mm_maskz_cvttps_epi64(__U, __A); 540 } 541 542 __m256i test_mm256_cvttps_epi64(__m128 __A) { 543 // CHECK-LABEL: @test_mm256_cvttps_epi64 544 // CHECK: @llvm.x86.avx512.mask.cvttps2qq.256 545 return _mm256_cvttps_epi64(__A); 546 } 547 548 __m256i test_mm256_mask_cvttps_epi64(__m256i __W, __mmask8 __U, __m128 __A) { 549 // CHECK-LABEL: @test_mm256_mask_cvttps_epi64 550 // CHECK: @llvm.x86.avx512.mask.cvttps2qq.256 551 return _mm256_mask_cvttps_epi64(__W, __U, __A); 552 } 553 554 __m256i test_mm256_maskz_cvttps_epi64(__mmask8 __U, __m128 __A) { 555 // CHECK-LABEL: @test_mm256_maskz_cvttps_epi64 556 // CHECK: @llvm.x86.avx512.mask.cvttps2qq.256 557 return _mm256_maskz_cvttps_epi64(__U, __A); 558 } 559 560 __m128i test_mm_cvttps_epu64(__m128 __A) { 561 // CHECK-LABEL: @test_mm_cvttps_epu64 562 // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.128 563 return _mm_cvttps_epu64(__A); 564 } 565 566 __m128i test_mm_mask_cvttps_epu64(__m128i __W, __mmask8 __U, __m128 __A) { 567 // CHECK-LABEL: @test_mm_mask_cvttps_epu64 568 // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.128 569 return _mm_mask_cvttps_epu64(__W, __U, __A); 570 } 571 572 __m128i test_mm_maskz_cvttps_epu64(__mmask8 __U, __m128 __A) { 573 // CHECK-LABEL: @test_mm_maskz_cvttps_epu64 574 // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.128 575 return _mm_maskz_cvttps_epu64(__U, __A); 576 } 577 578 __m256i test_mm256_cvttps_epu64(__m128 __A) { 579 // CHECK-LABEL: @test_mm256_cvttps_epu64 580 // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.256 581 return _mm256_cvttps_epu64(__A); 582 } 583 584 __m256i test_mm256_mask_cvttps_epu64(__m256i __W, __mmask8 __U, __m128 __A) { 585 // CHECK-LABEL: @test_mm256_mask_cvttps_epu64 586 // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.256 587 return _mm256_mask_cvttps_epu64(__W, __U, __A); 588 } 589 590 __m256i test_mm256_maskz_cvttps_epu64(__mmask8 __U, __m128 __A) { 591 // CHECK-LABEL: @test_mm256_maskz_cvttps_epu64 592 // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.256 593 return _mm256_maskz_cvttps_epu64(__U, __A); 594 } 595 596 __m128d test_mm_cvtepu64_pd(__m128i __A) { 597 // CHECK-LABEL: @test_mm_cvtepu64_pd 598 // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.128 599 return _mm_cvtepu64_pd(__A); 600 } 601 602 __m128d test_mm_mask_cvtepu64_pd(__m128d __W, __mmask8 __U, __m128i __A) { 603 // CHECK-LABEL: @test_mm_mask_cvtepu64_pd 604 // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.128 605 return _mm_mask_cvtepu64_pd(__W, __U, __A); 606 } 607 608 __m128d test_mm_maskz_cvtepu64_pd(__mmask8 __U, __m128i __A) { 609 // CHECK-LABEL: @test_mm_maskz_cvtepu64_pd 610 // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.128 611 return _mm_maskz_cvtepu64_pd(__U, __A); 612 } 613 614 __m256d test_mm256_cvtepu64_pd(__m256i __A) { 615 // CHECK-LABEL: @test_mm256_cvtepu64_pd 616 // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.256 617 return _mm256_cvtepu64_pd(__A); 618 } 619 620 __m256d test_mm256_mask_cvtepu64_pd(__m256d __W, __mmask8 __U, __m256i __A) { 621 // CHECK-LABEL: @test_mm256_mask_cvtepu64_pd 622 // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.256 623 return _mm256_mask_cvtepu64_pd(__W, __U, __A); 624 } 625 626 __m256d test_mm256_maskz_cvtepu64_pd(__mmask8 __U, __m256i __A) { 627 // CHECK-LABEL: @test_mm256_maskz_cvtepu64_pd 628 // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.256 629 return _mm256_maskz_cvtepu64_pd(__U, __A); 630 } 631 632 __m128 test_mm_cvtepu64_ps(__m128i __A) { 633 // CHECK-LABEL: @test_mm_cvtepu64_ps 634 // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.128 635 return _mm_cvtepu64_ps(__A); 636 } 637 638 __m128 test_mm_mask_cvtepu64_ps(__m128 __W, __mmask8 __U, __m128i __A) { 639 // CHECK-LABEL: @test_mm_mask_cvtepu64_ps 640 // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.128 641 return _mm_mask_cvtepu64_ps(__W, __U, __A); 642 } 643 644 __m128 test_mm_maskz_cvtepu64_ps(__mmask8 __U, __m128i __A) { 645 // CHECK-LABEL: @test_mm_maskz_cvtepu64_ps 646 // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.128 647 return _mm_maskz_cvtepu64_ps(__U, __A); 648 } 649 650 __m128 test_mm256_cvtepu64_ps(__m256i __A) { 651 // CHECK-LABEL: @test_mm256_cvtepu64_ps 652 // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.256 653 return _mm256_cvtepu64_ps(__A); 654 } 655 656 __m128 test_mm256_mask_cvtepu64_ps(__m128 __W, __mmask8 __U, __m256i __A) { 657 // CHECK-LABEL: @test_mm256_mask_cvtepu64_ps 658 // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.256 659 return _mm256_mask_cvtepu64_ps(__W, __U, __A); 660 } 661 662 __m128 test_mm256_maskz_cvtepu64_ps(__mmask8 __U, __m256i __A) { 663 // CHECK-LABEL: @test_mm256_maskz_cvtepu64_ps 664 // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.256 665 return _mm256_maskz_cvtepu64_ps(__U, __A); 666 } 667 668 __m128d test_mm_range_pd(__m128d __A, __m128d __B) { 669 // CHECK-LABEL: @test_mm_range_pd 670 // CHECK: @llvm.x86.avx512.mask.range.pd.128 671 return _mm_range_pd(__A, __B, 4); 672 } 673 674 __m128d test_mm_mask_range_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 675 // CHECK-LABEL: @test_mm_mask_range_pd 676 // CHECK: @llvm.x86.avx512.mask.range.pd.128 677 return _mm_mask_range_pd(__W, __U, __A, __B, 4); 678 } 679 680 __m128d test_mm_maskz_range_pd(__mmask8 __U, __m128d __A, __m128d __B) { 681 // CHECK-LABEL: @test_mm_maskz_range_pd 682 // CHECK: @llvm.x86.avx512.mask.range.pd.128 683 return _mm_maskz_range_pd(__U, __A, __B, 4); 684 } 685 686 __m256d test_mm256_range_pd(__m256d __A, __m256d __B) { 687 // CHECK-LABEL: @test_mm256_range_pd 688 // CHECK: @llvm.x86.avx512.mask.range.pd.256 689 return _mm256_range_pd(__A, __B, 4); 690 } 691 692 __m256d test_mm256_mask_range_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 693 // CHECK-LABEL: @test_mm256_mask_range_pd 694 // CHECK: @llvm.x86.avx512.mask.range.pd.256 695 return _mm256_mask_range_pd(__W, __U, __A, __B, 4); 696 } 697 698 __m256d test_mm256_maskz_range_pd(__mmask8 __U, __m256d __A, __m256d __B) { 699 // CHECK-LABEL: @test_mm256_maskz_range_pd 700 // CHECK: @llvm.x86.avx512.mask.range.pd.256 701 return _mm256_maskz_range_pd(__U, __A, __B, 4); 702 } 703 704 __m128 test_mm_range_ps(__m128 __A, __m128 __B) { 705 // CHECK-LABEL: @test_mm_range_ps 706 // CHECK: @llvm.x86.avx512.mask.range.ps.128 707 return _mm_range_ps(__A, __B, 4); 708 } 709 710 __m128 test_mm_mask_range_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 711 // CHECK-LABEL: @test_mm_mask_range_ps 712 // CHECK: @llvm.x86.avx512.mask.range.ps.128 713 return _mm_mask_range_ps(__W, __U, __A, __B, 4); 714 } 715 716 __m128 test_mm_maskz_range_ps(__mmask8 __U, __m128 __A, __m128 __B) { 717 // CHECK-LABEL: @test_mm_maskz_range_ps 718 // CHECK: @llvm.x86.avx512.mask.range.ps.128 719 return _mm_maskz_range_ps(__U, __A, __B, 4); 720 } 721 722 __m256 test_mm256_range_ps(__m256 __A, __m256 __B) { 723 // CHECK-LABEL: @test_mm256_range_ps 724 // CHECK: @llvm.x86.avx512.mask.range.ps.256 725 return _mm256_range_ps(__A, __B, 4); 726 } 727 728 __m256 test_mm256_mask_range_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 729 // CHECK-LABEL: @test_mm256_mask_range_ps 730 // CHECK: @llvm.x86.avx512.mask.range.ps.256 731 return _mm256_mask_range_ps(__W, __U, __A, __B, 4); 732 } 733 734 __m256 test_mm256_maskz_range_ps(__mmask8 __U, __m256 __A, __m256 __B) { 735 // CHECK-LABEL: @test_mm256_maskz_range_ps 736 // CHECK: @llvm.x86.avx512.mask.range.ps.256 737 return _mm256_maskz_range_ps(__U, __A, __B, 4); 738 } 739 740 __m128d test_mm_reduce_pd(__m128d __A) { 741 // CHECK-LABEL: @test_mm_reduce_pd 742 // CHECK: @llvm.x86.avx512.mask.reduce.pd.128 743 return _mm_reduce_pd(__A, 4); 744 } 745 746 __m128d test_mm_mask_reduce_pd(__m128d __W, __mmask8 __U, __m128d __A) { 747 // CHECK-LABEL: @test_mm_mask_reduce_pd 748 // CHECK: @llvm.x86.avx512.mask.reduce.pd.128 749 return _mm_mask_reduce_pd(__W, __U, __A, 4); 750 } 751 752 __m128d test_mm_maskz_reduce_pd(__mmask8 __U, __m128d __A) { 753 // CHECK-LABEL: @test_mm_maskz_reduce_pd 754 // CHECK: @llvm.x86.avx512.mask.reduce.pd.128 755 return _mm_maskz_reduce_pd(__U, __A, 4); 756 } 757 758 __m256d test_mm256_reduce_pd(__m256d __A) { 759 // CHECK-LABEL: @test_mm256_reduce_pd 760 // CHECK: @llvm.x86.avx512.mask.reduce.pd.256 761 return _mm256_reduce_pd(__A, 4); 762 } 763 764 __m256d test_mm256_mask_reduce_pd(__m256d __W, __mmask8 __U, __m256d __A) { 765 // CHECK-LABEL: @test_mm256_mask_reduce_pd 766 // CHECK: @llvm.x86.avx512.mask.reduce.pd.256 767 return _mm256_mask_reduce_pd(__W, __U, __A, 4); 768 } 769 770 __m256d test_mm256_maskz_reduce_pd(__mmask8 __U, __m256d __A) { 771 // CHECK-LABEL: @test_mm256_maskz_reduce_pd 772 // CHECK: @llvm.x86.avx512.mask.reduce.pd.256 773 return _mm256_maskz_reduce_pd(__U, __A, 4); 774 } 775 776 __m128 test_mm_reduce_ps(__m128 __A) { 777 // CHECK-LABEL: @test_mm_reduce_ps 778 // CHECK: @llvm.x86.avx512.mask.reduce.ps.128 779 return _mm_reduce_ps(__A, 4); 780 } 781 782 __m128 test_mm_mask_reduce_ps(__m128 __W, __mmask8 __U, __m128 __A) { 783 // CHECK-LABEL: @test_mm_mask_reduce_ps 784 // CHECK: @llvm.x86.avx512.mask.reduce.ps.128 785 return _mm_mask_reduce_ps(__W, __U, __A, 4); 786 } 787 788 __m128 test_mm_maskz_reduce_ps(__mmask8 __U, __m128 __A) { 789 // CHECK-LABEL: @test_mm_maskz_reduce_ps 790 // CHECK: @llvm.x86.avx512.mask.reduce.ps.128 791 return _mm_maskz_reduce_ps(__U, __A, 4); 792 } 793 794 __m256 test_mm256_reduce_ps(__m256 __A) { 795 // CHECK-LABEL: @test_mm256_reduce_ps 796 // CHECK: @llvm.x86.avx512.mask.reduce.ps.256 797 return _mm256_reduce_ps(__A, 4); 798 } 799 800 __m256 test_mm256_mask_reduce_ps(__m256 __W, __mmask8 __U, __m256 __A) { 801 // CHECK-LABEL: @test_mm256_mask_reduce_ps 802 // CHECK: @llvm.x86.avx512.mask.reduce.ps.256 803 return _mm256_mask_reduce_ps(__W, __U, __A, 4); 804 } 805 806 __m256 test_mm256_maskz_reduce_ps(__mmask8 __U, __m256 __A) { 807 // CHECK-LABEL: @test_mm256_maskz_reduce_ps 808 // CHECK: @llvm.x86.avx512.mask.reduce.ps.256 809 return _mm256_maskz_reduce_ps(__U, __A, 4); 810 } 811