diff options
author | Igor Breger <igor.breger@intel.com> | 2016-06-29 08:14:17 +0000 |
---|---|---|
committer | Igor Breger <igor.breger@intel.com> | 2016-06-29 08:14:17 +0000 |
commit | 2c880cf9b131cc528ae9d819c4965a9b5652e6fb (patch) | |
tree | 3925dcf7b1932cf8ba6657da02dcacf70c4446ee | |
parent | 93c9af425ed061b9ea0290253c40eb12e76ffe32 (diff) | |
download | bcm5719-llvm-2c880cf9b131cc528ae9d819c4965a9b5652e6fb.tar.gz bcm5719-llvm-2c880cf9b131cc528ae9d819c4965a9b5652e6fb.zip |
[AVX512] Zero extend cmp intrinsic return value.
Differential Revision: http://reviews.llvm.org/D21746
llvm-svn: 274110
-rw-r--r-- | clang/lib/CodeGen/CGBuiltin.cpp | 4 | ||||
-rw-r--r-- | clang/test/CodeGen/avx512vl-builtins.c | 1 |
2 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index e097457ea2b..7c024340025 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -6460,8 +6460,8 @@ static Value *EmitX86MaskedCompare(CodeGenFunction &CGF, unsigned CC, Indices[i] = i; for (unsigned i = NumElts; i != 8; ++i) Indices[i] = NumElts; - Cmp = CGF.Builder.CreateShuffleVector(Cmp, UndefValue::get(Cmp->getType()), - Indices); + Cmp = CGF.Builder.CreateShuffleVector( + Cmp, llvm::Constant::getNullValue(Cmp->getType()), Indices); } return CGF.Builder.CreateBitCast(Cmp, IntegerType::get(CGF.getLLVMContext(), diff --git a/clang/test/CodeGen/avx512vl-builtins.c b/clang/test/CodeGen/avx512vl-builtins.c index c16f93e511f..340a9d01002 100644 --- a/clang/test/CodeGen/avx512vl-builtins.c +++ b/clang/test/CodeGen/avx512vl-builtins.c @@ -8,6 +8,7 @@ __mmask8 test_mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) { // CHECK-LABEL: @test_mm_cmpeq_epu32_mask // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}} + // CHECK: shufflevector <4 x i1> %{{.*}}, <4 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 4, i32 4, i32 4> return (__mmask8)_mm_cmpeq_epu32_mask(__a, __b); } |