From a53530206477fa0abf642175e3855fcb1a0920cf Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Sat, 25 Nov 2017 07:20:24 +0000 Subject: [PATCH] [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 --- lib/Target/X86/X86ISelLowering.cpp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 1673ce55fa0..9985b727c0e 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -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");