]> granicus.if.org Git - clang/commitdiff
[AVX512] Zero extend cmp intrinsic return value.
authorIgor Breger <igor.breger@intel.com>
Wed, 29 Jun 2016 08:14:17 +0000 (08:14 +0000)
committerIgor Breger <igor.breger@intel.com>
Wed, 29 Jun 2016 08:14:17 +0000 (08:14 +0000)
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
test/CodeGen/avx512vl-builtins.c

index e097457ea2b13899cce3ebe6373d545f6c75b1fc..7c024340025fba8cd4f10998b8db0331e14cab97 100644 (file)
@@ -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(),
index c16f93e511ff604ba8e5fce0c45756280b120b96..340a9d010029e68b7b59bf2267e586a6a0b56423 100644 (file)
@@ -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);
 }