Lines Matching defs:CMOV
1728 MAKE_CASE(ARMISD::CMOV)
5011 SDValue Overflow = DAG.getNode(ARMISD::CMOV, dl, VT, TVal, FVal,
5161 if (Cond.getOpcode() == ARMISD::CMOV && Cond.hasOneUse()) {
5266 SDValue Low = DAG.getNode(ARMISD::CMOV, dl, MVT::i32, FalseLow, TrueLow,
5268 SDValue High = DAG.getNode(ARMISD::CMOV, dl, MVT::i32, FalseHigh, TrueHigh,
5273 return DAG.getNode(ARMISD::CMOV, dl, VT, FalseVal, TrueVal, ARMcc, CCR,
6346 SDValue Lo = DAG.getNode(ARMISD::CMOV, dl, VT, LoSmallShift, LoBigShift,
6356 SDValue Hi = DAG.getNode(ARMISD::CMOV, dl, VT, HiSmallShift, HiBigShift,
6389 SDValue Hi = DAG.getNode(ARMISD::CMOV, dl, VT, HiSmallShift, HiBigShift,
6395 SDValue Lo = DAG.getNode(ARMISD::CMOV, dl, VT, LoSmallShift,
6986 return DAG.getNode(ARMISD::CMOV, DL, Op.getValueType(), FVal, TVal, ARMcc,
14983 // or CMPZ(CMOV(1, 0, CC, $cpsr, X))
15004 if (CSInc.getOpcode() == ARMISD::CMOV && isOneConstant(CSInc.getOperand(0)) &&
15009 if (CSInc.getOpcode() == ARMISD::CMOV && isOneConstant(CSInc.getOperand(1)) &&
18088 SDValue ARMTargetLowering::PerformCMOVToBFICombine(SDNode *CMOV, SelectionDAG &DAG) const {
18089 // If we have a CMOV, OR and AND combination such as:
18102 SDValue Op0 = CMOV->getOperand(0);
18103 SDValue Op1 = CMOV->getOperand(1);
18104 auto CC = CMOV->getConstantOperandAPInt(2).getLimitedValue();
18105 SDValue CmpZ = CMOV->getOperand(4);
18366 LHS->getOperand(0)->getOpcode() == ARMISD::CMOV &&
18379 /// PerformCMOVCombine - Target-specific DAG combining for ARMISD::CMOV.
18422 Res = DAG.getNode(ARMISD::CMOV, dl, VT, LHS, TrueVal, ARMcc,
18427 Res = DAG.getNode(ARMISD::CMOV, dl, VT, LHS, FalseVal, ARMcc,
18433 if (CC == ARMCC::NE && LHS.getOpcode() == ARMISD::CMOV && LHS->hasOneUse() &&
18436 return DAG.getNode(ARMISD::CMOV, dl, VT, FalseVal, TrueVal,
18444 // Fold away an unneccessary CMPZ/CMOV
18445 // CMOV A, B, C1, $cpsr, (CMPZ (CMOV 1, 0, C2, D), 0) ->
18446 // if C1==EQ -> CMOV A, B, C2, $cpsr, D
18447 // if C1==NE -> CMOV A, B, NOT(C2), $cpsr, D
18467 // CMOV 0, 1, ==, (CMPZ x, y) -> SRL (CTLZ (SUB x, y)), 5
18472 // CMOV 0, 1, ==, (CMPZ x, y) ->
18494 // CMOV 0, z, !=, (CMPZ x, y) -> CMOV (SUBC x, y), z, !=, (SUBC x, y):1
18499 Res = DAG.getNode(ARMISD::CMOV, dl, VT, Sub, TrueVal, ARMcc,
18508 // CMOV z, 0, ==, (CMPZ x, y) -> CMOV (SUBC x, y), z, !=, (SUBC x, y):1
18513 Res = DAG.getNode(ARMISD::CMOV, dl, VT, Sub, FalseVal,
18522 // CMOV (SUBC x, y), z, !=, (SUBC x, y):1 ->
18529 // CMOV x, z, !=, (CMPZ x, 0) ->
18940 case ARMISD::CMOV:
20100 case ARMISD::CMOV: {