Lines Matching refs:EFLAGS
442 // Add/Sub overflow ops with MVT::Glues are lowered to EFLAGS dependences.
11686 // See if we can use the EFLAGS value from the operand instead of
11761 // Otherwise use a regular EFLAGS-setting add.
11805 // Otherwise use a regular EFLAGS-setting instruction.
11813 SDValue EFLAGS = LowerVectorAllZeroTest(Op, Subtarget, DAG);
11814 if (EFLAGS.getNode())
11815 return EFLAGS;
11929 // FUCOMI, which writes the comparison result to FPSW instead of EFLAGS. Hence
11930 // build an SDNode sequence that transfers the result from FPSW into EFLAGS:
12463 SDValue EFLAGS = EmitCmp(Op0, Op1, X86CC, dl, DAG);
12464 EFLAGS = ConvertCmpIfNecessary(EFLAGS, DAG);
12466 DAG.getConstant(X86CC, MVT::i8), EFLAGS);
14917 // Issue a bsr (scan bits in reverse) which also sets EFLAGS.
14969 // Issue a bsf (scan bits forward) which also sets EFLAGS.
15831 // Also sets EFLAGS.
15985 SDValue EFLAGS = DAG.getCopyFromReg(cpOut.getValue(1), DL, X86::EFLAGS,
15988 DAG.getConstant(X86::COND_E, MVT::i8), EFLAGS);
15992 DAG.ReplaceAllUsesOfValueWith(Op.getValue(2), EFLAGS.getValue(1));
16413 SDValue EFLAGS = DAG.getCopyFromReg(cpOutH.getValue(1), dl, X86::EFLAGS,
16417 DAG.getConstant(X86::COND_E, MVT::i8), EFLAGS);
16422 Results.push_back(EFLAGS.getValue(1));
17055 // 9 ) EFLAGS (implicit-def)
17346 // Make sure the last operand is EFLAGS, which gets clobbered by the branch
17350 MI->getOperand(MI->getNumOperands() - 1).getReg() == X86::EFLAGS)
17351 && "Expected last argument to be EFLAGS");
17376 // The EFLAGS operand of SelectItr might be missing a kill marker
17377 // because there were multiple uses of EFLAGS, and ISel didn't know
17384 // Scan forward through BB for a use/def of EFLAGS.
17388 if (mi.readsRegister(X86::EFLAGS))
17390 if (mi.definesRegister(X86::EFLAGS))
17394 // If we hit the end of the block, check whether EFLAGS is live into a
17401 if (succ->isLiveIn(X86::EFLAGS))
17406 // We found a def, or hit the end of the basic block and EFLAGS wasn't live
17407 // out. SelectMI should have a kill flag on EFLAGS.
17408 SelectItr->addRegisterKilled(X86::EFLAGS, TRI);
17439 // If the EFLAGS register isn't dead in the terminator, then claim that it's
17442 if (!MI->killsRegister(X86::EFLAGS) &&
17444 copy0MBB->addLiveIn(X86::EFLAGS);
17445 sinkMBB->addLiveIn(X86::EFLAGS);
17614 // Clobbers R10, R11, RAX and EFLAGS.
17622 .addReg(X86::EFLAGS, RegState::Define | RegState::Implicit);
17625 // Clobbers R10, R11 and EFLAGS.
17629 .addReg(X86::EFLAGS, RegState::Define | RegState::Implicit);
17645 .addReg(X86::EFLAGS, RegState::Define | RegState::Implicit);
19781 // (Op (CMP (SETCC Cond EFLAGS) 1) EQ) or
19782 // (Op (CMP (SETCC Cond EFLAGS) 0) NEQ)
19783 // to (Op EFLAGS Cond)
19785 // (Op (CMP (SETCC Cond EFLAGS) 0) EQ) or
19786 // (Op (CMP (SETCC Cond EFLAGS) 1) NEQ)
19787 // to (Op EFLAGS !Cond)
21727 static SDValue MaterializeSETB(SDLoc DL, SDValue EFLAGS, SelectionDAG &DAG,
21732 DAG.getConstant(X86::COND_B, MVT::i8), EFLAGS),
21737 DAG.getConstant(X86::COND_B, MVT::i8), EFLAGS));
21746 SDValue EFLAGS = N->getOperand(1);
21755 if (EFLAGS.getOpcode() == X86ISD::SUB && EFLAGS.hasOneUse() &&
21756 EFLAGS.getValueType().isInteger() &&
21757 !isa<ConstantSDNode>(EFLAGS.getOperand(1))) {
21758 SDValue NewSub = DAG.getNode(X86ISD::SUB, SDLoc(EFLAGS),
21759 EFLAGS.getNode()->getVTList(),
21760 EFLAGS.getOperand(1), EFLAGS.getOperand(0));
21761 SDValue NewEFLAGS = SDValue(NewSub.getNode(), EFLAGS.getResNo());
21770 return MaterializeSETB(DL, EFLAGS, DAG, N->getSimpleValueType(0));
21774 Flags = checkBoolTestSetCCCombine(EFLAGS, CC);
21791 SDValue EFLAGS = N->getOperand(3);
21796 Flags = checkBoolTestSetCCCombine(EFLAGS, CC);
21837 // Optimize RES, EFLAGS = X86ISD::ADC LHS, RHS, EFLAGS
21845 // We don't have a good way to replace an EFLAGS use, so only do this when
22683 // flags -> EFLAGS
22685 Res.first = X86::EFLAGS;