From b661fecbf65461dcd17f11dba78599c848bed744 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Fri, 12 Jul 2019 22:37:55 +0000 Subject: [PATCH] isBytewiseValue checks ConstantVector element by element Summary: Vector of the same value with few undefs will sill be considered "Bytewise" Reviewers: eugenis, pcc, jfb Reviewed By: jfb Subscribers: dexonsmith, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64031 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365971 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/ValueTracking.cpp | 7 +------ unittests/Analysis/ValueTrackingTest.cpp | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/lib/Analysis/ValueTracking.cpp b/lib/Analysis/ValueTracking.cpp index cf8fa9cee3f..ad8034b2d7b 100644 --- a/lib/Analysis/ValueTracking.cpp +++ b/lib/Analysis/ValueTracking.cpp @@ -3253,12 +3253,7 @@ Value *llvm::isBytewiseValue(Value *V, const DataLayout &DL) { return Val; } - if (isa(C)) { - Constant *Splat = cast(C)->getSplatValue(); - return Splat ? isBytewiseValue(Splat, DL) : nullptr; - } - - if (isa(C) || isa(C)) { + if (isa(C)) { Value *Val = UndefInt8; for (unsigned I = 0, E = C->getNumOperands(); I != E; ++I) if (!(Val = Merge(Val, isBytewiseValue(C->getOperand(I), DL)))) diff --git a/unittests/Analysis/ValueTrackingTest.cpp b/unittests/Analysis/ValueTrackingTest.cpp index f4316cc8575..96b41d93d56 100644 --- a/unittests/Analysis/ValueTrackingTest.cpp +++ b/unittests/Analysis/ValueTrackingTest.cpp @@ -878,7 +878,7 @@ const std::pair IsBytewiseValueTests[] = { "<4 x i8> ", }, { - "", + "i8 5", "<2 x i8> < i8 5, i8 undef >", }, { -- 2.50.0