Lines Matching defs:CCR

106   // Add/Sub overflow ops with MVT::Glues are lowered to CCR dependences.
1551 SDValue &Result, SDValue &CCR,
1612 // Also sets CCR.
1622 CCR = DAG.getConstant(0, DL, N->getValueType(1));
1624 CCR = Arith.getValue(1);
1633 SDValue Result, CCR;
1635 lowerOverflowArithmetic(Op, DAG, Result, CCR, CC);
1638 if (isa<ConstantSDNode>(CCR)) {
1641 Overflow = CCR;
1645 DAG.getConstant(CC, DL, MVT::i8), CCR);
1668 // NOTE BTST sets CCR.Z flag
1908 // See if we can use the CCR value from the operand instead of
1998 // Otherwise use a regular CCR-setting instruction.
2203 SDValue CCR = EmitCmp(Op0, Op1, M68kCC, DL, DAG);
2205 DAG.getConstant(M68kCC, DL, MVT::i8), CCR);
3066 // The CCR operand of SelectItr might be missing a kill marker
3067 // because there were multiple uses of CCR, and ISel didn't know
3074 // Scan forward through BB for a use/def of CCR.
3078 if (mi.readsRegister(M68k::CCR, /*TRI=*/nullptr))
3080 if (mi.definesRegister(M68k::CCR, /*TRI=*/nullptr))
3084 // If we hit the end of the block, check whether CCR is live into a
3088 if (SBB->isLiveIn(M68k::CCR))
3091 // We found a def, or hit the end of the basic block and CCR wasn't live
3092 // out. SelectMI should have a kill flag on CCR.
3093 SelectItr->addRegisterKilled(M68k::CCR, TRI);
3189 // the same block. CCR is used by both, so mark it as live in the second.
3193 Jcc1MBB->addLiveIn(M68k::CCR);
3206 // If the CCR register isn't dead in the terminator, then claim that it's
3211 if (!LastCCRSUser->killsRegister(M68k::CCR, /*TRI=*/nullptr) &&
3213 Copy0MBB->addLiveIn(M68k::CCR);
3214 SinkMBB->addLiveIn(M68k::CCR);
3530 static SDValue getSETCC(M68k::CondCode Cond, SDValue CCR, const SDLoc &dl,
3533 DAG.getConstant(Cond, dl, MVT::i8), CCR);
3538 static SDValue combineCarryThroughADD(SDValue CCR) {
3539 if (CCR.getOpcode() == M68kISD::ADD) {
3540 if (isAllOnesConstant(CCR.getOperand(1))) {
3541 SDValue Carry = CCR.getOperand(0);
3560 /// Optimize a CCR definition used according to the condition code \p CC into
3561 /// a simpler CCR value, potentially returning a new \p CC and replacing uses
3563 static SDValue combineSetCCCCR(SDValue CCR, M68k::CondCode &CC,
3567 if (SDValue Flags = combineCarryThroughADD(CCR))
3578 SDValue CCR = N->getOperand(1);
3580 // Try to simplify the CCR and condition code operands.
3581 if (SDValue Flags = combineSetCCCCR(CCR, CC, DAG, Subtarget))
3590 SDValue CCR = N->getOperand(3);
3592 // Try to simplify the CCR and condition code operands.
3595 if (SDValue Flags = combineSetCCCCR(CCR, CC, DAG, Subtarget)) {
3615 // Optimize RES, CCR = M68kISD::ADDX LHS, RHS, CCR