summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2011-09-15 01:14:29 +0000
committerEli Friedman <eli.friedman@gmail.com>2011-09-15 01:14:29 +0000
commitc82751dd6761e3db62668b6b1cfddd4f659855b6 (patch)
tree7dfc93f730b3f9176ae6dc6cf0dff2d6f96b1250 /lib
parentb1afbac64b7c4c06959350acc175fb3552012f57 (diff)
downloadllvm-c82751dd6761e3db62668b6b1cfddd4f659855b6.tar.gz
llvm-c82751dd6761e3db62668b6b1cfddd4f659855b6.tar.bz2
llvm-c82751dd6761e3db62668b6b1cfddd4f659855b6.tar.xz
Make demanded-elt simplification for shufflevector slightly stronger. Spotted by inspection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139768 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp b/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
index 66f39be17b..81929bc623 100644
--- a/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+++ b/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
@@ -962,6 +962,9 @@ Value *InstCombiner::SimplifyDemandedVectorElts(Value *V, APInt DemandedElts,
unsigned MaskVal = Shuffle->getMaskValue(i);
if (MaskVal == -1u) {
UndefElts.setBit(i);
+ } else if (!DemandedElts[i]) {
+ NewUndefElts = true;
+ UndefElts.setBit(i);
} else if (MaskVal < LHSVWidth) {
if (UndefElts4[MaskVal]) {
NewUndefElts = true;