[PATCH] D64031: isBytewiseValue check ConstantVector element by element
Vitaly Buka via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 1 13:19:21 PDT 2019
vitalybuka created this revision.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.
Now vector of same value with few undefs will sill be considered "Bytewise"
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D64031
Files:
llvm/lib/Analysis/ValueTracking.cpp
llvm/unittests/Analysis/ValueTrackingTest.cpp
Index: llvm/unittests/Analysis/ValueTrackingTest.cpp
===================================================================
--- llvm/unittests/Analysis/ValueTrackingTest.cpp
+++ llvm/unittests/Analysis/ValueTrackingTest.cpp
@@ -846,7 +846,7 @@
"<4 x i8> <i8 1, i8 1, i8 2, i8 1>",
},
{
- "",
+ "i8 5",
"<2 x i8> < i8 5, i8 undef >",
},
{
Index: llvm/lib/Analysis/ValueTracking.cpp
===================================================================
--- llvm/lib/Analysis/ValueTracking.cpp
+++ llvm/lib/Analysis/ValueTracking.cpp
@@ -3250,12 +3250,7 @@
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))))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D64031.207396.patch
Type: text/x-patch
Size: 1046 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190701/309e814b/attachment.bin>
More information about the llvm-commits
mailing list