@@ -162,10 +162,10 @@ static cl::opt<bool> UseFEATCPACodegen(
162162 cl::init(false));
163163
164164/// Value type used for condition codes.
165- static const MVT MVT_CC = MVT::i32;
165+ constexpr MVT CondCodeVT = MVT::i32;
166166
167167/// Value type used for NZCV flags.
168- static constexpr MVT FlagsVT = MVT::i32;
168+ constexpr MVT FlagsVT = MVT::i32;
169169
170170static const MCPhysReg GPRArgRegs[] = {AArch64::X0, AArch64::X1, AArch64::X2,
171171 AArch64::X3, AArch64::X4, AArch64::X5,
@@ -3472,6 +3472,12 @@ static void changeVectorFPCCToAArch64CC(ISD::CondCode CC,
34723472 }
34733473}
34743474
3475+ /// Like SelectionDAG::getCondCode(), but for AArch64 condition codes.
3476+ static SDValue getCondCode(SelectionDAG &DAG, AArch64CC::CondCode CC) {
3477+ // TODO: Should be TargetConstant (need to s/imm/timm in patterns).
3478+ return DAG.getConstant(CC, SDLoc(), CondCodeVT);
3479+ }
3480+
34753481static bool isLegalArithImmed(uint64_t C) {
34763482 // Matches AArch64DAGToDAGISel::SelectArithImmed().
34773483 bool IsLegal = (C >> 12 == 0) || ((C & 0xFFFULL) == 0 && C >> 24 == 0);
@@ -3678,7 +3684,7 @@ static SDValue emitConditionalComparison(SDValue LHS, SDValue RHS,
36783684 if (Opcode == 0)
36793685 Opcode = AArch64ISD::CCMP;
36803686
3681- SDValue Condition = DAG.getConstant(Predicate, DL, MVT_CC );
3687+ SDValue Condition = getCondCode(DAG, Predicate );
36823688 AArch64CC::CondCode InvOutCC = AArch64CC::getInvertedCondCode(OutCC);
36833689 unsigned NZCV = AArch64CC::getNZCVToSatisfyCondCode(InvOutCC);
36843690 SDValue NZCVOp = DAG.getConstant(NZCV, DL, MVT::i32);
@@ -4075,7 +4081,7 @@ static SDValue getAArch64Cmp(SDValue LHS, SDValue RHS, ISD::CondCode CC,
40754081 Cmp = emitComparison(LHS, RHS, CC, DL, DAG);
40764082 AArch64CC = changeIntCCToAArch64CC(CC);
40774083 }
4078- AArch64cc = DAG.getConstant(AArch64CC, DL, MVT_CC );
4084+ AArch64cc = getCondCode(DAG, AArch64CC );
40794085 return Cmp;
40804086}
40814087
@@ -4195,7 +4201,7 @@ SDValue AArch64TargetLowering::LowerXOR(SDValue Op, SelectionDAG &DAG) const {
41954201 AArch64CC::CondCode CC;
41964202 SDValue Value, Overflow;
41974203 std::tie(Value, Overflow) = getAArch64XALUOOp(CC, Sel.getValue(0), DAG);
4198- SDValue CCVal = DAG.getConstant( getInvertedCondCode(CC), DL, MVT::i32 );
4204+ SDValue CCVal = getCondCode(DAG, getInvertedCondCode(CC));
41994205 return DAG.getNode(AArch64ISD::CSEL, DL, Op.getValueType(), TVal, FVal,
42004206 CCVal, Overflow);
42014207 }
@@ -4274,8 +4280,8 @@ static SDValue carryFlagToValue(SDValue Glue, EVT VT, SelectionDAG &DAG,
42744280 SDLoc DL(Glue);
42754281 SDValue Zero = DAG.getConstant(0, DL, VT);
42764282 SDValue One = DAG.getConstant(1, DL, VT);
4277- unsigned Cond = Invert ? AArch64CC::LO : AArch64CC::HS;
4278- SDValue CC = DAG.getConstant(Cond, DL, MVT::i32 );
4283+ AArch64CC::CondCode Cond = Invert ? AArch64CC::LO : AArch64CC::HS;
4284+ SDValue CC = getCondCode(DAG, Cond );
42794285 return DAG.getNode(AArch64ISD::CSEL, DL, VT, One, Zero, CC, Glue);
42804286}
42814287
@@ -4285,7 +4291,7 @@ static SDValue overflowFlagToValue(SDValue Glue, EVT VT, SelectionDAG &DAG) {
42854291 SDLoc DL(Glue);
42864292 SDValue Zero = DAG.getConstant(0, DL, VT);
42874293 SDValue One = DAG.getConstant(1, DL, VT);
4288- SDValue CC = DAG.getConstant(AArch64CC::VS, DL, MVT::i32 );
4294+ SDValue CC = getCondCode(DAG, AArch64CC::VS );
42894295 return DAG.getNode(AArch64ISD::CSEL, DL, VT, One, Zero, CC, Glue);
42904296}
42914297
@@ -4334,7 +4340,7 @@ static SDValue LowerXALUO(SDValue Op, SelectionDAG &DAG) {
43344340 // We use an inverted condition, because the conditional select is inverted
43354341 // too. This will allow it to be selected to a single instruction:
43364342 // CSINC Wd, WZR, WZR, invert(cond).
4337- SDValue CCVal = DAG.getConstant( getInvertedCondCode(CC), DL, MVT::i32 );
4343+ SDValue CCVal = getCondCode(DAG, getInvertedCondCode(CC));
43384344 Overflow =
43394345 DAG.getNode(AArch64ISD::CSEL, DL, MVT::i32, FVal, TVal, CCVal, Overflow);
43404346
@@ -7124,8 +7130,7 @@ SDValue AArch64TargetLowering::LowerABS(SDValue Op, SelectionDAG &DAG) const {
71247130 SDValue Cmp = DAG.getNode(AArch64ISD::SUBS, DL, DAG.getVTList(VT, FlagsVT),
71257131 Op.getOperand(0), DAG.getConstant(0, DL, VT));
71267132 return DAG.getNode(AArch64ISD::CSEL, DL, VT, Op.getOperand(0), Neg,
7127- DAG.getConstant(AArch64CC::PL, DL, MVT::i32),
7128- Cmp.getValue(1));
7133+ getCondCode(DAG, AArch64CC::PL), Cmp.getValue(1));
71297134}
71307135
71317136static SDValue LowerBRCOND(SDValue Op, SelectionDAG &DAG) {
@@ -7136,7 +7141,7 @@ static SDValue LowerBRCOND(SDValue Op, SelectionDAG &DAG) {
71367141 AArch64CC::CondCode CC;
71377142 if (SDValue Cmp = emitConjunction(DAG, Cond, CC)) {
71387143 SDLoc DL(Op);
7139- SDValue CCVal = DAG.getConstant(CC, DL, MVT::i32 );
7144+ SDValue CCVal = getCondCode(DAG, CC );
71407145 return DAG.getNode(AArch64ISD::BRCOND, DL, MVT::Other, Chain, Dest, CCVal,
71417146 Cmp);
71427147 }
@@ -10575,7 +10580,7 @@ SDValue AArch64TargetLowering::LowerBR_CC(SDValue Op, SelectionDAG &DAG) const {
1057510580
1057610581 if (CC == ISD::SETNE)
1057710582 OFCC = getInvertedCondCode(OFCC);
10578- SDValue CCVal = DAG.getConstant(OFCC, DL, MVT::i32 );
10583+ SDValue CCVal = getCondCode(DAG, OFCC );
1057910584
1058010585 return DAG.getNode(AArch64ISD::BRCOND, DL, MVT::Other, Chain, Dest, CCVal,
1058110586 Overflow);
@@ -10648,7 +10653,7 @@ SDValue AArch64TargetLowering::LowerBR_CC(SDValue Op, SelectionDAG &DAG) const {
1064810653 AArch64CC::isValidCBCond(changeIntCCToAArch64CC(CC)) &&
1064910654 ProduceNonFlagSettingCondBr) {
1065010655 SDValue Cond =
10651- DAG.getTargetConstant(changeIntCCToAArch64CC(CC), DL, MVT::i32 );
10656+ DAG.getTargetConstant(changeIntCCToAArch64CC(CC), DL, CondCodeVT );
1065210657 return DAG.getNode(AArch64ISD::CB, DL, MVT::Other, Chain, Cond, LHS, RHS,
1065310658 Dest);
1065410659 }
@@ -10667,11 +10672,11 @@ SDValue AArch64TargetLowering::LowerBR_CC(SDValue Op, SelectionDAG &DAG) const {
1066710672 SDValue Cmp = emitComparison(LHS, RHS, CC, DL, DAG);
1066810673 AArch64CC::CondCode CC1, CC2;
1066910674 changeFPCCToAArch64CC(CC, CC1, CC2);
10670- SDValue CC1Val = DAG.getConstant(CC1, DL, MVT::i32 );
10675+ SDValue CC1Val = getCondCode(DAG, CC1 );
1067110676 SDValue BR1 =
1067210677 DAG.getNode(AArch64ISD::BRCOND, DL, MVT::Other, Chain, Dest, CC1Val, Cmp);
1067310678 if (CC2 != AArch64CC::AL) {
10674- SDValue CC2Val = DAG.getConstant(CC2, DL, MVT::i32 );
10679+ SDValue CC2Val = getCondCode(DAG, CC2 );
1067510680 return DAG.getNode(AArch64ISD::BRCOND, DL, MVT::Other, BR1, Dest, CC2Val,
1067610681 Cmp);
1067710682 }
@@ -11160,7 +11165,7 @@ SDValue AArch64TargetLowering::LowerSETCC(SDValue Op, SelectionDAG &DAG) const {
1116011165 if (CC2 == AArch64CC::AL) {
1116111166 changeFPCCToAArch64CC(ISD::getSetCCInverse(CC, LHS.getValueType()), CC1,
1116211167 CC2);
11163- SDValue CC1Val = DAG.getConstant(CC1, DL, MVT::i32 );
11168+ SDValue CC1Val = getCondCode(DAG, CC1 );
1116411169
1116511170 // Note that we inverted the condition above, so we reverse the order of
1116611171 // the true and false operands here. This will allow the setcc to be
@@ -11173,11 +11178,11 @@ SDValue AArch64TargetLowering::LowerSETCC(SDValue Op, SelectionDAG &DAG) const {
1117311178 // of the first as the RHS. We're effectively OR'ing the two CC's together.
1117411179
1117511180 // FIXME: It would be nice if we could match the two CSELs to two CSINCs.
11176- SDValue CC1Val = DAG.getConstant(CC1, DL, MVT::i32 );
11181+ SDValue CC1Val = getCondCode(DAG, CC1 );
1117711182 SDValue CS1 =
1117811183 DAG.getNode(AArch64ISD::CSEL, DL, VT, TVal, FVal, CC1Val, Cmp);
1117911184
11180- SDValue CC2Val = DAG.getConstant(CC2, DL, MVT::i32 );
11185+ SDValue CC2Val = getCondCode(DAG, CC2 );
1118111186 Res = DAG.getNode(AArch64ISD::CSEL, DL, VT, TVal, CS1, CC2Val, Cmp);
1118211187 }
1118311188 return IsStrict ? DAG.getMergeValues({Res, Cmp.getValue(1)}, DL) : Res;
@@ -11205,8 +11210,7 @@ SDValue AArch64TargetLowering::LowerSETCCCARRY(SDValue Op,
1120511210
1120611211 ISD::CondCode Cond = cast<CondCodeSDNode>(Op.getOperand(3))->get();
1120711212 ISD::CondCode CondInv = ISD::getSetCCInverse(Cond, VT);
11208- SDValue CCVal =
11209- DAG.getConstant(changeIntCCToAArch64CC(CondInv), DL, MVT::i32);
11213+ SDValue CCVal = getCondCode(DAG, changeIntCCToAArch64CC(CondInv));
1121011214 // Inputs are swapped because the condition is inverted. This will allow
1121111215 // matching with a single CSINC instruction.
1121211216 return DAG.getNode(AArch64ISD::CSEL, DL, OpVT, FVal, TVal, CCVal,
@@ -11577,13 +11581,13 @@ SDValue AArch64TargetLowering::LowerSELECT_CC(
1157711581 }
1157811582
1157911583 // Emit first, and possibly only, CSEL.
11580- SDValue CC1Val = DAG.getConstant(CC1, DL, MVT::i32 );
11584+ SDValue CC1Val = getCondCode(DAG, CC1 );
1158111585 SDValue CS1 = DAG.getNode(AArch64ISD::CSEL, DL, VT, TVal, FVal, CC1Val, Cmp);
1158211586
1158311587 // If we need a second CSEL, emit it, using the output of the first as the
1158411588 // RHS. We're effectively OR'ing the two CC's together.
1158511589 if (CC2 != AArch64CC::AL) {
11586- SDValue CC2Val = DAG.getConstant(CC2, DL, MVT::i32 );
11590+ SDValue CC2Val = getCondCode(DAG, CC2 );
1158711591 return DAG.getNode(AArch64ISD::CSEL, DL, VT, TVal, CS1, CC2Val, Cmp);
1158811592 }
1158911593
@@ -11685,7 +11689,7 @@ SDValue AArch64TargetLowering::LowerSELECT(SDValue Op,
1168511689 AArch64CC::CondCode OFCC;
1168611690 SDValue Value, Overflow;
1168711691 std::tie(Value, Overflow) = getAArch64XALUOOp(OFCC, CCVal.getValue(0), DAG);
11688- SDValue CCVal = DAG.getConstant(OFCC, DL, MVT::i32 );
11692+ SDValue CCVal = getCondCode(DAG, OFCC );
1168911693
1169011694 return DAG.getNode(AArch64ISD::CSEL, DL, Op.getValueType(), TVal, FVal,
1169111695 CCVal, Overflow);
@@ -12525,10 +12529,10 @@ static AArch64CC::CondCode parseConstraintCode(llvm::StringRef Constraint) {
1252512529/// WZR, invert(<cond>)'.
1252612530static SDValue getSETCC(AArch64CC::CondCode CC, SDValue NZCV, const SDLoc &DL,
1252712531 SelectionDAG &DAG) {
12528- return DAG.getNode(
12529- AArch64ISD::CSINC, DL, MVT::i32, DAG.getConstant(0, DL, MVT::i32),
12530- DAG.getConstant(0, DL, MVT::i32),
12531- DAG.getConstant( getInvertedCondCode(CC), DL, MVT::i32 ), NZCV);
12532+ return DAG.getNode(AArch64ISD::CSINC, DL, MVT::i32,
12533+ DAG.getConstant(0, DL, MVT::i32),
12534+ DAG.getConstant(0, DL, MVT::i32),
12535+ getCondCode(DAG, getInvertedCondCode(CC)), NZCV);
1253212536}
1253312537
1253412538// Lower @cc flag output via getSETCC.
@@ -18699,7 +18703,7 @@ AArch64TargetLowering::BuildSREMPow2(SDNode *N, const APInt &Divisor,
1869918703 Created.push_back(Cmp.getNode());
1870018704 Created.push_back(And.getNode());
1870118705 } else {
18702- SDValue CCVal = DAG.getConstant( AArch64CC::MI, DL, MVT_CC );
18706+ SDValue CCVal = getCondCode(DAG, AArch64CC::MI);
1870318707 SDVTList VTs = DAG.getVTList(VT, FlagsVT);
1870418708
1870518709 SDValue Negs = DAG.getNode(AArch64ISD::SUBS, DL, VTs, Zero, N0);
@@ -19571,11 +19575,11 @@ static SDValue performANDORCSELCombine(SDNode *N, SelectionDAG &DAG) {
1957119575
1957219576 if (N->getOpcode() == ISD::AND) {
1957319577 AArch64CC::CondCode InvCC0 = AArch64CC::getInvertedCondCode(CC0);
19574- Condition = DAG.getConstant(InvCC0, DL, MVT_CC );
19578+ Condition = getCondCode(DAG, InvCC0 );
1957519579 NZCV = AArch64CC::getNZCVToSatisfyCondCode(CC1);
1957619580 } else {
1957719581 AArch64CC::CondCode InvCC1 = AArch64CC::getInvertedCondCode(CC1);
19578- Condition = DAG.getConstant(CC0, DL, MVT_CC );
19582+ Condition = getCondCode(DAG, CC0 );
1957919583 NZCV = AArch64CC::getNZCVToSatisfyCondCode(InvCC1);
1958019584 }
1958119585
@@ -19596,8 +19600,7 @@ static SDValue performANDORCSELCombine(SDNode *N, SelectionDAG &DAG) {
1959619600 Cmp1.getOperand(1), NZCVOp, Condition, Cmp0);
1959719601 }
1959819602 return DAG.getNode(AArch64ISD::CSEL, DL, VT, CSel0.getOperand(0),
19599- CSel0.getOperand(1), DAG.getConstant(CC1, DL, MVT::i32),
19600- CCmp);
19603+ CSel0.getOperand(1), getCondCode(DAG, CC1), CCmp);
1960119604}
1960219605
1960319606static SDValue performORCombine(SDNode *N, TargetLowering::DAGCombinerInfo &DCI,
@@ -19802,7 +19805,7 @@ static SDValue performANDSETCCCombine(SDNode *N,
1980219805 SDLoc DL(N);
1980319806 return DAG.getNode(AArch64ISD::CSINC, DL, VT, DAG.getConstant(0, DL, VT),
1980419807 DAG.getConstant(0, DL, VT),
19805- DAG.getConstant(InvertedCC, DL, MVT::i32 ), Cmp);
19808+ getCondCode(DAG, InvertedCC ), Cmp);
1980619809 }
1980719810 }
1980819811 return SDValue();
@@ -20793,7 +20796,7 @@ static SDValue performAddCSelIntoCSinc(SDNode *N, SelectionDAG &DAG) {
2079320796 "Unexpected constant value");
2079420797
2079520798 SDValue NewNode = DAG.getNode(ISD::ADD, DL, VT, RHS, SDValue(CTVal, 0));
20796- SDValue CCVal = DAG.getConstant(AArch64CC, DL, MVT::i32 );
20799+ SDValue CCVal = getCondCode(DAG, AArch64CC );
2079720800 SDValue Cmp = LHS.getOperand(3);
2079820801
2079920802 return DAG.getNode(AArch64ISD::CSINC, DL, VT, NewNode, RHS, CCVal, Cmp);
@@ -20979,7 +20982,7 @@ static SDValue foldADCToCINC(SDNode *N, SelectionDAG &DAG) {
2097920982 SDLoc DL(N);
2098020983
2098120984 // (CINC x cc cond) <=> (CSINC x x !cc cond)
20982- SDValue CC = DAG.getConstant(AArch64CC::LO, DL, MVT::i32 );
20985+ SDValue CC = getCondCode(DAG, AArch64CC::LO );
2098320986 return DAG.getNode(AArch64ISD::CSINC, DL, VT, LHS, LHS, CC, Cond);
2098420987}
2098520988
@@ -22052,7 +22055,7 @@ static SDValue getPTest(SelectionDAG &DAG, EVT VT, SDValue Pg, SDValue Op,
2205222055
2205322056 // Convert CC to integer based on requested condition.
2205422057 // NOTE: Cond is inverted to promote CSEL's removal when it feeds a compare.
22055- SDValue CC = DAG.getConstant( getInvertedCondCode(Cond), DL, MVT::i32 );
22058+ SDValue CC = getCondCode(DAG, getInvertedCondCode(Cond));
2205622059 SDValue Res = DAG.getNode(AArch64ISD::CSEL, DL, OutVT, FVal, TVal, CC, Test);
2205722060 return DAG.getZExtOrTrunc(Res, DL, VT);
2205822061}
@@ -25093,10 +25096,9 @@ static SDValue performBRCONDCombine(SDNode *N,
2509325096 auto CSelCC = getCSETCondCode(CSel);
2509425097 if (CSelCC) {
2509525098 SDLoc DL(N);
25096- return DAG.getNode(
25097- N->getOpcode(), DL, N->getVTList(), Chain, Dest,
25098- DAG.getConstant(getInvertedCondCode(*CSelCC), DL, MVT::i32),
25099- CSel.getOperand(3));
25099+ return DAG.getNode(N->getOpcode(), DL, N->getVTList(), Chain, Dest,
25100+ getCondCode(DAG, getInvertedCondCode(*CSelCC)),
25101+ CSel.getOperand(3));
2510025102 }
2510125103 }
2510225104
@@ -25237,7 +25239,7 @@ static SDValue foldCSELOfCSEL(SDNode *Op, SelectionDAG &DAG) {
2523725239 SDLoc DL(Op);
2523825240 EVT VT = Op->getValueType(0);
2523925241
25240- SDValue CCValue = DAG.getConstant(CC, DL, MVT::i32 );
25242+ SDValue CCValue = getCondCode(DAG, CC );
2524125243 return DAG.getNode(AArch64ISD::CSEL, DL, VT, L, R, CCValue, Cond);
2524225244}
2524325245
@@ -25314,8 +25316,7 @@ static SDValue reassociateCSELOperandsForCSE(SDNode *N, SelectionDAG &DAG) {
2531425316 SDValue TValReassoc = Reassociate(TReassocOp, 0);
2531525317 SDValue FValReassoc = Reassociate(FReassocOp, 1);
2531625318 return DAG.getNode(AArch64ISD::CSEL, SDLoc(N), VT, TValReassoc, FValReassoc,
25317- DAG.getConstant(NewCC, SDLoc(N->getOperand(2)), MVT_CC),
25318- NewCmp.getValue(1));
25319+ getCondCode(DAG, NewCC), NewCmp.getValue(1));
2531925320 };
2532025321
2532125322 auto CC = static_cast<AArch64CC::CondCode>(N->getConstantOperandVal(2));
@@ -25456,8 +25457,7 @@ static SDValue performCSELCombine(SDNode *N,
2545625457 SDValue Sub = DAG.getNode(AArch64ISD::SUBS, DL, Cond->getVTList(),
2545725458 Cond.getOperand(1), Cond.getOperand(0));
2545825459 return DAG.getNode(AArch64ISD::CSEL, DL, N->getVTList(), N->getOperand(0),
25459- N->getOperand(1),
25460- DAG.getConstant(NewCond, DL, MVT::i32),
25460+ N->getOperand(1), getCondCode(DAG, NewCond),
2546125461 Sub.getValue(1));
2546225462 }
2546325463 }
@@ -25557,10 +25557,9 @@ static SDValue performSETCCCombine(SDNode *N,
2555725557 auto NewCond = getInvertedCondCode(OldCond);
2555825558
2555925559 // csel 0, 1, !cond, X
25560- SDValue CSEL =
25561- DAG.getNode(AArch64ISD::CSEL, DL, LHS.getValueType(), LHS.getOperand(0),
25562- LHS.getOperand(1), DAG.getConstant(NewCond, DL, MVT::i32),
25563- LHS.getOperand(3));
25560+ SDValue CSEL = DAG.getNode(AArch64ISD::CSEL, DL, LHS.getValueType(),
25561+ LHS.getOperand(0), LHS.getOperand(1),
25562+ getCondCode(DAG, NewCond), LHS.getOperand(3));
2556425563 return DAG.getZExtOrTrunc(CSEL, DL, VT);
2556525564 }
2556625565
@@ -25630,8 +25629,7 @@ static SDValue performFlagSettingCombine(SDNode *N,
2563025629 // If the flag result isn't used, convert back to a generic opcode.
2563125630 if (!N->hasAnyUseOfValue(1)) {
2563225631 SDValue Res = DCI.DAG.getNode(GenericOpcode, DL, VT, N->ops());
25633- return DCI.DAG.getMergeValues({Res, DCI.DAG.getConstant(0, DL, MVT::i32)},
25634- DL);
25632+ return DCI.CombineTo(N, Res, SDValue(N, 1));
2563525633 }
2563625634
2563725635 // Combine identical generic nodes into this node, re-using the result.
@@ -27013,10 +27011,10 @@ static SDValue performRNDRCombine(SDNode *N, SelectionDAG &DAG) {
2701327011 SDValue A = DAG.getNode(
2701427012 AArch64ISD::MRS, DL, DAG.getVTList(MVT::i64, FlagsVT, MVT::Other),
2701527013 N->getOperand(0), DAG.getConstant(Register, DL, MVT::i32));
27016- SDValue B = DAG.getNode(
27017- AArch64ISD::CSINC, DL, MVT::i32, DAG.getConstant(0, DL, MVT::i32),
27018- DAG.getConstant(0, DL, MVT::i32),
27019- DAG.getConstant(AArch64CC::NE, DL, MVT::i32 ), A.getValue(1));
27014+ SDValue B = DAG.getNode(AArch64ISD::CSINC, DL, MVT::i32,
27015+ DAG.getConstant(0, DL, MVT::i32),
27016+ DAG.getConstant(0, DL, MVT::i32),
27017+ getCondCode(DAG, AArch64CC::NE ), A.getValue(1));
2702027018 return DAG.getMergeValues(
2702127019 {A, DAG.getZExtOrTrunc(B, DL, MVT::i1), A.getValue(2)}, DL);
2702227020}
0 commit comments