From: Asaf Badouh Date: Tue, 28 Jul 2015 10:30:56 +0000 (+0000) Subject: [X86][AVX512VL] add AVX512VL intrinsics 2 out of 4 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dda0594c8a7bcda17fa9116b02904e012f5d8f67;p=clang [X86][AVX512VL] add AVX512VL intrinsics 2 out of 4 http://reviews.llvm.org/D11526 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@243402 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/BuiltinsX86.def b/include/clang/Basic/BuiltinsX86.def index 5b72f708fa..b8f569dc44 100644 --- a/include/clang/Basic/BuiltinsX86.def +++ b/include/clang/Basic/BuiltinsX86.def @@ -1298,5 +1298,45 @@ BUILTIN(__builtin_ia32_cvtudq2pd128_mask, "V2dV4iV2dUc", "") BUILTIN(__builtin_ia32_cvtudq2pd256_mask, "V4dV4iV4dUc", "") BUILTIN(__builtin_ia32_cvtudq2ps128_mask, "V4fV4iV4fUc", "") BUILTIN(__builtin_ia32_cvtudq2ps256_mask, "V8fV8iV8fUc", "") +BUILTIN(__builtin_ia32_divpd_mask, "V2dV2dV2dV2dUc", "") +BUILTIN(__builtin_ia32_divpd256_mask, "V4dV4dV4dV4dUc", "") +BUILTIN(__builtin_ia32_divps_mask, "V4fV4fV4fV4fUc", "") +BUILTIN(__builtin_ia32_divps256_mask, "V8fV8fV8fV8fUc", "") +BUILTIN(__builtin_ia32_expanddf128_mask, "V2dV2dV2dUc", "") +BUILTIN(__builtin_ia32_expanddf256_mask, "V4dV4dV4dUc", "") +BUILTIN(__builtin_ia32_expanddi128_mask, "V2LLiV2LLiV2LLiUc", "") +BUILTIN(__builtin_ia32_expanddi256_mask, "V4LLiV4LLiV4LLiUc", "") +BUILTIN(__builtin_ia32_expandloaddf128_mask, "V2dV2d*V2dUc", "") +BUILTIN(__builtin_ia32_expandloaddf256_mask, "V4dV4d*V4dUc", "") +BUILTIN(__builtin_ia32_expandloaddi128_mask, "V4iV2LLi*V2LLiUc", "") +BUILTIN(__builtin_ia32_expandloaddi256_mask, "V4LLiV4LLi*V4LLiUc", "") +BUILTIN(__builtin_ia32_expandloadsf128_mask, "V4fV4f*V4fUc", "") +BUILTIN(__builtin_ia32_expandloadsf256_mask, "V8fV8f*V8fUc", "") +BUILTIN(__builtin_ia32_expandloadsi128_mask, "V4iV4i*V4iUc", "") +BUILTIN(__builtin_ia32_expandloadsi256_mask, "V8iV8i*V8iUc", "") +BUILTIN(__builtin_ia32_expandsf128_mask, "V4fV4fV4fUc", "") +BUILTIN(__builtin_ia32_expandsf256_mask, "V8fV8fV8fUc", "") +BUILTIN(__builtin_ia32_expandsi128_mask, "V4iV4iV4iUc", "") +BUILTIN(__builtin_ia32_expandsi256_mask, "V8iV8iV8iUc", "") +BUILTIN(__builtin_ia32_getexppd128_mask, "V2dV2dV2dUc", "") +BUILTIN(__builtin_ia32_getexppd256_mask, "V4dV4dV4dUc", "") +BUILTIN(__builtin_ia32_getexpps128_mask, "V4fV4fV4fUc", "") +BUILTIN(__builtin_ia32_getexpps256_mask, "V8fV8fV8fUc", "") +BUILTIN(__builtin_ia32_maxpd_mask, "V2dV2dV2dV2dUc", "") +BUILTIN(__builtin_ia32_maxpd256_mask, "V4dV4dV4dV4dUc", "") +BUILTIN(__builtin_ia32_maxps_mask, "V4fV4fV4fV4fUc", "") +BUILTIN(__builtin_ia32_maxps256_mask, "V8fV8fV8fV8fUc", "") +BUILTIN(__builtin_ia32_minpd_mask, "V2dV2dV2dV2dUc", "") +BUILTIN(__builtin_ia32_minpd256_mask, "V4dV4dV4dV4dUc", "") +BUILTIN(__builtin_ia32_minps_mask, "V4fV4fV4fV4fUc", "") +BUILTIN(__builtin_ia32_minps256_mask, "V8fV8fV8fV8fUc", "") +BUILTIN(__builtin_ia32_mulpd_mask, "V2dV2dV2dV2dUc", "") +BUILTIN(__builtin_ia32_mulpd256_mask, "V4dV4dV4dV4dUc", "") +BUILTIN(__builtin_ia32_mulps_mask, "V4fV4fV4fV4fUc", "") +BUILTIN(__builtin_ia32_mulps256_mask, "V8fV8fV8fV8fUc", "") +BUILTIN(__builtin_ia32_pabsd128_mask, "V4iV4iV4iUc", "") +BUILTIN(__builtin_ia32_pabsd256_mask, "V8iV8iV8iUc", "") +BUILTIN(__builtin_ia32_pabsq128_mask, "V2LLiV2LLiV2LLiUc", "") +BUILTIN(__builtin_ia32_pabsq256_mask, "V4LLiV4LLiV4LLiUc", "") #undef BUILTIN diff --git a/lib/Headers/avx512vlintrin.h b/lib/Headers/avx512vlintrin.h index f3201acb0a..c65bdefaab 100644 --- a/lib/Headers/avx512vlintrin.h +++ b/lib/Headers/avx512vlintrin.h @@ -2793,6 +2793,705 @@ _mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A) { (__mmask8) __U); } +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_mask_div_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_maskz_div_pd (__mmask8 __U, __m128d __A, __m128d __B) { + return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_mask_div_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) { + return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_maskz_div_pd (__mmask8 __U, __m256d __A, __m256d __B) { + return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_mask_div_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_maskz_div_ps (__mmask8 __U, __m128 __A, __m128 __B) { + return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_mask_div_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { + return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_maskz_div_ps (__mmask8 __U, __m256 __A, __m256 __B) { + return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A) { + return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A, + (__v2df) __W, + (__mmask8) __U); +} + +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_maskz_expand_pd (__mmask8 __U, __m128d __A) { + return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A) { + return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A, + (__v4df) __W, + (__mmask8) __U); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_maskz_expand_pd (__mmask8 __U, __m256d __A) { + return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +static __inline__ __m128i __DEFAULT_FN_ATTRS +_mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { + return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A, + (__v2di) __W, + (__mmask8) __U); +} + +static __inline__ __m128i __DEFAULT_FN_ATTRS +_mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A) { + return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { + return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A, + (__v4di) __W, + (__mmask8) __U); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A) { + return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) { + return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P, + (__v2df) __W, + (__mmask8) + __U); +} + +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) { + return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P, + (__v2df) + _mm_setzero_pd (), + (__mmask8) + __U); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) { + return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P, + (__v4df) __W, + (__mmask8) + __U); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) { + return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) + __U); +} + +static __inline__ __m128i __DEFAULT_FN_ATTRS +_mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) { + return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P, + (__v2di) __W, + (__mmask8) + __U); +} + +static __inline__ __m128i __DEFAULT_FN_ATTRS +_mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) { + return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) + __U); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U, + void const *__P) { + return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P, + (__v4di) __W, + (__mmask8) + __U); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) { + return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) + __U); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) { + return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P, + (__v4sf) __W, + (__mmask8) __U); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) { + return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) + __U); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) { + return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P, + (__v8sf) __W, + (__mmask8) __U); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) { + return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) + __U); +} + +static __inline__ __m128i __DEFAULT_FN_ATTRS +_mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) { + return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P, + (__v4si) __W, + (__mmask8) + __U); +} + +static __inline__ __m128i __DEFAULT_FN_ATTRS +_mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) { + return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U, + void const *__P) { + return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P, + (__v8si) __W, + (__mmask8) + __U); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) { + return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) + __U); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A) { + return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_maskz_expand_ps (__mmask8 __U, __m128 __A) { + return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A) { + return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A, + (__v8sf) __W, + (__mmask8) __U); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_maskz_expand_ps (__mmask8 __U, __m256 __A) { + return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +static __inline__ __m128i __DEFAULT_FN_ATTRS +_mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A) { + return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A, + (__v4si) __W, + (__mmask8) __U); +} + +static __inline__ __m128i __DEFAULT_FN_ATTRS +_mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A) { + return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A) { + return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A, + (__v8si) __W, + (__mmask8) __U); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A) { + return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_getexp_pd (__m128d __A) { + return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) -1); +} + +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A) { + return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, + (__v2df) __W, + (__mmask8) __U); +} + +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_maskz_getexp_pd (__mmask8 __U, __m128d __A) { + return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_getexp_pd (__m256d __A) { + return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) -1); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A) { + return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, + (__v4df) __W, + (__mmask8) __U); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A) { + return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_getexp_ps (__m128 __A) { + return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) -1); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A) { + return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, + (__v4sf) __W, + (__mmask8) __U); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_maskz_getexp_ps (__mmask8 __U, __m128 __A) { + return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_getexp_ps (__m256 __A) { + return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) -1); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A) { + return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, + (__v8sf) __W, + (__mmask8) __U); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A) { + return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_mask_max_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_maskz_max_pd (__mmask8 __U, __m128d __A, __m128d __B) { + return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_mask_max_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) { + return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_maskz_max_pd (__mmask8 __U, __m256d __A, __m256d __B) { + return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_mask_max_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_maskz_max_ps (__mmask8 __U, __m128 __A, __m128 __B) { + return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_mask_max_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { + return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_maskz_max_ps (__mmask8 __U, __m256 __A, __m256 __B) { + return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_mask_min_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_maskz_min_pd (__mmask8 __U, __m128d __A, __m128d __B) { + return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_mask_min_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) { + return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_maskz_min_pd (__mmask8 __U, __m256d __A, __m256d __B) { + return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_mask_min_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_maskz_min_ps (__mmask8 __U, __m128 __A, __m128 __B) { + return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_mask_min_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { + return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_maskz_min_ps (__mmask8 __U, __m256 __A, __m256 __B) { + return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_mask_mul_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) __W, + (__mmask8) __U); +} + +static __inline__ __m128d __DEFAULT_FN_ATTRS +_mm_maskz_mul_pd (__mmask8 __U, __m128d __A, __m128d __B) { + return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A, + (__v2df) __B, + (__v2df) + _mm_setzero_pd (), + (__mmask8) __U); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_mask_mul_pd (__m256d __W, __mmask8 __U, __m256d __A, + __m256d __B) { + return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) __W, + (__mmask8) __U); +} + +static __inline__ __m256d __DEFAULT_FN_ATTRS +_mm256_maskz_mul_pd (__mmask8 __U, __m256d __A, __m256d __B) { + return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A, + (__v4df) __B, + (__v4df) + _mm256_setzero_pd (), + (__mmask8) __U); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_mask_mul_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) __W, + (__mmask8) __U); +} + +static __inline__ __m128 __DEFAULT_FN_ATTRS +_mm_maskz_mul_ps (__mmask8 __U, __m128 __A, __m128 __B) { + return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A, + (__v4sf) __B, + (__v4sf) + _mm_setzero_ps (), + (__mmask8) __U); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_mask_mul_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { + return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) __W, + (__mmask8) __U); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm256_maskz_mul_ps (__mmask8 __U, __m256 __A, __m256 __B) { + return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A, + (__v8sf) __B, + (__v8sf) + _mm256_setzero_ps (), + (__mmask8) __U); +} + +static __inline__ __m128i __DEFAULT_FN_ATTRS +_mm_mask_abs_epi32 (__m128i __W, __mmask8 __U, __m128i __A) { + return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A, + (__v4si) __W, + (__mmask8) __U); +} + +static __inline__ __m128i __DEFAULT_FN_ATTRS +_mm_maskz_abs_epi32 (__mmask8 __U, __m128i __A) { + return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A, + (__v4si) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm256_mask_abs_epi32 (__m256i __W, __mmask8 __U, __m256i __A) { + return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A, + (__v8si) __W, + (__mmask8) __U); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm256_maskz_abs_epi32 (__mmask8 __U, __m256i __A) { + return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + +static __inline__ __m128i __DEFAULT_FN_ATTRS +_mm_abs_epi64 (__m128i __A) { + return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) -1); +} + +static __inline__ __m128i __DEFAULT_FN_ATTRS +_mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { + return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A, + (__v2di) __W, + (__mmask8) __U); +} + +static __inline__ __m128i __DEFAULT_FN_ATTRS +_mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) { + return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A, + (__v2di) + _mm_setzero_si128 (), + (__mmask8) __U); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm256_abs_epi64 (__m256i __A) { + return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) -1); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { + return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A, + (__v4di) __W, + (__mmask8) __U); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) { + return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A, + (__v4di) + _mm256_setzero_si256 (), + (__mmask8) __U); +} + #undef __DEFAULT_FN_ATTRS #endif /* __AVX512VLINTRIN_H */ diff --git a/test/CodeGen/avx512vl-builtins.c b/test/CodeGen/avx512vl-builtins.c index db7474048a..0088660143 100644 --- a/test/CodeGen/avx512vl-builtins.c +++ b/test/CodeGen/avx512vl-builtins.c @@ -2097,3 +2097,433 @@ __m256 test_mm256_maskz_cvtepu32_ps(__mmask8 __U, __m256i __A) { // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.256 return _mm256_maskz_cvtepu32_ps(__U,__A); } +__m128d test_mm_mask_div_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_div_pd + // CHECK: @llvm.x86.avx512.mask.div.pd.128 + return _mm_mask_div_pd(__W,__U,__A,__B); +} +__m128d test_mm_maskz_div_pd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_div_pd + // CHECK: @llvm.x86.avx512.mask.div.pd.128 + return _mm_maskz_div_pd(__U,__A,__B); +} +__m256d test_mm256_mask_div_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { + // CHECK-LABEL: @test_mm256_mask_div_pd + // CHECK: @llvm.x86.avx512.mask.div.pd.256 + return _mm256_mask_div_pd(__W,__U,__A,__B); +} +__m256d test_mm256_maskz_div_pd(__mmask8 __U, __m256d __A, __m256d __B) { + // CHECK-LABEL: @test_mm256_maskz_div_pd + // CHECK: @llvm.x86.avx512.mask.div.pd.256 + return _mm256_maskz_div_pd(__U,__A,__B); +} +__m128 test_mm_mask_div_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_div_ps + // CHECK: @llvm.x86.avx512.mask.div.ps.128 + return _mm_mask_div_ps(__W,__U,__A,__B); +} +__m128 test_mm_maskz_div_ps(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_div_ps + // CHECK: @llvm.x86.avx512.mask.div.ps.128 + return _mm_maskz_div_ps(__U,__A,__B); +} +__m256 test_mm256_mask_div_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { + // CHECK-LABEL: @test_mm256_mask_div_ps + // CHECK: @llvm.x86.avx512.mask.div.ps.256 + return _mm256_mask_div_ps(__W,__U,__A,__B); +} +__m256 test_mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) { + // CHECK-LABEL: @test_mm256_maskz_div_ps + // CHECK: @llvm.x86.avx512.mask.div.ps.256 + return _mm256_maskz_div_ps(__U,__A,__B); +} +__m128d test_mm_mask_expand_pd(__m128d __W, __mmask8 __U, __m128d __A) { + // CHECK-LABEL: @test_mm_mask_expand_pd + // CHECK: @llvm.x86.avx512.mask.expand.pd.128 + return _mm_mask_expand_pd(__W,__U,__A); +} +__m128d test_mm_maskz_expand_pd(__mmask8 __U, __m128d __A) { + // CHECK-LABEL: @test_mm_maskz_expand_pd + // CHECK: @llvm.x86.avx512.mask.expand.pd.128 + return _mm_maskz_expand_pd(__U,__A); +} +__m256d test_mm256_mask_expand_pd(__m256d __W, __mmask8 __U, __m256d __A) { + // CHECK-LABEL: @test_mm256_mask_expand_pd + // CHECK: @llvm.x86.avx512.mask.expand.pd.256 + return _mm256_mask_expand_pd(__W,__U,__A); +} +__m256d test_mm256_maskz_expand_pd(__mmask8 __U, __m256d __A) { + // CHECK-LABEL: @test_mm256_maskz_expand_pd + // CHECK: @llvm.x86.avx512.mask.expand.pd.256 + return _mm256_maskz_expand_pd(__U,__A); +} +__m128i test_mm_mask_expand_epi64(__m128i __W, __mmask8 __U, __m128i __A) { + // CHECK-LABEL: @test_mm_mask_expand_epi64 + // CHECK: @llvm.x86.avx512.mask.expand.q.128 + return _mm_mask_expand_epi64(__W,__U,__A); +} +__m128i test_mm_maskz_expand_epi64(__mmask8 __U, __m128i __A) { + // CHECK-LABEL: @test_mm_maskz_expand_epi64 + // CHECK: @llvm.x86.avx512.mask.expand.q.128 + return _mm_maskz_expand_epi64(__U,__A); +} +__m256i test_mm256_mask_expand_epi64(__m256i __W, __mmask8 __U, __m256i __A) { + // CHECK-LABEL: @test_mm256_mask_expand_epi64 + // CHECK: @llvm.x86.avx512.mask.expand.q.256 + return _mm256_mask_expand_epi64(__W,__U,__A); +} +__m256i test_mm256_maskz_expand_epi64(__mmask8 __U, __m256i __A) { + // CHECK-LABEL: @test_mm256_maskz_expand_epi64 + // CHECK: @llvm.x86.avx512.mask.expand.q.256 + return _mm256_maskz_expand_epi64(__U,__A); +} +__m128d test_mm_mask_expandloadu_pd(__m128d __W, __mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm_mask_expandloadu_pd + // CHECK: @llvm.x86.avx512.mask.expand.load.pd.128 + return _mm_mask_expandloadu_pd(__W,__U,__P); +} +__m128d test_mm_maskz_expandloadu_pd(__mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm_maskz_expandloadu_pd + // CHECK: @llvm.x86.avx512.mask.expand.load.pd.128 + return _mm_maskz_expandloadu_pd(__U,__P); +} +__m256d test_mm256_mask_expandloadu_pd(__m256d __W, __mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm256_mask_expandloadu_pd + // CHECK: @llvm.x86.avx512.mask.expand.load.pd.256 + return _mm256_mask_expandloadu_pd(__W,__U,__P); +} +__m256d test_mm256_maskz_expandloadu_pd(__mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm256_maskz_expandloadu_pd + // CHECK: @llvm.x86.avx512.mask.expand.load.pd.256 + return _mm256_maskz_expandloadu_pd(__U,__P); +} +__m128i test_mm_mask_expandloadu_epi64(__m128i __W, __mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm_mask_expandloadu_epi64 + // CHECK: @llvm.x86.avx512.mask.expand.load.q.128 + return _mm_mask_expandloadu_epi64(__W,__U,__P); +} +__m128i test_mm_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm_maskz_expandloadu_epi64 + // CHECK: @llvm.x86.avx512.mask.expand.load.q.128 + return _mm_maskz_expandloadu_epi64(__U,__P); +} +__m256i test_mm256_mask_expandloadu_epi64(__m256i __W, __mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm256_mask_expandloadu_epi64 + // CHECK: @llvm.x86.avx512.mask.expand.load.q.256 + return _mm256_mask_expandloadu_epi64(__W,__U,__P); +} +__m256i test_mm256_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi64 + // CHECK: @llvm.x86.avx512.mask.expand.load.q.256 + return _mm256_maskz_expandloadu_epi64(__U,__P); +} +__m128 test_mm_mask_expandloadu_ps(__m128 __W, __mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm_mask_expandloadu_ps + // CHECK: @llvm.x86.avx512.mask.expand.load.ps.128 + return _mm_mask_expandloadu_ps(__W,__U,__P); +} +__m128 test_mm_maskz_expandloadu_ps(__mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm_maskz_expandloadu_ps + // CHECK: @llvm.x86.avx512.mask.expand.load.ps.128 + return _mm_maskz_expandloadu_ps(__U,__P); +} +__m256 test_mm256_mask_expandloadu_ps(__m256 __W, __mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm256_mask_expandloadu_ps + // CHECK: @llvm.x86.avx512.mask.expand.load.ps.256 + return _mm256_mask_expandloadu_ps(__W,__U,__P); +} +__m256 test_mm256_maskz_expandloadu_ps(__mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm256_maskz_expandloadu_ps + // CHECK: @llvm.x86.avx512.mask.expand.load.ps.256 + return _mm256_maskz_expandloadu_ps(__U,__P); +} +__m128i test_mm_mask_expandloadu_epi32(__m128i __W, __mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm_mask_expandloadu_epi32 + // CHECK: @llvm.x86.avx512.mask.expand.load.d.128 + return _mm_mask_expandloadu_epi32(__W,__U,__P); +} +__m128i test_mm_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm_maskz_expandloadu_epi32 + // CHECK: @llvm.x86.avx512.mask.expand.load.d.128 + return _mm_maskz_expandloadu_epi32(__U,__P); +} +__m256i test_mm256_mask_expandloadu_epi32(__m256i __W, __mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm256_mask_expandloadu_epi32 + // CHECK: @llvm.x86.avx512.mask.expand.load.d.256 + return _mm256_mask_expandloadu_epi32(__W,__U,__P); +} +__m256i test_mm256_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) { + // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi32 + // CHECK: @llvm.x86.avx512.mask.expand.load.d.256 + return _mm256_maskz_expandloadu_epi32(__U,__P); +} +__m128 test_mm_mask_expand_ps(__m128 __W, __mmask8 __U, __m128 __A) { + // CHECK-LABEL: @test_mm_mask_expand_ps + // CHECK: @llvm.x86.avx512.mask.expand.ps.128 + return _mm_mask_expand_ps(__W,__U,__A); +} +__m128 test_mm_maskz_expand_ps(__mmask8 __U, __m128 __A) { + // CHECK-LABEL: @test_mm_maskz_expand_ps + // CHECK: @llvm.x86.avx512.mask.expand.ps.128 + return _mm_maskz_expand_ps(__U,__A); +} +__m256 test_mm256_mask_expand_ps(__m256 __W, __mmask8 __U, __m256 __A) { + // CHECK-LABEL: @test_mm256_mask_expand_ps + // CHECK: @llvm.x86.avx512.mask.expand.ps.256 + return _mm256_mask_expand_ps(__W,__U,__A); +} +__m256 test_mm256_maskz_expand_ps(__mmask8 __U, __m256 __A) { + // CHECK-LABEL: @test_mm256_maskz_expand_ps + // CHECK: @llvm.x86.avx512.mask.expand.ps.256 + return _mm256_maskz_expand_ps(__U,__A); +} +__m128i test_mm_mask_expand_epi32(__m128i __W, __mmask8 __U, __m128i __A) { + // CHECK-LABEL: @test_mm_mask_expand_epi32 + // CHECK: @llvm.x86.avx512.mask.expand.d.128 + return _mm_mask_expand_epi32(__W,__U,__A); +} +__m128i test_mm_maskz_expand_epi32(__mmask8 __U, __m128i __A) { + // CHECK-LABEL: @test_mm_maskz_expand_epi32 + // CHECK: @llvm.x86.avx512.mask.expand.d.128 + return _mm_maskz_expand_epi32(__U,__A); +} +__m256i test_mm256_mask_expand_epi32(__m256i __W, __mmask8 __U, __m256i __A) { + // CHECK-LABEL: @test_mm256_mask_expand_epi32 + // CHECK: @llvm.x86.avx512.mask.expand.d.256 + return _mm256_mask_expand_epi32(__W,__U,__A); +} +__m256i test_mm256_maskz_expand_epi32(__mmask8 __U, __m256i __A) { + // CHECK-LABEL: @test_mm256_maskz_expand_epi32 + // CHECK: @llvm.x86.avx512.mask.expand.d.256 + return _mm256_maskz_expand_epi32(__U,__A); +} +__m128d test_mm_getexp_pd(__m128d __A) { + // CHECK-LABEL: @test_mm_getexp_pd + // CHECK: @llvm.x86.avx512.mask.getexp.pd.128 + return _mm_getexp_pd(__A); +} +__m128d test_mm_mask_getexp_pd(__m128d __W, __mmask8 __U, __m128d __A) { + // CHECK-LABEL: @test_mm_mask_getexp_pd + // CHECK: @llvm.x86.avx512.mask.getexp.pd.128 + return _mm_mask_getexp_pd(__W,__U,__A); +} +__m128d test_mm_maskz_getexp_pd(__mmask8 __U, __m128d __A) { + // CHECK-LABEL: @test_mm_maskz_getexp_pd + // CHECK: @llvm.x86.avx512.mask.getexp.pd.128 + return _mm_maskz_getexp_pd(__U,__A); +} +__m256d test_mm256_getexp_pd(__m256d __A) { + // CHECK-LABEL: @test_mm256_getexp_pd + // CHECK: @llvm.x86.avx512.mask.getexp.pd.256 + return _mm256_getexp_pd(__A); +} +__m256d test_mm256_mask_getexp_pd(__m256d __W, __mmask8 __U, __m256d __A) { + // CHECK-LABEL: @test_mm256_mask_getexp_pd + // CHECK: @llvm.x86.avx512.mask.getexp.pd.256 + return _mm256_mask_getexp_pd(__W,__U,__A); +} +__m256d test_mm256_maskz_getexp_pd(__mmask8 __U, __m256d __A) { + // CHECK-LABEL: @test_mm256_maskz_getexp_pd + // CHECK: @llvm.x86.avx512.mask.getexp.pd.256 + return _mm256_maskz_getexp_pd(__U,__A); +} +__m128 test_mm_getexp_ps(__m128 __A) { + // CHECK-LABEL: @test_mm_getexp_ps + // CHECK: @llvm.x86.avx512.mask.getexp.ps.128 + return _mm_getexp_ps(__A); +} +__m128 test_mm_mask_getexp_ps(__m128 __W, __mmask8 __U, __m128 __A) { + // CHECK-LABEL: @test_mm_mask_getexp_ps + // CHECK: @llvm.x86.avx512.mask.getexp.ps.128 + return _mm_mask_getexp_ps(__W,__U,__A); +} +__m128 test_mm_maskz_getexp_ps(__mmask8 __U, __m128 __A) { + // CHECK-LABEL: @test_mm_maskz_getexp_ps + // CHECK: @llvm.x86.avx512.mask.getexp.ps.128 + return _mm_maskz_getexp_ps(__U,__A); +} +__m256 test_mm256_getexp_ps(__m256 __A) { + // CHECK-LABEL: @test_mm256_getexp_ps + // CHECK: @llvm.x86.avx512.mask.getexp.ps.256 + return _mm256_getexp_ps(__A); +} +__m256 test_mm256_mask_getexp_ps(__m256 __W, __mmask8 __U, __m256 __A) { + // CHECK-LABEL: @test_mm256_mask_getexp_ps + // CHECK: @llvm.x86.avx512.mask.getexp.ps.256 + return _mm256_mask_getexp_ps(__W,__U,__A); +} +__m256 test_mm256_maskz_getexp_ps(__mmask8 __U, __m256 __A) { + // CHECK-LABEL: @test_mm256_maskz_getexp_ps + // CHECK: @llvm.x86.avx512.mask.getexp.ps.256 + return _mm256_maskz_getexp_ps(__U,__A); +} +__m128d test_mm_mask_max_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_max_pd + // CHECK: @llvm.x86.avx512.mask.max.pd + return _mm_mask_max_pd(__W,__U,__A,__B); +} +__m128d test_mm_maskz_max_pd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_max_pd + // CHECK: @llvm.x86.avx512.mask.max.pd + return _mm_maskz_max_pd(__U,__A,__B); +} +__m256d test_mm256_mask_max_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { + // CHECK-LABEL: @test_mm256_mask_max_pd + // CHECK: @llvm.x86.avx512.mask.max.pd.256 + return _mm256_mask_max_pd(__W,__U,__A,__B); +} +__m256d test_mm256_maskz_max_pd(__mmask8 __U, __m256d __A, __m256d __B) { + // CHECK-LABEL: @test_mm256_maskz_max_pd + // CHECK: @llvm.x86.avx512.mask.max.pd.256 + return _mm256_maskz_max_pd(__U,__A,__B); +} +__m128 test_mm_mask_max_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_max_ps + // CHECK: @llvm.x86.avx512.mask.max.ps + return _mm_mask_max_ps(__W,__U,__A,__B); +} +__m128 test_mm_maskz_max_ps(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_max_ps + // CHECK: @llvm.x86.avx512.mask.max.ps + return _mm_maskz_max_ps(__U,__A,__B); +} +__m256 test_mm256_mask_max_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { + // CHECK-LABEL: @test_mm256_mask_max_ps + // CHECK: @llvm.x86.avx512.mask.max.ps.256 + return _mm256_mask_max_ps(__W,__U,__A,__B); +} +__m256 test_mm256_maskz_max_ps(__mmask8 __U, __m256 __A, __m256 __B) { + // CHECK-LABEL: @test_mm256_maskz_max_ps + // CHECK: @llvm.x86.avx512.mask.max.ps.256 + return _mm256_maskz_max_ps(__U,__A,__B); +} +__m128d test_mm_mask_min_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_min_pd + // CHECK: @llvm.x86.avx512.mask.min.pd + return _mm_mask_min_pd(__W,__U,__A,__B); +} +__m128d test_mm_maskz_min_pd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_min_pd + // CHECK: @llvm.x86.avx512.mask.min.pd + return _mm_maskz_min_pd(__U,__A,__B); +} +__m256d test_mm256_mask_min_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { + // CHECK-LABEL: @test_mm256_mask_min_pd + // CHECK: @llvm.x86.avx512.mask.min.pd.256 + return _mm256_mask_min_pd(__W,__U,__A,__B); +} +__m256d test_mm256_maskz_min_pd(__mmask8 __U, __m256d __A, __m256d __B) { + // CHECK-LABEL: @test_mm256_maskz_min_pd + // CHECK: @llvm.x86.avx512.mask.min.pd.256 + return _mm256_maskz_min_pd(__U,__A,__B); +} +__m128 test_mm_mask_min_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_min_ps + // CHECK: @llvm.x86.avx512.mask.min.ps + return _mm_mask_min_ps(__W,__U,__A,__B); +} +__m128 test_mm_maskz_min_ps(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_min_ps + // CHECK: @llvm.x86.avx512.mask.min.ps + return _mm_maskz_min_ps(__U,__A,__B); +} +__m256 test_mm256_mask_min_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { + // CHECK-LABEL: @test_mm256_mask_min_ps + // CHECK: @llvm.x86.avx512.mask.min.ps.256 + return _mm256_mask_min_ps(__W,__U,__A,__B); +} +__m256 test_mm256_maskz_min_ps(__mmask8 __U, __m256 __A, __m256 __B) { + // CHECK-LABEL: @test_mm256_maskz_min_ps + // CHECK: @llvm.x86.avx512.mask.min.ps.256 + return _mm256_maskz_min_ps(__U,__A,__B); +} +__m128d test_mm_mask_mul_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_mul_pd + // CHECK: @llvm.x86.avx512.mask.mul.pd + return _mm_mask_mul_pd(__W,__U,__A,__B); +} +__m128d test_mm_maskz_mul_pd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_mul_pd + // CHECK: @llvm.x86.avx512.mask.mul.pd + return _mm_maskz_mul_pd(__U,__A,__B); +} +__m256d test_mm256_mask_mul_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { + // CHECK-LABEL: @test_mm256_mask_mul_pd + // CHECK: @llvm.x86.avx512.mask.mul.pd.256 + return _mm256_mask_mul_pd(__W,__U,__A,__B); +} +__m256d test_mm256_maskz_mul_pd(__mmask8 __U, __m256d __A, __m256d __B) { + // CHECK-LABEL: @test_mm256_maskz_mul_pd + // CHECK: @llvm.x86.avx512.mask.mul.pd.256 + return _mm256_maskz_mul_pd(__U,__A,__B); +} +__m128 test_mm_mask_mul_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_mul_ps + // CHECK: @llvm.x86.avx512.mask.mul.ps + return _mm_mask_mul_ps(__W,__U,__A,__B); +} +__m128 test_mm_maskz_mul_ps(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_mul_ps + // CHECK: @llvm.x86.avx512.mask.mul.ps + return _mm_maskz_mul_ps(__U,__A,__B); +} +__m256 test_mm256_mask_mul_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { + // CHECK-LABEL: @test_mm256_mask_mul_ps + // CHECK: @llvm.x86.avx512.mask.mul.ps.256 + return _mm256_mask_mul_ps(__W,__U,__A,__B); +} +__m256 test_mm256_maskz_mul_ps(__mmask8 __U, __m256 __A, __m256 __B) { + // CHECK-LABEL: @test_mm256_maskz_mul_ps + // CHECK: @llvm.x86.avx512.mask.mul.ps.256 + return _mm256_maskz_mul_ps(__U,__A,__B); +} +__m128i test_mm_mask_abs_epi32(__m128i __W, __mmask8 __U, __m128i __A) { + // CHECK-LABEL: @test_mm_mask_abs_epi32 + // CHECK: @llvm.x86.avx512.mask.pabs.d.128 + return _mm_mask_abs_epi32(__W,__U,__A); +} +__m128i test_mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) { + // CHECK-LABEL: @test_mm_maskz_abs_epi32 + // CHECK: @llvm.x86.avx512.mask.pabs.d.128 + return _mm_maskz_abs_epi32(__U,__A); +} +__m256i test_mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) { + // CHECK-LABEL: @test_mm256_mask_abs_epi32 + // CHECK: @llvm.x86.avx512.mask.pabs.d.256 + return _mm256_mask_abs_epi32(__W,__U,__A); +} +__m256i test_mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) { + // CHECK-LABEL: @test_mm256_maskz_abs_epi32 + // CHECK: @llvm.x86.avx512.mask.pabs.d.256 + return _mm256_maskz_abs_epi32(__U,__A); +} +__m128i test_mm_abs_epi64(__m128i __A) { + // CHECK-LABEL: @test_mm_abs_epi64 + // CHECK: @llvm.x86.avx512.mask.pabs.q.128 + return _mm_abs_epi64(__A); +} +__m128i test_mm_mask_abs_epi64(__m128i __W, __mmask8 __U, __m128i __A) { + // CHECK-LABEL: @test_mm_mask_abs_epi64 + // CHECK: @llvm.x86.avx512.mask.pabs.q.128 + return _mm_mask_abs_epi64(__W,__U,__A); +} +__m128i test_mm_maskz_abs_epi64(__mmask8 __U, __m128i __A) { + // CHECK-LABEL: @test_mm_maskz_abs_epi64 + // CHECK: @llvm.x86.avx512.mask.pabs.q.128 + return _mm_maskz_abs_epi64(__U,__A); +} +__m256i test_mm256_abs_epi64(__m256i __A) { + // CHECK-LABEL: @test_mm256_abs_epi64 + // CHECK: @llvm.x86.avx512.mask.pabs.q.256 + return _mm256_abs_epi64(__A); +} +__m256i test_mm256_mask_abs_epi64(__m256i __W, __mmask8 __U, __m256i __A) { + // CHECK-LABEL: @test_mm256_mask_abs_epi64 + // CHECK: @llvm.x86.avx512.mask.pabs.q.256 + return _mm256_mask_abs_epi64(__W,__U,__A); +} +__m256i test_mm256_maskz_abs_epi64(__mmask8 __U, __m256i __A) { + // CHECK-LABEL: @test_mm256_maskz_abs_epi64 + // CHECK: @llvm.x86.avx512.mask.pabs.q.256 + return _mm256_maskz_abs_epi64(__U,__A); +}