diff options
| author | Craig Topper <craig.topper@intel.com> | 2019-01-16 21:29:29 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2019-01-16 21:29:29 +0000 |
| commit | e5b7cc8aa09bff37ab388d49e54c948dcec17e67 (patch) | |
| tree | 145ff1cbcff311c84adafe68ed0fcdf783db8901 /llvm/lib/Target | |
| parent | 238ad13b3ae189660dd0ecd1948997684d4551e7 (diff) | |
| download | bcm5719-llvm-e5b7cc8aa09bff37ab388d49e54c948dcec17e67.tar.gz bcm5719-llvm-e5b7cc8aa09bff37ab388d49e54c948dcec17e67.zip | |
[X86] Add a one use check to the setcc inversion code in combineVSelectWithAllOnesOrZeros
If we're going to generate a new inverted setcc, we should make sure we will be able to remove the old setcc.
Differential Revision: https://reviews.llvm.org/D56765
llvm-svn: 351378
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 9e17f4c455a..ece273302e6 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -33923,8 +33923,8 @@ combineVSelectWithAllOnesOrZeros(SDNode *N, SelectionDAG &DAG, bool FValIsAllZeros = ISD::isBuildVectorAllZeros(RHS.getNode()); // Try to invert the condition if true value is not all 1s and false value is - // not all 0s. - if (!TValIsAllOnes && !FValIsAllZeros && + // not all 0s. Only do this if the condition has one use. + if (!TValIsAllOnes && !FValIsAllZeros && Cond.hasOneUse() && // Check if the selector will be produced by CMPP*/PCMP*. Cond.getOpcode() == ISD::SETCC && // Check if SETCC has already been promoted. |

