From 1346a78d9c3250439e30bb35976e0fe656e49c7b Mon Sep 17 00:00:00 2001 From: Igor Breger Date: Wed, 29 Jun 2016 08:14:17 +0000 Subject: [PATCH] [AVX512] Zero extend cmp intrinsic return value. Differential Revision: http://reviews.llvm.org/D21746 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274110 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CGBuiltin.cpp | 4 ++-- test/CodeGen/avx512vl-builtins.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/CodeGen/CGBuiltin.cpp b/lib/CodeGen/CGBuiltin.cpp index e097457ea2..7c02434002 100644 --- a/lib/CodeGen/CGBuiltin.cpp +++ b/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/test/CodeGen/avx512vl-builtins.c b/test/CodeGen/avx512vl-builtins.c index c16f93e511..340a9d0100 100644 --- a/test/CodeGen/avx512vl-builtins.c +++ b/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> return (__mmask8)_mm_cmpeq_epu32_mask(__a, __b); } -- 2.50.1