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);
3065 // The CCR operand of SelectItr might be missing a kill marker
3066 // because there were multiple uses of CCR, and ISel didn't know
3073 // Scan forward through BB for a use/def of CCR.
3077 if (mi.readsRegister(M68k::CCR, /*TRI=*/nullptr))
3079 if (mi.definesRegister(M68k::CCR, /*TRI=*/nullptr))
3083 // If we hit the end of the block, check whether CCR is live into a
3087 if (SBB->isLiveIn(M68k::CCR))
3090 // We found a def, or hit the end of the basic block and CCR wasn't live
3091 // out. SelectMI should have a kill flag on CCR.
3092 SelectItr->addRegisterKilled(M68k::CCR, TRI);
3188 // the same block. CCR is used by both, so mark it as live in the second.
3192 Jcc1MBB->addLiveIn(M68k::CCR);
3205 // If the CCR register isn't dead in the terminator, then claim that it's
3210 if (!LastCCRSUser->killsRegister(M68k::CCR, /*TRI=*/nullptr) &&
3212 Copy0MBB->addLiveIn(M68k::CCR);
3213 SinkMBB->addLiveIn(M68k::CCR);
3529 static SDValue getSETCC(M68k::CondCode Cond, SDValue CCR, const SDLoc &dl,
3532 DAG.getConstant(Cond, dl, MVT::i8), CCR);
3537 static SDValue combineCarryThroughADD(SDValue CCR) {
3538 if (CCR.getOpcode() == M68kISD::ADD) {
3539 if (isAllOnesConstant(CCR.getOperand(1))) {
3540 SDValue Carry = CCR.getOperand(0);
3559 /// Optimize a CCR definition used according to the condition code \p CC into
3560 /// a simpler CCR value, potentially returning a new \p CC and replacing uses
3562 static SDValue combineSetCCCCR(SDValue CCR, M68k::CondCode &CC,
3566 if (SDValue Flags = combineCarryThroughADD(CCR))
3577 SDValue CCR = N->getOperand(1);
3579 // Try to simplify the CCR and condition code operands.
3580 if (SDValue Flags = combineSetCCCCR(CCR, CC, DAG, Subtarget))
3589 SDValue CCR = N->getOperand(3);
3591 // Try to simplify the CCR and condition code operands.
3594 if (SDValue Flags = combineSetCCCCR(CCR, CC, DAG, Subtarget)) {
3614 // Optimize RES, CCR = M68kISD::ADDX LHS, RHS, CCR