summaryrefslogtreecommitdiff
path: root/test/CodeGen/avx512vlbw-builtins.c
diff options
context:
space:
mode:
authorMichael Zuckerman <Michael.zuckerman@intel.com>2017-04-04 13:29:53 +0000
committerMichael Zuckerman <Michael.zuckerman@intel.com>2017-04-04 13:29:53 +0000
commit410778090360bf67a7360b42ed4e4f5e0c23c674 (patch)
treed59d818a4e16ffb8f14e596f8972cd223b853574 /test/CodeGen/avx512vlbw-builtins.c
parentb90806f91c608d403c80f50ab8e052e756b9d8c2 (diff)
downloadclang-410778090360bf67a7360b42ed4e4f5e0c23c674.tar.gz
[X86][Clang] Converting __mm{|256|512}_movm_epi{8|16|32|64} LLVMIR call into generic intrinsics.
This patch is a part two of two reviews, one for the clang and the other for LLVM. In this patch, I covered the clang side, by introducing the intrinsic to the front end. This is done by creating a generic replacement. Differential Revision: https://reviews.llvm.org/D31394a git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@299431 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/avx512vlbw-builtins.c')
-rw-r--r--test/CodeGen/avx512vlbw-builtins.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/test/CodeGen/avx512vlbw-builtins.c b/test/CodeGen/avx512vlbw-builtins.c
index fe363c9ffd..9fc3851ad0 100644
--- a/test/CodeGen/avx512vlbw-builtins.c
+++ b/test/CodeGen/avx512vlbw-builtins.c
@@ -2521,25 +2521,29 @@ __mmask32 test_mm256_movepi8_mask(__m256i __A) {
__m128i test_mm_movm_epi8(__mmask16 __A) {
// CHECK-LABEL: @test_mm_movm_epi8
- // CHECK: @llvm.x86.avx512.cvtmask2b.128
+ // CHECK: %2 = bitcast i16 %1 to <16 x i1>
+ // CHECK: %vpmovm2.i = sext <16 x i1> %2 to <16 x i8>
return _mm_movm_epi8(__A);
}
__m256i test_mm256_movm_epi8(__mmask32 __A) {
// CHECK-LABEL: @test_mm256_movm_epi8
- // CHECK: @llvm.x86.avx512.cvtmask2b.256
+ // CHECK: %2 = bitcast i32 %1 to <32 x i1>
+ // CHECK: %vpmovm2.i = sext <32 x i1> %2 to <32 x i8>
return _mm256_movm_epi8(__A);
}
__m128i test_mm_movm_epi16(__mmask8 __A) {
// CHECK-LABEL: @test_mm_movm_epi16
- // CHECK: @llvm.x86.avx512.cvtmask2w.128
+ // CHECK: %2 = bitcast i8 %1 to <8 x i1>
+ // CHECK: %vpmovm2.i = sext <8 x i1> %2 to <8 x i16>
return _mm_movm_epi16(__A);
}
__m256i test_mm256_movm_epi16(__mmask16 __A) {
// CHECK-LABEL: @test_mm256_movm_epi16
- // CHECK: @llvm.x86.avx512.cvtmask2w.256
+ // CHECK: %2 = bitcast i16 %1 to <16 x i1>
+ // CHECK: %vpmovm2.i = sext <16 x i1> %2 to <16 x i16>
return _mm256_movm_epi16(__A);
}