diff options
author | Craig Topper <craig.topper@gmail.com> | 2015-01-26 08:11:49 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2015-01-26 08:11:49 +0000 |
commit | 2f25a5a8758547be68f1da1025a41685061a918d (patch) | |
tree | b94ff50e9d693a0ac18f13b9a9cddfd25f32c55c /clang/test/CodeGen/avx512f-builtins.c | |
parent | c8c76853b9f963bf71024faf4a32910204542d71 (diff) | |
download | bcm5719-llvm-2f25a5a8758547be68f1da1025a41685061a918d.tar.gz bcm5719-llvm-2f25a5a8758547be68f1da1025a41685061a918d.zip |
[X86] Add more of the AVX512 integer comparision intrinsics. This adds 128 and 256 bit vectors of dwords and qwords.
llvm-svn: 227075
Diffstat (limited to 'clang/test/CodeGen/avx512f-builtins.c')
-rw-r--r-- | clang/test/CodeGen/avx512f-builtins.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/clang/test/CodeGen/avx512f-builtins.c b/clang/test/CodeGen/avx512f-builtins.c index ffa03b55636..4f11b52a316 100644 --- a/clang/test/CodeGen/avx512f-builtins.c +++ b/clang/test/CodeGen/avx512f-builtins.c @@ -542,3 +542,51 @@ __mmask8 test_mm512_mask_cmpneq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __ // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 4, i8 {{.*}}) return (__mmask8)_mm512_mask_cmpneq_epu64_mask(__u, __a, __b); } + +__mmask16 test_mm512_cmp_epi32_mask(__m512i __a, __m512i __b) { + // CHECK-LABEL: @test_mm512_cmp_epi32_mask + // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 3, i16 -1) + return (__mmask16)_mm512_cmp_epi32_mask(__a, __b, 3); +} + +__mmask16 test_mm512_mask_cmp_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) { + // CHECK-LABEL: @test_mm512_mask_cmp_epi32_mask + // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 3, i16 {{.*}}) + return (__mmask16)_mm512_mask_cmp_epi32_mask(__u, __a, __b, 3); +} + +__mmask8 test_mm512_cmp_epi64_mask(__m512i __a, __m512i __b) { + // CHECK-LABEL: @test_mm512_cmp_epi64_mask + // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 3, i8 -1) + return (__mmask8)_mm512_cmp_epi64_mask(__a, __b, 3); +} + +__mmask8 test_mm512_mask_cmp_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) { + // CHECK-LABEL: @test_mm512_mask_cmp_epi64_mask + // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 3, i8 {{.*}}) + return (__mmask8)_mm512_mask_cmp_epi64_mask(__u, __a, __b, 3); +} + +__mmask16 test_mm512_cmp_epu32_mask(__m512i __a, __m512i __b) { + // CHECK-LABEL: @test_mm512_cmp_epu32_mask + // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 3, i16 -1) + return (__mmask16)_mm512_cmp_epu32_mask(__a, __b, 3); +} + +__mmask16 test_mm512_mask_cmp_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) { + // CHECK-LABEL: @test_mm512_mask_cmp_epu32_mask + // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 3, i16 {{.*}}) + return (__mmask16)_mm512_mask_cmp_epu32_mask(__u, __a, __b, 3); +} + +__mmask8 test_mm512_cmp_epu64_mask(__m512i __a, __m512i __b) { + // CHECK-LABEL: @test_mm512_cmp_epu64_mask + // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 3, i8 -1) + return (__mmask8)_mm512_cmp_epu64_mask(__a, __b, 3); +} + +__mmask8 test_mm512_mask_cmp_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) { + // CHECK-LABEL: @test_mm512_mask_cmp_epu64_mask + // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 3, i8 {{.*}}) + return (__mmask8)_mm512_mask_cmp_epu64_mask(__u, __a, __b, 3); +} |