Home | History | Annotate | Download | only in ARM

Lines Matching refs:CMP

948   case ARMISD::CMP:           return "ARMISD::CMP";
3137 /// Returns appropriate ARM CMP (cmp) and corresponding condition code for
3185 CompareType = ARMISD::CMP;
3197 /// Returns a appropriate VFP CMP (fcmp{s|d}+fmstat) for the given operands.
3201 SDValue Cmp;
3203 Cmp = DAG.getNode(ARMISD::CMPFP, dl, MVT::Glue, LHS, RHS);
3205 Cmp = DAG.getNode(ARMISD::CMPFPw0, dl, MVT::Glue, LHS);
3206 return DAG.getNode(ARMISD::FMSTAT, dl, MVT::Glue, Cmp);
3212 ARMTargetLowering::duplicateCmp(SDValue Cmp, SelectionDAG &DAG) const {
3213 unsigned Opc = Cmp.getOpcode();
3214 SDLoc DL(Cmp);
3215 if (Opc == ARMISD::CMP || Opc == ARMISD::CMPZ)
3216 return DAG.getNode(Opc, DL, MVT::Glue, Cmp.getOperand(0),Cmp.getOperand(1));
3219 Cmp = Cmp.getOperand(0);
3220 Opc = Cmp.getOpcode();
3222 Cmp = DAG.getNode(Opc, DL, MVT::Glue, Cmp.getOperand(0),Cmp.getOperand(1));
3225 Cmp = DAG.getNode(Opc, DL, MVT::Glue, Cmp.getOperand(0));
3227 return DAG.getNode(ARMISD::FMSTAT, DL, MVT::Glue, Cmp);
3242 // CMP case because it causes a register dependency and cannot be folded
3251 OverflowCmp = DAG.getNode(ARMISD::CMP, SDLoc(Op), MVT::Glue, Value, LHS);
3256 OverflowCmp = DAG.getNode(ARMISD::CMP, SDLoc(Op), MVT::Glue, Value, LHS);
3261 OverflowCmp = DAG.getNode(ARMISD::CMP, SDLoc(Op), MVT::Glue, LHS, RHS);
3266 OverflowCmp = DAG.getNode(ARMISD::CMP, SDLoc(Op), MVT::Glue, LHS, RHS);
3350 SDValue Cmp = duplicateCmp(Cond.getOperand(4), DAG);
3352 return DAG.getNode(ARMISD::CMOV, dl, VT, True, False, ARMcc, CCR, Cmp);
3454 SDValue Cmp = getARMCmp(LHS, RHS, CC, ARMcc, DAG, dl);
3456 Cmp);
3493 SDValue Cmp = getVFPCmp(LHS, RHS, DAG, dl);
3496 ARMcc, CCR, Cmp);
3499 // FIXME: Needs another CMP because flag can have but one use.
3540 llvm_unreachable("Unknown VFP cmp argument!");
3571 llvm_unreachable("Unknown VFP cmp argument!");
3591 // the CMP operands, and the condition code is EQ or NE, we can optimize it
3605 SDValue Cmp = getARMCmp(LHS, RHS, CC, ARMcc, DAG, dl);
3608 Chain, Dest, ARMcc, CCR, Cmp);
3637 SDValue Cmp = getARMCmp(LHS, RHS, CC, ARMcc, DAG, dl);
3640 Chain, Dest, ARMcc, CCR, Cmp);
3657 SDValue Cmp = getVFPCmp(LHS, RHS, DAG, dl);
3660 SDValue Ops[] = { Chain, Dest, ARMcc, CCR, Cmp };
4026 SDValue Cmp = getARMCmp(ExtraShAmt, DAG.getConstant(0, MVT::i32), ISD::SETGE,
4030 CCR, Cmp);
4060 SDValue Cmp = getARMCmp(ExtraShAmt, DAG.getConstant(0, MVT::i32), ISD::SETGE,
4064 CCR, Cmp);
7441 // insert a cmp at the end of BB
9561 SDValue Cmp = N->getOperand(4);
9562 if (Cmp.getOpcode() != ARMISD::CMPZ)
9568 SDValue LHS = Cmp.getOperand(0);
9569 SDValue RHS = Cmp.getOperand(1);
9578 // cmp r1, x
9582 // cmp r0, x
9586 // cmp r1, x
9590 // cmp r0, x
9596 N->getOperand(3), Cmp);