uriel.k created this revision. Changed Header files of the intrinsics fro lowering test and testn intrinsics to IR code. Removed test and testn builtins from clang
this is the clang side, the llvm side revision is D38736 <https://reviews.llvm.org/D38736>. https://reviews.llvm.org/D38737 Files: include/clang/Basic/BuiltinsX86.def lib/Headers/avx512bwintrin.h lib/Headers/avx512fintrin.h lib/Headers/avx512vlbwintrin.h lib/Headers/avx512vlintrin.h test/CodeGen/avx512bw-builtins.c test/CodeGen/avx512f-builtins.c test/CodeGen/avx512vl-builtins.c test/CodeGen/avx512vlbw-builtins.c
Index: test/CodeGen/avx512vlbw-builtins.c =================================================================== --- test/CodeGen/avx512vlbw-builtins.c +++ test/CodeGen/avx512vlbw-builtins.c @@ -2481,97 +2481,121 @@ } __mmask16 test_mm_test_epi8_mask(__m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_test_epi8_mask - // CHECK: @llvm.x86.avx512.ptestm.b.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}} return _mm_test_epi8_mask(__A, __B); } __mmask16 test_mm_mask_test_epi8_mask(__mmask16 __U, __m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_mask_test_epi8_mask - // CHECK: @llvm.x86.avx512.ptestm.b.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}} + // CHECK: and <16 x i1> %{{.*}}, %{{.*}} return _mm_mask_test_epi8_mask(__U, __A, __B); } __mmask32 test_mm256_test_epi8_mask(__m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_test_epi8_mask - // CHECK: @llvm.x86.avx512.ptestm.b.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}} return _mm256_test_epi8_mask(__A, __B); } __mmask32 test_mm256_mask_test_epi8_mask(__mmask32 __U, __m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_mask_test_epi8_mask - // CHECK: @llvm.x86.avx512.ptestm.b.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}} + // CHECK: and <32 x i1> %{{.*}}, %{{.*}} return _mm256_mask_test_epi8_mask(__U, __A, __B); } __mmask8 test_mm_test_epi16_mask(__m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_test_epi16_mask - // CHECK: @llvm.x86.avx512.ptestm.w.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}} return _mm_test_epi16_mask(__A, __B); } __mmask8 test_mm_mask_test_epi16_mask(__mmask8 __U, __m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_mask_test_epi16_mask - // CHECK: @llvm.x86.avx512.ptestm.w.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}} + // CHECK: and <8 x i1> %{{.*}}, %{{.*}} return _mm_mask_test_epi16_mask(__U, __A, __B); } __mmask16 test_mm256_test_epi16_mask(__m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_test_epi16_mask - // CHECK: @llvm.x86.avx512.ptestm.w.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}} return _mm256_test_epi16_mask(__A, __B); } __mmask16 test_mm256_mask_test_epi16_mask(__mmask16 __U, __m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_mask_test_epi16_mask - // CHECK: @llvm.x86.avx512.ptestm.w.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}} + // CHECK: and <16 x i1> %{{.*}}, %{{.*}} return _mm256_mask_test_epi16_mask(__U, __A, __B); } __mmask16 test_mm_testn_epi8_mask(__m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_testn_epi8_mask - // CHECK: @llvm.x86.avx512.ptestnm.b.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}} return _mm_testn_epi8_mask(__A, __B); } __mmask16 test_mm_mask_testn_epi8_mask(__mmask16 __U, __m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_mask_testn_epi8_mask - // CHECK: @llvm.x86.avx512.ptestnm.b.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}} + // CHECK: and <16 x i1> %{{.*}}, %{{.*}} return _mm_mask_testn_epi8_mask(__U, __A, __B); } __mmask32 test_mm256_testn_epi8_mask(__m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_testn_epi8_mask - // CHECK: @llvm.x86.avx512.ptestnm.b.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}} return _mm256_testn_epi8_mask(__A, __B); } __mmask32 test_mm256_mask_testn_epi8_mask(__mmask32 __U, __m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_mask_testn_epi8_mask - // CHECK: @llvm.x86.avx512.ptestnm.b.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}} + // CHECK: and <32 x i1> %{{.*}}, %{{.*}} return _mm256_mask_testn_epi8_mask(__U, __A, __B); } __mmask8 test_mm_testn_epi16_mask(__m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_testn_epi16_mask - // CHECK: @llvm.x86.avx512.ptestnm.w.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}} return _mm_testn_epi16_mask(__A, __B); } __mmask8 test_mm_mask_testn_epi16_mask(__mmask8 __U, __m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_mask_testn_epi16_mask - // CHECK: @llvm.x86.avx512.ptestnm.w.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}} + // CHECK: and <8 x i1> %{{.*}}, %{{.*}} return _mm_mask_testn_epi16_mask(__U, __A, __B); } __mmask16 test_mm256_testn_epi16_mask(__m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_testn_epi16_mask - // CHECK: @llvm.x86.avx512.ptestnm.w.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}} return _mm256_testn_epi16_mask(__A, __B); } __mmask16 test_mm256_mask_testn_epi16_mask(__mmask16 __U, __m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_mask_testn_epi16_mask - // CHECK: @llvm.x86.avx512.ptestnm.w.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}} + // CHECK: and <16 x i1> %{{.*}}, %{{.*}} return _mm256_mask_testn_epi16_mask(__U, __A, __B); } Index: test/CodeGen/avx512vl-builtins.c =================================================================== --- test/CodeGen/avx512vl-builtins.c +++ test/CodeGen/avx512vl-builtins.c @@ -5188,99 +5188,124 @@ __mmask8 test_mm_test_epi32_mask(__m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_test_epi32_mask - // CHECK: @llvm.x86.avx512.ptestm.d.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}} return _mm_test_epi32_mask(__A, __B); } __mmask8 test_mm_mask_test_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_mask_test_epi32_mask - // CHECK: @llvm.x86.avx512.ptestm.d.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}} + // CHECK: and <4 x i1> %{{.*}}, %{{.*}} return _mm_mask_test_epi32_mask(__U, __A, __B); } __mmask8 test_mm256_test_epi32_mask(__m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_test_epi32_mask - // CHECK: @llvm.x86.avx512.ptestm.d.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}} return _mm256_test_epi32_mask(__A, __B); } __mmask8 test_mm256_mask_test_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_mask_test_epi32_mask - // CHECK: @llvm.x86.avx512.ptestm.d.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}} + // CHECK: and <8 x i1> %{{.*}}, %{{.*}} return _mm256_mask_test_epi32_mask(__U, __A, __B); } __mmask8 test_mm_test_epi64_mask(__m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_test_epi64_mask - // CHECK: @llvm.x86.avx512.ptestm.q.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}} return _mm_test_epi64_mask(__A, __B); } __mmask8 test_mm_mask_test_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_mask_test_epi64_mask - // CHECK: @llvm.x86.avx512.ptestm.q.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}} + // CHECK: and <2 x i1> %{{.*}}, %{{.*}} return _mm_mask_test_epi64_mask(__U, __A, __B); } __mmask8 test_mm256_test_epi64_mask(__m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_test_epi64_mask - // CHECK: @llvm.x86.avx512.ptestm.q.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}} return _mm256_test_epi64_mask(__A, __B); } __mmask8 test_mm256_mask_test_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_mask_test_epi64_mask - // CHECK: @llvm.x86.avx512.ptestm.q.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}} + // CHECK: and <4 x i1> %{{.*}}, %{{.*}} return _mm256_mask_test_epi64_mask(__U, __A, __B); } __mmask8 test_mm_testn_epi32_mask(__m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_testn_epi32_mask - // CHECK: @llvm.x86.avx512.ptestnm.d.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}} return _mm_testn_epi32_mask(__A, __B); } __mmask8 test_mm_mask_testn_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_mask_testn_epi32_mask - // CHECK: @llvm.x86.avx512.ptestnm.d.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}} + // CHECK: and <4 x i1> %{{.*}}, %{{.*}} return _mm_mask_testn_epi32_mask(__U, __A, __B); } __mmask8 test_mm256_testn_epi32_mask(__m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_testn_epi32_mask - // CHECK: @llvm.x86.avx512.ptestnm.d.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}} return _mm256_testn_epi32_mask(__A, __B); } __mmask8 test_mm256_mask_testn_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_mask_testn_epi32_mask - // CHECK: @llvm.x86.avx512.ptestnm.d.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}} + // CHECK: and <8 x i1> %{{.*}}, %{{.*}} return _mm256_mask_testn_epi32_mask(__U, __A, __B); } __mmask8 test_mm_testn_epi64_mask(__m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_testn_epi64_mask - // CHECK: @llvm.x86.avx512.ptestnm.q.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}} return _mm_testn_epi64_mask(__A, __B); } __mmask8 test_mm_mask_testn_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_mask_testn_epi64_mask - // CHECK: @llvm.x86.avx512.ptestnm.q.128 + // CHECK: and <2 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}} + // CHECK: and <2 x i1> %{{.*}}, %{{.*}} return _mm_mask_testn_epi64_mask(__U, __A, __B); } __mmask8 test_mm256_testn_epi64_mask(__m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_testn_epi64_mask - // CHECK: @llvm.x86.avx512.ptestnm.q.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}} return _mm256_testn_epi64_mask(__A, __B); } __mmask8 test_mm256_mask_testn_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_mask_testn_epi64_mask - // CHECK: @llvm.x86.avx512.ptestnm.q.256 + // CHECK: and <4 x i64> %{{.*}}, %{{.*}} + // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}} + // CHECK: and <4 x i1> %{{.*}}, %{{.*}} return _mm256_mask_testn_epi64_mask(__U, __A, __B); } + __m128i test_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_mask_unpackhi_epi32 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7> Index: test/CodeGen/avx512f-builtins.c =================================================================== --- test/CodeGen/avx512f-builtins.c +++ test/CodeGen/avx512f-builtins.c @@ -3857,39 +3857,48 @@ } __mmask16 test_mm512_testn_epi32_mask(__m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_testn_epi32_mask - // CHECK: @llvm.x86.avx512.ptestnm.d.512 + // CHECK: and <16 x i32> %{{.*}}, %{{.*}} + // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}} return _mm512_testn_epi32_mask(__A, __B); } __mmask16 test_mm512_mask_testn_epi32_mask(__mmask16 __U, __m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_mask_testn_epi32_mask - // CHECK: @llvm.x86.avx512.ptestnm.d.512 + // CHECK: and <16 x i32> %{{.*}}, %{{.*}} + // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}} + // CHECK: and <16 x i1> %{{.*}}, %{{.*}} return _mm512_mask_testn_epi32_mask(__U, __A, __B); } __mmask8 test_mm512_testn_epi64_mask(__m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_testn_epi64_mask - // CHECK: @llvm.x86.avx512.ptestnm.q.512 + // CHECK: and <16 x i32> %{{.*}}, %{{.*}} + // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}} return _mm512_testn_epi64_mask(__A, __B); } __mmask8 test_mm512_mask_testn_epi64_mask(__mmask8 __U, __m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_mask_testn_epi64_mask - // CHECK: @llvm.x86.avx512.ptestnm.q.512 + // CHECK: and <16 x i32> %{{.*}}, %{{.*}} + // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}} + // CHECK: and <8 x i1> %{{.*}}, %{{.*}} return _mm512_mask_testn_epi64_mask(__U, __A, __B); } __mmask16 test_mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_mask_test_epi32_mask - // CHECK: @llvm.x86.avx512.ptestm.d.512 + // CHECK: and <16 x i32> %{{.*}}, %{{.*}} + // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}} return _mm512_mask_test_epi32_mask (__U,__A,__B); } __mmask8 test_mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_mask_test_epi64_mask - // CHECK: @llvm.x86.avx512.ptestm.q.512 + // CHECK: and <16 x i32> %{{.*}}, %{{.*}} + // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}} + // CHECK: and <8 x i1> %{{.*}}, %{{.*}} return _mm512_mask_test_epi64_mask (__U,__A,__B); } Index: test/CodeGen/avx512bw-builtins.c =================================================================== --- test/CodeGen/avx512bw-builtins.c +++ test/CodeGen/avx512bw-builtins.c @@ -1668,7 +1668,8 @@ } __mmask64 test_mm512_test_epi8_mask(__m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_test_epi8_mask - // CHECK: @llvm.x86.avx512.ptestm.b.512 + // CHECK: and <16 x i32> %{{.*}}, %{{.*}} + // CHECK: icmp ne <64 x i8> %{{.*}}, %{{.*}} return _mm512_test_epi8_mask(__A, __B); } @@ -1679,43 +1680,54 @@ } __mmask64 test_mm512_mask_test_epi8_mask(__mmask64 __U, __m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_mask_test_epi8_mask - // CHECK: @llvm.x86.avx512.ptestm.b.512 + // CHECK: and <16 x i32> %{{.*}}, %{{.*}} + // CHECK: icmp ne <64 x i8> %{{.*}}, %{{.*}} + // CHECK: and <64 x i1> %{{.*}}, %{{.*}} return _mm512_mask_test_epi8_mask(__U, __A, __B); } __mmask32 test_mm512_test_epi16_mask(__m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_test_epi16_mask - // CHECK: @llvm.x86.avx512.ptestm.w. + // CHECK: and <16 x i32> %{{.*}}, %{{.*}} + // CHECK: icmp ne <32 x i16> %{{.*}}, %{{.*}} return _mm512_test_epi16_mask(__A, __B); } __mmask32 test_mm512_mask_test_epi16_mask(__mmask32 __U, __m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_mask_test_epi16_mask - // CHECK: @llvm.x86.avx512.ptestm.w. + // CHECK: and <16 x i32> %{{.*}}, %{{.*}} + // CHECK: icmp ne <32 x i16> %{{.*}}, %{{.*}} + // CHECK: and <32 x i1> %{{.*}}, %{{.*}} return _mm512_mask_test_epi16_mask(__U, __A, __B); } __mmask64 test_mm512_testn_epi8_mask(__m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_testn_epi8_mask - // CHECK: @llvm.x86.avx512.ptestnm.b. + // CHECK: and <16 x i32> %{{.*}}, %{{.*}} + // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}} return _mm512_testn_epi8_mask(__A, __B); } __mmask64 test_mm512_mask_testn_epi8_mask(__mmask64 __U, __m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_mask_testn_epi8_mask - // CHECK: @llvm.x86.avx512.ptestnm.b. + // CHECK: and <16 x i32> %{{.*}}, %{{.*}} + // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}} + // CHECK: and <64 x i1> %{{.*}}, %{{.*}} return _mm512_mask_testn_epi8_mask(__U, __A, __B); } __mmask32 test_mm512_testn_epi16_mask(__m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_testn_epi16_mask - // CHECK: @llvm.x86.avx512.ptestnm.w. + // CHECK: and <16 x i32> %{{.*}}, %{{.*}} + // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}} return _mm512_testn_epi16_mask(__A, __B); } __mmask32 test_mm512_mask_testn_epi16_mask(__mmask32 __U, __m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_mask_testn_epi16_mask - // CHECK: @llvm.x86.avx512.ptestnm.w. + // CHECK: and <16 x i32> %{{.*}}, %{{.*}} + // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}} + // CHECK: and <32 x i1> %{{.*}}, %{{.*}} return _mm512_mask_testn_epi16_mask(__U, __A, __B); } Index: lib/Headers/avx512vlintrin.h =================================================================== --- lib/Headers/avx512vlintrin.h +++ lib/Headers/avx512vlintrin.h @@ -6503,125 +6503,113 @@ static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm_test_epi32_mask (__m128i __A, __m128i __B) { - return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A, - (__v4si) __B, - (__mmask8) -1); + return _mm_cmp_epi32_mask (_mm_and_si128(__A, __B), _mm_setzero_di(), 4); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B) { - return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A, - (__v4si) __B, __U); + return _mm_mask_cmp_epi32_mask (__U, _mm_and_si128(__A, __B), + _mm_setzero_di(), 4); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm256_test_epi32_mask (__m256i __A, __m256i __B) { - return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A, - (__v8si) __B, - (__mmask8) -1); + return _mm256_cmp_epi32_mask (_mm256_and_si256(__A, __B), + _mm256_setzero_si256(), 4); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B) { - return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A, - (__v8si) __B, __U); + return _mm256_mask_cmp_epi32_mask (__U, _mm256_and_si256(__A, __B), + _mm256_setzero_si256(), 4); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm_test_epi64_mask (__m128i __A, __m128i __B) { - return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A, - (__v2di) __B, - (__mmask8) -1); + return _mm_cmp_epi64_mask (_mm_and_si128(__A, __B), + _mm_setzero_di(), 4); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B) { - return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A, - (__v2di) __B, __U); + return _mm_mask_cmp_epi64_mask (__U, _mm_and_si128(__A, __B), + _mm_setzero_di(), 4); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm256_test_epi64_mask (__m256i __A, __m256i __B) { - return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A, - (__v4di) __B, - (__mmask8) -1); + return _mm256_cmp_epi64_mask (_mm256_and_si256(__A, __B), + _mm256_setzero_si256(), 4); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B) { - return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A, - (__v4di) __B, __U); + return _mm256_mask_cmp_epi64_mask (__U, _mm256_and_si256(__A, __B), + _mm256_setzero_si256(), 4); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm_testn_epi32_mask (__m128i __A, __m128i __B) { - return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A, - (__v4si) __B, - (__mmask8) -1); + return _mm_cmp_epi32_mask (_mm_and_si128(__A, __B), _mm_setzero_di(), 0); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B) { - return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A, - (__v4si) __B, __U); + return _mm_mask_cmp_epi32_mask (__U, _mm_and_si128(__A, __B), + _mm_setzero_di(), 0); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm256_testn_epi32_mask (__m256i __A, __m256i __B) { - return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A, - (__v8si) __B, - (__mmask8) -1); + return _mm256_cmp_epi32_mask (_mm256_and_si256(__A, __B), + _mm256_setzero_si256(), 0); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B) { - return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A, - (__v8si) __B, __U); + return _mm256_mask_cmp_epi32_mask (__U, _mm256_and_si256(__A, __B), + _mm256_setzero_si256(), 0); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm_testn_epi64_mask (__m128i __A, __m128i __B) { - return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A, - (__v2di) __B, - (__mmask8) -1); + return _mm_cmp_epi64_mask (_mm_and_si128(__A, __B), + _mm_setzero_di(), 0); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B) { - return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A, - (__v2di) __B, __U); + return _mm_mask_cmp_epi64_mask (__U, _mm_and_si128(__A, __B), + _mm_setzero_di(), 0); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm256_testn_epi64_mask (__m256i __A, __m256i __B) { - return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A, - (__v4di) __B, - (__mmask8) -1); + return _mm256_cmp_epi64_mask (_mm256_and_si256(__A, __B), + _mm256_setzero_si256(), 0); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B) { - return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A, - (__v4di) __B, __U); + return _mm256_mask_cmp_epi64_mask (__U, _mm256_and_si256(__A, __B), + _mm256_setzero_si256(), 0); } - - static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { Index: lib/Headers/avx512vlbwintrin.h =================================================================== --- lib/Headers/avx512vlbwintrin.h +++ lib/Headers/avx512vlbwintrin.h @@ -2791,121 +2791,97 @@ static __inline__ __mmask16 __DEFAULT_FN_ATTRS _mm_test_epi8_mask (__m128i __A, __m128i __B) { - return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A, - (__v16qi) __B, - (__mmask16) -1); + return _mm_cmp_epi8_mask (_mm_and_si128(__A, __B), _mm_setzero_hi(), 4); } static __inline__ __mmask16 __DEFAULT_FN_ATTRS _mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) { - return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A, - (__v16qi) __B, __U); + return _mm_mask_cmp_epi8_mask (__U, _mm_and_si128(__A, __B), _mm_setzero_hi(), 4); } static __inline__ __mmask32 __DEFAULT_FN_ATTRS _mm256_test_epi8_mask (__m256i __A, __m256i __B) { - return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A, - (__v32qi) __B, - (__mmask32) -1); + return _mm256_cmp_epi8_mask (_mm256_and_si256(__A, __B), _mm256_setzero_si256(), 4); } static __inline__ __mmask32 __DEFAULT_FN_ATTRS _mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) { - return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A, - (__v32qi) __B, __U); + return _mm256_mask_cmp_epi8_mask (__U, _mm256_and_si256(__A, __B), _mm256_setzero_si256(), 4); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm_test_epi16_mask (__m128i __A, __m128i __B) { - return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A, - (__v8hi) __B, - (__mmask8) -1); + return _mm_cmp_epi16_mask (_mm_and_si128(__A, __B), _mm_setzero_hi(), 4); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) { - return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A, - (__v8hi) __B, __U); + return _mm_mask_cmp_epi16_mask (__U, _mm_and_si128(__A, __B), _mm_setzero_hi(), 4); } static __inline__ __mmask16 __DEFAULT_FN_ATTRS _mm256_test_epi16_mask (__m256i __A, __m256i __B) { - return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A, - (__v16hi) __B, - (__mmask16) -1); + return _mm256_cmp_epi16_mask (_mm256_and_si256(__A, __B), _mm256_setzero_si256(), 4); } static __inline__ __mmask16 __DEFAULT_FN_ATTRS _mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) { - return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A, - (__v16hi) __B, __U); + return _mm256_mask_cmp_epi16_mask (__U, _mm256_and_si256(__A, __B), _mm256_setzero_si256(), 4); } static __inline__ __mmask16 __DEFAULT_FN_ATTRS _mm_testn_epi8_mask (__m128i __A, __m128i __B) { - return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A, - (__v16qi) __B, - (__mmask16) -1); + return _mm_cmp_epi8_mask (_mm_and_si128(__A, __B), _mm_setzero_hi(), 0); } static __inline__ __mmask16 __DEFAULT_FN_ATTRS _mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) { - return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A, - (__v16qi) __B, __U); + return _mm_mask_cmp_epi8_mask (__U, _mm_and_si128(__A, __B), _mm_setzero_hi(), 0); } static __inline__ __mmask32 __DEFAULT_FN_ATTRS _mm256_testn_epi8_mask (__m256i __A, __m256i __B) { - return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A, - (__v32qi) __B, - (__mmask32) -1); + return _mm256_cmp_epi8_mask (_mm256_and_si256(__A, __B), _mm256_setzero_si256(), 0); } static __inline__ __mmask32 __DEFAULT_FN_ATTRS _mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) { - return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A, - (__v32qi) __B, __U); + return _mm256_mask_cmp_epi8_mask (__U, _mm256_and_si256(__A, __B), _mm256_setzero_si256(), 0); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm_testn_epi16_mask (__m128i __A, __m128i __B) { - return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A, - (__v8hi) __B, - (__mmask8) -1); + return _mm_cmp_epi16_mask (_mm_and_si128(__A, __B), _mm_setzero_hi(), 0); } static __inline__ __mmask8 __DEFAULT_FN_ATTRS _mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) { - return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A, - (__v8hi) __B, __U); + return _mm_mask_cmp_epi16_mask (__U, _mm_and_si128(__A, __B), _mm_setzero_hi(), 0); } static __inline__ __mmask16 __DEFAULT_FN_ATTRS _mm256_testn_epi16_mask (__m256i __A, __m256i __B) { - return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A, - (__v16hi) __B, - (__mmask16) -1); + return _mm256_cmp_epi16_mask (_mm256_and_si256(__A, __B), _mm256_setzero_si256(), 0); } static __inline__ __mmask16 __DEFAULT_FN_ATTRS _mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) { - return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A, - (__v16hi) __B, __U); + return _mm256_mask_cmp_epi16_mask (__U, _mm256_and_si256(__A, __B), _mm256_setzero_si256(), 0); } static __inline__ __mmask16 __DEFAULT_FN_ATTRS Index: lib/Headers/avx512fintrin.h =================================================================== --- lib/Headers/avx512fintrin.h +++ lib/Headers/avx512fintrin.h @@ -4543,37 +4543,6 @@ (__v8di)_mm512_setzero_si512()); } -/* Bit Test */ - -static __inline __mmask16 __DEFAULT_FN_ATTRS -_mm512_test_epi32_mask(__m512i __A, __m512i __B) -{ - return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A, - (__v16si) __B, - (__mmask16) -1); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS -_mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) -{ - return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A, - (__v16si) __B, __U); -} - -static __inline __mmask8 __DEFAULT_FN_ATTRS -_mm512_test_epi64_mask(__m512i __A, __m512i __B) -{ - return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A, - (__v8di) __B, - (__mmask8) -1); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS -_mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) -{ - return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A, (__v8di) __B, __U); -} - /* SIMD load ops */ @@ -6797,35 +6766,6 @@ (__mmask16) __U); } -static __inline__ __mmask16 __DEFAULT_FN_ATTRS -_mm512_testn_epi32_mask (__m512i __A, __m512i __B) -{ - return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A, - (__v16si) __B, - (__mmask16) -1); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS -_mm512_mask_testn_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) -{ - return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A, - (__v16si) __B, __U); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS -_mm512_testn_epi64_mask (__m512i __A, __m512i __B) -{ - return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A, - (__v8di) __B, - (__mmask8) -1); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS -_mm512_mask_testn_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) -{ - return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A, - (__v8di) __B, __U); -} #define _mm512_cvtt_roundpd_epu32(A, R) __extension__ ({ \ (__m256i)__builtin_ia32_cvttpd2udq512_mask((__v8df)(__m512d)(A), \ @@ -9166,6 +9106,64 @@ (__mmask8)(M), \ _MM_FROUND_CUR_DIRECTION); }) +/* Bit Test */ + +static __inline __mmask16 __DEFAULT_FN_ATTRS +_mm512_test_epi32_mask(__m512i __A, __m512i __B) +{ + return _mm512_cmp_epi32_mask(_mm512_and_epi32(__A, __B), + _mm512_setzero_epi32(), 4); +} + +static __inline__ __mmask16 __DEFAULT_FN_ATTRS +_mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) +{ + return _mm512_mask_cmp_epi32_mask(__U, _mm512_and_epi32(__A, __B), + _mm512_setzero_epi32(), 4); +} + +static __inline __mmask8 __DEFAULT_FN_ATTRS +_mm512_test_epi64_mask(__m512i __A, __m512i __B) +{ + return _mm512_cmp_epi64_mask(_mm512_and_epi32(__A, __B), + _mm512_setzero_epi32(), 4); +} + +static __inline__ __mmask8 __DEFAULT_FN_ATTRS +_mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) +{ + return _mm512_mask_cmp_epi64_mask(__U, _mm512_and_epi32(__A, __B), + _mm512_setzero_epi32(), 4); +} + +static __inline__ __mmask16 __DEFAULT_FN_ATTRS +_mm512_testn_epi32_mask (__m512i __A, __m512i __B) +{ + return _mm512_cmp_epi32_mask(_mm512_and_epi32(__A, __B), + _mm512_setzero_epi32(), 0); +} + +static __inline__ __mmask16 __DEFAULT_FN_ATTRS +_mm512_mask_testn_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) +{ + return _mm512_mask_cmp_epi32_mask(__U, _mm512_and_epi32(__A, __B), + _mm512_setzero_epi32(), 0); +} + +static __inline__ __mmask8 __DEFAULT_FN_ATTRS +_mm512_testn_epi64_mask (__m512i __A, __m512i __B) +{ + return _mm512_cmp_epi64_mask(_mm512_and_epi32(__A, __B), + _mm512_setzero_epi32(), 0); +} + +static __inline__ __mmask8 __DEFAULT_FN_ATTRS +_mm512_mask_testn_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) +{ + return _mm512_mask_cmp_epi64_mask(__U, _mm512_and_epi32(__A, __B), + _mm512_setzero_epi32(), 0); +} + static __inline__ __m512 __DEFAULT_FN_ATTRS _mm512_movehdup_ps (__m512 __A) { Index: lib/Headers/avx512bwintrin.h =================================================================== --- lib/Headers/avx512bwintrin.h +++ lib/Headers/avx512bwintrin.h @@ -2105,61 +2105,57 @@ static __inline__ __mmask64 __DEFAULT_FN_ATTRS _mm512_test_epi8_mask (__m512i __A, __m512i __B) { - return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A, - (__v64qi) __B, - (__mmask64) -1); + return _mm512_cmp_epi8_mask(_mm512_and_epi32(__A, __B), + _mm512_setzero_qi(), 4); } static __inline__ __mmask64 __DEFAULT_FN_ATTRS _mm512_mask_test_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B) { - return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A, - (__v64qi) __B, __U); + return _mm512_mask_cmp_epi8_mask(__U, _mm512_and_epi32(__A, __B), + _mm512_setzero_qi(), 4); } static __inline__ __mmask32 __DEFAULT_FN_ATTRS _mm512_test_epi16_mask (__m512i __A, __m512i __B) { - return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A, - (__v32hi) __B, - (__mmask32) -1); + return _mm512_cmp_epi16_mask(_mm512_and_epi32(__A, __B), + _mm512_setzero_qi(), 4); } static __inline__ __mmask32 __DEFAULT_FN_ATTRS _mm512_mask_test_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B) { - return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A, - (__v32hi) __B, __U); + return _mm512_mask_cmp_epi16_mask(__U, _mm512_and_epi32(__A, __B), + _mm512_setzero_qi(), 4); } static __inline__ __mmask64 __DEFAULT_FN_ATTRS _mm512_testn_epi8_mask (__m512i __A, __m512i __B) { - return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A, - (__v64qi) __B, - (__mmask64) -1); + return _mm512_cmp_epi8_mask(_mm512_and_epi32(__A, __B), + _mm512_setzero_qi(), 0); } static __inline__ __mmask64 __DEFAULT_FN_ATTRS _mm512_mask_testn_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B) { - return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A, - (__v64qi) __B, __U); + return _mm512_mask_cmp_epi8_mask(__U, _mm512_and_epi32(__A, __B), + _mm512_setzero_qi(), 0); } static __inline__ __mmask32 __DEFAULT_FN_ATTRS _mm512_testn_epi16_mask (__m512i __A, __m512i __B) { - return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A, - (__v32hi) __B, - (__mmask32) -1); + return _mm512_cmp_epi16_mask(_mm512_and_epi32(__A, __B), + _mm512_setzero_qi(), 0); } static __inline__ __mmask32 __DEFAULT_FN_ATTRS _mm512_mask_testn_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B) { - return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A, - (__v32hi) __B, __U); + return _mm512_mask_cmp_epi16_mask(__U, _mm512_and_epi32(__A, __B), + _mm512_setzero_qi(), 0); } static __inline__ __mmask64 __DEFAULT_FN_ATTRS Index: include/clang/Basic/BuiltinsX86.def =================================================================== --- include/clang/Basic/BuiltinsX86.def +++ include/clang/Basic/BuiltinsX86.def @@ -971,8 +971,6 @@ TARGET_BUILTIN(__builtin_ia32_pminuq512_mask, "V8LLiV8LLiV8LLiV8LLiUc", "", "avx512f") TARGET_BUILTIN(__builtin_ia32_pmuldq512, "V8LLiV16iV16i", "", "avx512f") TARGET_BUILTIN(__builtin_ia32_pmuludq512, "V8LLiV16iV16i", "", "avx512f") -TARGET_BUILTIN(__builtin_ia32_ptestmd512, "UsV16iV16iUs", "", "avx512f") -TARGET_BUILTIN(__builtin_ia32_ptestmq512, "UcV8LLiV8LLiUc", "", "avx512f") TARGET_BUILTIN(__builtin_ia32_loaddqusi512_mask, "V16iiC*V16iUs", "", "avx512f") TARGET_BUILTIN(__builtin_ia32_loaddqudi512_mask, "V8LLiLLiC*V8LLiUc", "", "avx512f") TARGET_BUILTIN(__builtin_ia32_loadups512_mask, "V16ffC*V16fUs", "", "avx512f") @@ -1484,28 +1482,6 @@ TARGET_BUILTIN(__builtin_ia32_vpermt2varpd512_maskz, "V8dV8LLiV8dV8dUc","","avx512f") TARGET_BUILTIN(__builtin_ia32_vpermt2varps512_maskz, "V16fV16iV16fV16fUs","","avx512f") TARGET_BUILTIN(__builtin_ia32_vpermt2varq512_maskz, "V8LLiV8LLiV8LLiV8LLiUc","","avx512f") -TARGET_BUILTIN(__builtin_ia32_ptestmb512, "ULLiV64cV64cULLi","","avx512bw") -TARGET_BUILTIN(__builtin_ia32_ptestmw512, "UiV32sV32sUi","","avx512bw") -TARGET_BUILTIN(__builtin_ia32_ptestnmb512, "ULLiV64cV64cULLi","","avx512bw") -TARGET_BUILTIN(__builtin_ia32_ptestnmw512, "UiV32sV32sUi","","avx512bw") -TARGET_BUILTIN(__builtin_ia32_ptestmb128, "UsV16cV16cUs","","avx512bw,avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestmb256, "UiV32cV32cUi","","avx512bw,avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestmw128, "UcV8sV8sUc","","avx512bw,avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestmw256, "UsV16sV16sUs","","avx512bw,avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestnmb128, "UsV16cV16cUs","","avx512bw,avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestnmb256, "UiV32cV32cUi","","avx512bw,avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestnmw128, "UcV8sV8sUc","","avx512bw,avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestnmw256, "UsV16sV16sUs","","avx512bw,avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestmd128, "UcV4iV4iUc","","avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestmd256, "UcV8iV8iUc","","avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestmq128, "UcV2LLiV2LLiUc","","avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestmq256, "UcV4LLiV4LLiUc","","avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestnmd128, "UcV4iV4iUc","","avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestnmd256, "UcV8iV8iUc","","avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestnmq128, "UcV2LLiV2LLiUc","","avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestnmq256, "UcV4LLiV4LLiUc","","avx512vl") -TARGET_BUILTIN(__builtin_ia32_ptestnmd512, "UsV16iV16iUs","","avx512f") -TARGET_BUILTIN(__builtin_ia32_ptestnmq512, "UcV8LLiV8LLiUc","","avx512f") TARGET_BUILTIN(__builtin_ia32_rndscalesd_round_mask, "V2dV2dV2dV2dUcIiIi","","avx512f") TARGET_BUILTIN(__builtin_ia32_rndscaless_round_mask, "V4fV4fV4fV4fUcIiIi","","avx512f") TARGET_BUILTIN(__builtin_ia32_scalefpd512_mask, "V8dV8dV8dV8dUcIi","","avx512f")
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits