diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2011-09-15 01:14:29 +0000 |
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2011-09-15 01:14:29 +0000 |
| commit | 888bea0b952007b0121552666dd2415e1f352bbe (patch) | |
| tree | fe58061dea3d8732a0a2784148ad37f05f0174bc /llvm/lib | |
| parent | 88c1b77f7427c0dda49afac2ceba8fb81afc058c (diff) | |
| download | bcm5719-llvm-888bea0b952007b0121552666dd2415e1f352bbe.tar.gz bcm5719-llvm-888bea0b952007b0121552666dd2415e1f352bbe.zip | |
Make demanded-elt simplification for shufflevector slightly stronger. Spotted by inspection.
llvm-svn: 139768
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp b/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp index 66f39be17b3..81929bc6230 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp +++ b/llvm/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; |

