Home | History | Annotate | Download | only in X86

Lines Matching refs:CMP

8323   SDValue Cond = DAG.getNode(X86ISD::CMP, dl, MVT::i32,
9289 // Emit a CMP with 0, which is the TEST pattern.
9290 return DAG.getNode(X86ISD::CMP, dl, MVT::i32, Op,
9459 // Emit a CMP with 0, which is the TEST pattern.
9460 return DAG.getNode(X86ISD::CMP, dl, MVT::i32, Op,
9473 /// Emit nodes that will be selected as "cmp Op0,Op1", or something
9484 // Use SUB instead of CMP to enable CSE between SUB and CMP.
9490 return DAG.getNode(X86ISD::CMP, dl, MVT::i32, Op0, Op1);
9494 SDValue X86TargetLowering::ConvertCmpIfNecessary(SDValue Cmp,
9499 Cmp.getOpcode() != X86ISD::CMP ||
9500 !Cmp.getOperand(0).getValueType().isFloatingPoint() ||
9501 !Cmp.getOperand(1).getValueType().isFloatingPoint())
9502 return Cmp;
9508 SDLoc dl(Cmp);
9509 SDValue TruncFPSW = DAG.getNode(ISD::TRUNCATE, dl, MVT::i16, Cmp);
9902 if (Opc == X86ISD::CMP || Opc == X86ISD::COMI || Opc == X86ISD::UCOMI ||
9949 // Lower fp selects into a CMP/AND/ANDN/OR sequence when the necessary SSE ops
9962 SDValue Cmp = DAG.getNode(Opcode, DL, VT, CondOp0, CondOp1,
9964 SDValue AndN = DAG.getNode(X86ISD::FANDN, DL, VT, Cmp, Op2);
9965 SDValue And = DAG.getNode(X86ISD::FAND, DL, VT, Cmp, Op1);
9981 Cond.getOperand(1).getOpcode() == X86ISD::CMP &&
9983 SDValue Cmp = Cond.getOperand(1);
9991 SDValue CmpOp0 = Cmp.getOperand(0);
10008 Cmp = DAG.getNode(X86ISD::CMP, DL, MVT::i32,
10010 Cmp = ConvertCmpIfNecessary(Cmp, DAG);
10014 DAG.getConstant(X86::COND_B, MVT::i8), Cmp);
10026 // Look past (and (setcc_carry (cmp ...)), 1).
10034 // If condition flag is set by a X86ISD::CMP, then use it as the condition
10041 SDValue Cmp = Cond.getOperand(1);
10042 unsigned Opc = Cmp.getOpcode();
10050 if ((isX86LogicalCmp(Cmp) && !IllegalFPCMov) ||
10052 Cond = Cmp;
10263 // Look pass (and (setcc_carry (cmp ...)), 1).
10271 // If condition flag is set by a X86ISD::CMP, then use it as the condition
10278 SDValue Cmp = Cond.getOperand(1);
10279 unsigned Opc = Cmp.getOpcode();
10281 if (isX86LogicalCmp(Cmp) || Opc == X86ISD::BT) {
10282 Cond = Cmp;
10336 SDValue Cmp = Cond.getOperand(0).getOperand(1);
10341 if (Cmp == Cond.getOperand(1).getOperand(1) &&
10342 isX86LogicalCmp(Cmp)) {
10345 Chain, Dest, CC, Cmp);
10347 Cond = Cmp;
10356 if (Cmp == Cond.getOperand(1).getOperand(1) &&
10357 isX86LogicalCmp(Cmp) &&
10376 Chain, Dest, CC, Cmp);
10381 Cond = Cmp;
10416 SDValue Cmp = DAG.getNode(X86ISD::CMP, dl, MVT::i32,
10418 Cmp = ConvertCmpIfNecessary(Cmp, DAG);
10421 Chain, Dest, CC, Cmp);
10423 Cond = Cmp;
10446 SDValue Cmp = DAG.getNode(X86ISD::CMP, dl, MVT::i32,
10448 Cmp = ConvertCmpIfNecessary(Cmp, DAG);
10451 Chain, Dest, CC, Cmp);
10453 Cond = Cmp;
13128 case X86ISD::CMP: return "X86ISD::CMP";
14104 // cl := cmp src_lo, lo
14109 // ch := cmp src_hi, hi
16336 // (Op (CMP (SETCC Cond EFLAGS) 1) EQ) or
16337 // (Op (CMP (SETCC Cond EFLAGS) 0) NEQ)
16340 // (Op (CMP (SETCC Cond EFLAGS) 0) EQ) or
16341 // (Op (CMP (SETCC Cond EFLAGS) 1) NEQ)
16346 static SDValue checkBoolTestSetCCCombine(SDValue Cmp, X86::CondCode &CC) {
16347 // Quit if not CMP and SUB with its value result used.
16348 if (Cmp.getOpcode() != X86ISD::CMP &&
16349 (Cmp.getOpcode() != X86ISD::SUB || Cmp.getNode()->hasAnyUseOfValue(0)))
16356 // Check CMP operands. One of them should be 0 or 1 and the other should be
16358 SDValue Op1 = Cmp.getOperand(0);
16359 SDValue Op2 = Cmp.getOperand(1);
16599 // of CMOV and CMP.
16614 if ((Cond.getOpcode() == X86ISD::CMP || Cond.getOpcode() == X86ISD::SUB) &&
16794 // where both setccs reference the same FP CMP, and rewrite for CMPEQSS
16801 // SSE1 supports CMP{eq|ne}SS, and SSE2 added CMP{eq|ne}SD, but
16810 // The SETCCs should both refer to the same CMP.
16811 if (CMP0.getOpcode() != X86ISD::CMP || CMP0 != CMP1)
18133 // Do not flip "e > c", where "c" is a constant, because Cmp instruction
18263 SDValue Cmp = SetCC.getOperand(1);
18264 if (Cmp.getOpcode() != X86ISD::CMP || !Cmp.hasOneUse() ||
18265 !X86::isZeroNode(Cmp.getOperand(1)) ||
18266 !Cmp.getOperand(0).getValueType().isInteger())
18269 SDValue CmpOp0 = Cmp.getOperand(0);
18270 SDValue NewCmp = DAG.getNode(X86ISD::CMP, DL, MVT::i32, CmpOp0,