summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/ValueTracking.cpp
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2019-07-12 22:37:55 +0000
committerVitaly Buka <vitalybuka@google.com>2019-07-12 22:37:55 +0000
commitb1bff76e22bd39eb46dcae49891fda1cf1cc0bd5 (patch)
tree41d1f5bd2bb0a5cb42aae6bbd384dd0318a99388 /llvm/lib/Analysis/ValueTracking.cpp
parentdb101864bdc938deb1d63fe4f7da761bd38e5cae (diff)
downloadbcm5719-llvm-b1bff76e22bd39eb46dcae49891fda1cf1cc0bd5.tar.gz
bcm5719-llvm-b1bff76e22bd39eb46dcae49891fda1cf1cc0bd5.zip
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 llvm-svn: 365971
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r--llvm/lib/Analysis/ValueTracking.cpp7
1 files changed, 1 insertions, 6 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index cf8fa9cee3f..ad8034b2d7b 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -3253,12 +3253,7 @@ Value *llvm::isBytewiseValue(Value *V, const DataLayout &DL) {
return Val;
}
- if (isa<ConstantVector>(C)) {
- Constant *Splat = cast<ConstantVector>(C)->getSplatValue();
- return Splat ? isBytewiseValue(Splat, DL) : nullptr;
- }
-
- if (isa<ConstantArray>(C) || isa<ConstantStruct>(C)) {
+ if (isa<ConstantAggregate>(C)) {
Value *Val = UndefInt8;
for (unsigned I = 0, E = C->getNumOperands(); I != E; ++I)
if (!(Val = Merge(Val, isBytewiseValue(C->getOperand(I), DL))))
OpenPOWER on IntegriCloud