Lines Matching defs:Carry
4710 static bool isAddCarryChain(SDValue Carry) {
4711 while (Carry.getOpcode() == ISD::UADDO_CARRY &&
4712 Carry->getValueType(0) != MVT::i128)
4713 Carry = Carry.getOperand(2);
4714 return Carry.getOpcode() == ISD::UADDO &&
4715 Carry->getValueType(0) != MVT::i128;
4718 static bool isSubBorrowChain(SDValue Carry) {
4719 while (Carry.getOpcode() == ISD::USUBO_CARRY &&
4720 Carry->getValueType(0) != MVT::i128)
4721 Carry = Carry.getOperand(2);
4722 return Carry.getOpcode() == ISD::USUBO &&
4723 Carry->getValueType(0) != MVT::i128;
4739 SDValue Carry = Op.getOperand(2);
4759 Carry = DAG.getNode(ISD::XOR, DL, Carry.getValueType(),
4760 Carry, DAG.getConstant(1, DL, Carry.getValueType()));
4761 Carry = DAG.getZExtOrTrunc(Carry, DL, MVT::i128);
4762 SDValue Result = DAG.getNode(BaseOp, DL, MVT::i128, LHS, RHS, Carry);
4763 SDValue Flag = DAG.getNode(FlagOp, DL, MVT::i128, LHS, RHS, Carry);
4780 if (!isAddCarryChain(Carry))
4788 if (!isSubBorrowChain(Carry))
4798 Carry = DAG.getNode(SystemZISD::GET_CCMASK, DL, MVT::i32, Carry,
4803 SDValue Result = DAG.getNode(BaseOp, DL, VTs, LHS, RHS, Carry);