summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Breger <igor.breger@intel.com>2016-06-29 08:14:17 +0000
committerIgor Breger <igor.breger@intel.com>2016-06-29 08:14:17 +0000
commit2c880cf9b131cc528ae9d819c4965a9b5652e6fb (patch)
tree3925dcf7b1932cf8ba6657da02dcacf70c4446ee
parent93c9af425ed061b9ea0290253c40eb12e76ffe32 (diff)
downloadbcm5719-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.cpp4
-rw-r--r--clang/test/CodeGen/avx512vl-builtins.c1
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);
}
OpenPOWER on IntegriCloud