Index: lib/Headers/avx512fintrin.h =================================================================== --- lib/Headers/avx512fintrin.h +++ lib/Headers/avx512fintrin.h @@ -2680,6 +2680,24 @@ _MM_FROUND_CUR_DIRECTION); } +static __inline__ __m512i __DEFAULT_FN_ATTRS +_mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A) +{ + return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A, + (__v16si) __W, + (__mmask16) __U, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m512i __DEFAULT_FN_ATTRS +_mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A) +{ + return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A, + (__v16si) _mm512_setzero_si512 (), + (__mmask16) __U, + _MM_FROUND_CUR_DIRECTION); +} + #define _mm512_cvt_roundepi32_ps(A, R) __extension__ ({ \ (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), \ (__v16sf)_mm512_setzero_ps(), \ @@ -2690,15 +2708,85 @@ (__v16sf)_mm512_setzero_ps(), \ (__mmask16)-1, (R)); }) +static __inline__ __m512 __DEFAULT_FN_ATTRS +_mm512_cvtepu32_ps (__m512i __A) +{ + return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A, + (__v16sf) _mm512_undefined_ps (), + (__mmask16) -1, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m512 __DEFAULT_FN_ATTRS +_mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A) +{ + return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A, + (__v16sf) __W, + (__mmask16) __U, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m512 __DEFAULT_FN_ATTRS +_mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A) +{ + return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A, + (__v16sf) _mm512_setzero_ps (), + (__mmask16) __U, + _MM_FROUND_CUR_DIRECTION); +} + static __inline __m512d __DEFAULT_FN_ATTRS _mm512_cvtepi32_pd(__m256i __A) { return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A, - (__v8df) + (__v8df) _mm512_setzero_pd (), (__mmask8) -1); } +static __inline__ __m512d __DEFAULT_FN_ATTRS +_mm512_mask_cvtepi32_pd (__m512d __W, __mmask8 __U, __m256i __A) +{ + return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A, + (__v8df) __W, + (__mmask8) __U); +} + +static __inline__ __m512d __DEFAULT_FN_ATTRS +_mm512_maskz_cvtepi32_pd (__mmask8 __U, __m256i __A) +{ + return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A, + (__v8df) _mm512_setzero_pd (), + (__mmask8) __U); +} + +static __inline__ __m512 __DEFAULT_FN_ATTRS +_mm512_cvtepi32_ps (__m512i __A) +{ + return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A, + (__v16sf) _mm512_undefined_ps (), + (__mmask16) -1, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m512 __DEFAULT_FN_ATTRS +_mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A) +{ + return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A, + (__v16sf) __W, + (__mmask16) __U, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m512 __DEFAULT_FN_ATTRS +_mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A) +{ + return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A, + (__v16sf) _mm512_setzero_ps (), + (__mmask16) __U, + _MM_FROUND_CUR_DIRECTION); +} + static __inline __m512d __DEFAULT_FN_ATTRS _mm512_cvtepu32_pd(__m256i __A) { @@ -2708,11 +2796,54 @@ (__mmask8) -1); } +static __inline__ __m512d __DEFAULT_FN_ATTRS +_mm512_mask_cvtepu32_pd (__m512d __W, __mmask8 __U, __m256i __A) +{ + return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A, + (__v8df) __W, + (__mmask8) __U); +} + +static __inline__ __m512d __DEFAULT_FN_ATTRS +_mm512_maskz_cvtepu32_pd (__mmask8 __U, __m256i __A) +{ + return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A, + (__v8df) _mm512_setzero_pd (), + (__mmask8) __U); +} + #define _mm512_cvt_roundpd_ps(A, R) __extension__ ({ \ (__m256)__builtin_ia32_cvtpd2ps512_mask((__v8df)(A), \ (__v8sf)_mm256_setzero_ps(), \ (__mmask8)-1, (R)); }) +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm512_cvtpd_ps (__m512d __A) +{ + return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A, + (__v8sf) _mm256_undefined_ps (), + (__mmask8) -1, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A) +{ + return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A, + (__v8sf) __W, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m256 __DEFAULT_FN_ATTRS +_mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A) +{ + return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A, + (__v8sf) _mm256_setzero_ps (), + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + #define _mm512_cvtps_ph(A, I) __extension__ ({ \ (__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(A), (I), \ (__v16hi)_mm256_setzero_si256(), \ @@ -2722,19 +2853,28 @@ _mm512_cvtph_ps(__m256i __A) { return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A, - (__v16sf) + (__v16sf) _mm512_setzero_ps (), (__mmask16) -1, _MM_FROUND_CUR_DIRECTION); } -static __inline __m512i __DEFAULT_FN_ATTRS -_mm512_cvttps_epi32(__m512 __a) +static __inline__ __m512 __DEFAULT_FN_ATTRS +_mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A) { - return (__m512i) - __builtin_ia32_cvttps2dq512_mask((__v16sf) __a, - (__v16si) _mm512_setzero_si512 (), - (__mmask16) -1, _MM_FROUND_CUR_DIRECTION); + return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A, + (__v16sf) __W, + (__mmask16) __U, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m512 __DEFAULT_FN_ATTRS +_mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A) +{ + return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A, + (__v16sf) _mm512_setzero_ps (), + (__mmask16) __U, + _MM_FROUND_CUR_DIRECTION); } static __inline __m256i __DEFAULT_FN_ATTRS @@ -2746,6 +2886,24 @@ _MM_FROUND_CUR_DIRECTION); } +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A) +{ + return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A, + (__v8si) __W, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A) +{ + return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A, + (__v8si) _mm256_setzero_si256 (), + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + #define _mm512_cvtt_roundpd_epi32(A, R) __extension__ ({ \ (__m256i)__builtin_ia32_cvttpd2dq512_mask((__v8df)(A), \ (__v8si)_mm256_setzero_si256(), \ @@ -2755,17 +2913,101 @@ (__m512i)__builtin_ia32_cvttps2dq512_mask((__v16sf)(A), \ (__v16si)_mm512_setzero_si512(), \ (__mmask16)-1, (R)); }) + +static __inline __m512i __DEFAULT_FN_ATTRS +_mm512_cvttps_epi32(__m512 __a) +{ + return (__m512i) + __builtin_ia32_cvttps2dq512_mask((__v16sf) __a, + (__v16si) _mm512_setzero_si512 (), + (__mmask16) -1, _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m512i __DEFAULT_FN_ATTRS +_mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A) +{ + return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A, + (__v16si) __W, + (__mmask16) __U, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m512i __DEFAULT_FN_ATTRS +_mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A) +{ + return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A, + (__v16si) _mm512_setzero_si512 (), + (__mmask16) __U, + _MM_FROUND_CUR_DIRECTION); +} #define _mm512_cvt_roundps_epi32(A, R) __extension__ ({ \ (__m512i)__builtin_ia32_cvtps2dq512_mask((__v16sf)(A), \ (__v16si)_mm512_setzero_si512(), \ (__mmask16)-1, (R)); }) +static __inline__ __m512i __DEFAULT_FN_ATTRS +_mm512_cvtps_epi32 (__m512 __A) +{ + return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A, + (__v16si) _mm512_undefined_epi32 (), + (__mmask16) -1, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m512i __DEFAULT_FN_ATTRS +_mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A) +{ + return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A, + (__v16si) __W, + (__mmask16) __U, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m512i __DEFAULT_FN_ATTRS +_mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A) +{ + return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A, + (__v16si) + _mm512_setzero_si512 (), + (__mmask16) __U, + _MM_FROUND_CUR_DIRECTION); +} + #define _mm512_cvt_roundpd_epi32(A, R) __extension__ ({ \ (__m256i)__builtin_ia32_cvtpd2dq512_mask((__v8df)(A), \ (__v8si)_mm256_setzero_si256(), \ (__mmask8)-1, (R)); }) +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm512_cvtpd_epi32 (__m512d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A, + (__v8si) + _mm256_undefined_si256 (), + (__mmask8) -1, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A, + (__v8si) __W, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + #define _mm512_cvt_roundps_epu32(A, R) __extension__ ({ \ (__m512i)__builtin_ia32_cvtps2udq512_mask((__v16sf)(A), \ (__v16si)_mm512_setzero_si512(), \ @@ -2776,6 +3018,34 @@ (__v8si)_mm256_setzero_si256(), \ (__mmask8) -1, (R)); }) +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm512_cvtpd_epu32 (__m512d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A, + (__v8si) + _mm256_undefined_si256 (), + (__mmask8) -1, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A, + (__v8si) __W, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +static __inline__ __m256i __DEFAULT_FN_ATTRS +_mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A) +{ + return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A, + (__v8si) + _mm256_setzero_si256 (), + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} /* Unpack and Interleave */ static __inline __m512d __DEFAULT_FN_ATTRS _mm512_unpackhi_pd(__m512d __a, __m512d __b) Index: test/CodeGen/avx512f-builtins.c =================================================================== --- test/CodeGen/avx512f-builtins.c +++ test/CodeGen/avx512f-builtins.c @@ -5333,3 +5333,213 @@ // CHECK: @llvm.x86.avx512.mask.cmp return _mm_mask_cmp_sd_mask(__M, __X, __Y, 5); } + +__m512i test_mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A) +{ + // CHECK-LABEL: @test_mm512_mask_cvttps_epu32 + // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512 + return _mm512_mask_cvttps_epu32 (__W,__U,__A); +} + +__m512i test_mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A) +{ + // CHECK-LABEL: @test_mm512_maskz_cvttps_epu32 + // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512 + return _mm512_maskz_cvttps_epu32 (__U,__A); +} + +__m512 test_mm512_cvtepu32_ps (__m512i __A) +{ + // CHECK-LABEL: @test_mm512_cvtepu32_ps + // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512 + return _mm512_cvtepu32_ps (__A); +} + +__m512 test_mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A) +{ + // CHECK-LABEL: @test_mm512_mask_cvtepu32_ps + // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512 + return _mm512_mask_cvtepu32_ps (__W,__U,__A); +} + +__m512 test_mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A) +{ + // CHECK-LABEL: @test_mm512_maskz_cvtepu32_ps + // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512 + return _mm512_maskz_cvtepu32_ps (__U,__A); +} + +__m512d test_mm512_mask_cvtepi32_pd (__m512d __W, __mmask8 __U, __m256i __A) +{ + // CHECK-LABEL: @test_mm512_mask_cvtepi32_pd + // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.512 + return _mm512_mask_cvtepi32_pd (__W,__U,__A); +} + +__m512d test_mm512_maskz_cvtepi32_pd (__mmask8 __U, __m256i __A) +{ + // CHECK-LABEL: @test_mm512_maskz_cvtepi32_pd + // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.512 + return _mm512_maskz_cvtepi32_pd (__U,__A); +} + +__m512 test_mm512_cvtepi32_ps (__m512i __A) +{ + // CHECK-LABEL: @test_mm512_cvtepi32_ps + // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512 + return _mm512_cvtepi32_ps (__A); +} + +__m512 test_mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A) +{ + // CHECK-LABEL: @test_mm512_mask_cvtepi32_ps + // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512 + return _mm512_mask_cvtepi32_ps (__W,__U,__A); +} + +__m512 test_mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A) +{ + // CHECK-LABEL: @test_mm512_maskz_cvtepi32_ps + // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512 + return _mm512_maskz_cvtepi32_ps (__U,__A); +} + +__m512d test_mm512_mask_cvtepu32_pd (__m512d __W, __mmask8 __U, __m256i __A) +{ + // CHECK-LABEL: @test_mm512_mask_cvtepu32_pd + // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.512 + return _mm512_mask_cvtepu32_pd (__W,__U,__A); +} + +__m512d test_mm512_maskz_cvtepu32_pd (__mmask8 __U, __m256i __A) +{ + // CHECK-LABEL: @test_mm512_maskz_cvtepu32_pd + // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.512 + return _mm512_maskz_cvtepu32_pd (__U,__A); +} + +__m256 test_mm512_cvtpd_ps (__m512d __A) +{ + // CHECK-LABEL: @test_mm512_cvtpd_ps + // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512 + return _mm512_cvtpd_ps (__A); +} + +__m256 test_mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A) +{ + // CHECK-LABEL: @test_mm512_mask_cvtpd_ps + // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512 + return _mm512_mask_cvtpd_ps (__W,__U,__A); +} + +__m256 test_mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A) +{ + // CHECK-LABEL: @test_mm512_maskz_cvtpd_ps + // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512 + return _mm512_maskz_cvtpd_ps (__U,__A); +} + +__m512 test_mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A) +{ + // CHECK-LABEL: @test_mm512_mask_cvtph_ps + // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512 + return _mm512_mask_cvtph_ps (__W,__U,__A); +} + +__m512 test_mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A) +{ + // CHECK-LABEL: @test_mm512_maskz_cvtph_ps + // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512 + return _mm512_maskz_cvtph_ps (__U,__A); +} + +__m256i test_mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A) +{ + // CHECK-LABEL: @test_mm512_mask_cvttpd_epi32 + // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512 + return _mm512_mask_cvttpd_epi32 (__W,__U,__A); +} + +__m256i test_mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A) +{ + // CHECK-LABEL: @test_mm512_maskz_cvttpd_epi32 + // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512 + return _mm512_maskz_cvttpd_epi32 (__U,__A); +} + +__m512i test_mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A) +{ + // CHECK-LABEL: @test_mm512_mask_cvttps_epi32 + // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512 + return _mm512_mask_cvttps_epi32 (__W,__U,__A); +} + +__m512i test_mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A) +{ + // CHECK-LABEL: @test_mm512_maskz_cvttps_epi32 + // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512 + return _mm512_maskz_cvttps_epi32 (__U,__A); +} + +__m512i test_mm512_cvtps_epi32 (__m512 __A) +{ + // CHECK-LABEL: @test_mm512_cvtps_epi32 + // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512 + return _mm512_cvtps_epi32 (__A); +} + +__m512i test_mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A) +{ + // CHECK-LABEL: @test_mm512_mask_cvtps_epi32 + // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512 + return _mm512_mask_cvtps_epi32 (__W,__U,__A); +} + +__m512i test_mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A) +{ + // CHECK-LABEL: @test_mm512_maskz_cvtps_epi32 + // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512 + return _mm512_maskz_cvtps_epi32 (__U,__A); +} + +__m256i test_mm512_cvtpd_epi32 (__m512d __A) +{ + // CHECK-LABEL: @test_mm512_cvtpd_epi32 + // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512 + return _mm512_cvtpd_epi32 (__A); +} + +__m256i test_mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A) +{ + // CHECK-LABEL: @test_mm512_mask_cvtpd_epi32 + // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512 + return _mm512_mask_cvtpd_epi32 (__W,__U,__A); +} + +__m256i test_mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A) +{ + // CHECK-LABEL: @test_mm512_maskz_cvtpd_epi32 + // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512 + return _mm512_maskz_cvtpd_epi32 (__U,__A); +} + +__m256i test_mm512_cvtpd_epu32 (__m512d __A) +{ + // CHECK-LABEL: @test_mm512_cvtpd_epu32 + // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512 + return _mm512_cvtpd_epu32 (__A); +} + +__m256i test_mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A) +{ + // CHECK-LABEL: @test_mm512_mask_cvtpd_epu32 + // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512 + return _mm512_mask_cvtpd_epu32 (__W,__U,__A); +} + +__m256i test_mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A) +{ + // CHECK-LABEL: @test_mm512_maskz_cvtpd_epu32 + // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512 + return _mm512_maskz_cvtpd_epu32 (__U,__A); +}