mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-28 06:00:30 +00:00
[X86] Simplify some code in combineSetCC. NFCI
Make the condition for doing a std::swap simpler so we don't have to repeat the full checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318970 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
54fff5c91a
commit
a535302064
@ -35904,21 +35904,17 @@ static SDValue combineSetCC(SDNode *N, SelectionDAG &DAG,
|
||||
|
||||
if (VT.isVector() && VT.getVectorElementType() == MVT::i1 &&
|
||||
(CC == ISD::SETNE || CC == ISD::SETEQ || ISD::isSignedIntSetCC(CC))) {
|
||||
// Put build_vectors on the right.
|
||||
if (LHS.getOpcode() == ISD::BUILD_VECTOR) {
|
||||
std::swap(LHS, RHS);
|
||||
CC = ISD::getSetCCSwappedOperands(CC);
|
||||
}
|
||||
|
||||
bool IsSEXT0 =
|
||||
(LHS.getOpcode() == ISD::SIGN_EXTEND) &&
|
||||
(LHS.getOperand(0).getValueType().getVectorElementType() == MVT::i1);
|
||||
bool IsVZero1 = ISD::isBuildVectorAllZeros(RHS.getNode());
|
||||
|
||||
if (!IsSEXT0 || !IsVZero1) {
|
||||
// Swap the operands and update the condition code.
|
||||
std::swap(LHS, RHS);
|
||||
CC = ISD::getSetCCSwappedOperands(CC);
|
||||
|
||||
IsSEXT0 = (LHS.getOpcode() == ISD::SIGN_EXTEND) &&
|
||||
(LHS.getOperand(0).getValueType().getScalarType() == MVT::i1);
|
||||
IsVZero1 = ISD::isBuildVectorAllZeros(RHS.getNode());
|
||||
}
|
||||
|
||||
if (IsSEXT0 && IsVZero1) {
|
||||
assert(VT == LHS.getOperand(0).getValueType() &&
|
||||
"Uexpected operand type");
|
||||
|
Loading…
Reference in New Issue
Block a user