diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-01-24 11:07:41 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-01-24 11:07:41 +0000 |
commit | 78f8630ac098b63d904e8c5ab50c6e2d6d5bae5b (patch) | |
tree | 31a1f95143a169e4ffae9eaab8771ad749dddfab /llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp | |
parent | f726dfa65edebb6827eb5c8f17d028ad7e588b49 (diff) | |
download | bcm5719-llvm-78f8630ac098b63d904e8c5ab50c6e2d6d5bae5b.tar.gz bcm5719-llvm-78f8630ac098b63d904e8c5ab50c6e2d6d5bae5b.zip |
[InstCombine][X86] MULDQ/MULUDQ undef -> zero
Added early out for single undef input - we were already supporting (and testing) this in the constant folding code, we just do it quicker now
Drop undef handling from demanded elts code now that we handle it fully in InstCombiner::visitCallInst
llvm-svn: 292913
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp')
-rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp b/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp index e625f804a23..fb7177f1ddb 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp @@ -1469,12 +1469,6 @@ Value *InstCombiner::SimplifyDemandedVectorElts(Value *V, APInt DemandedElts, Depth + 1); if (TmpV) { II->setArgOperand(1, TmpV); MadeChange = true; } - // Output elements are undefined if both are undefined. Consider things - // like undef*0. The result is known zero, not undef. - for (unsigned i = 0; i != VWidth; ++i) - if (UndefElts2[i * 2] && UndefElts3[i * 2]) - UndefElts.setBit(i); - break; } |