diff --git a/lib/Target/X86/X86ISelDAGToDAG.cpp b/lib/Target/X86/X86ISelDAGToDAG.cpp index aa45ab8e920..363f2bbc78f 100644 --- a/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -44,13 +44,6 @@ using namespace llvm; STATISTIC(NumFPKill , "Number of FP_REG_KILL instructions added"); STATISTIC(NumLoadMoved, "Number of loads moved below TokenFactor"); -namespace { - static cl::opt - AlwaysFoldAndInTest("always-fold-and-in-test", - cl::desc("Always fold and operation in test"), - cl::init(false), cl::Hidden); -} - //===----------------------------------------------------------------------===// // Pattern Matcher Implementation //===----------------------------------------------------------------------===// @@ -433,7 +426,7 @@ void X86DAGToDAGISel::PreprocessForRMW(SelectionDAG &DAG) { RModW = true; std::swap(N10, N11); } - RModW = RModW && N10.Val->isOperand(Chain.Val) && N10.hasOneUse() && + RModW = RModW && N10.Val->isOperandOf(Chain.Val) && N10.hasOneUse() && (N10.getOperand(1) == N2) && (N10.Val->getValueType(0) == N1.getValueType()); if (RModW) @@ -452,7 +445,7 @@ void X86DAGToDAGISel::PreprocessForRMW(SelectionDAG &DAG) { case X86ISD::SHRD: { SDOperand N10 = N1.getOperand(0); if (ISD::isNON_EXTLoad(N10.Val)) - RModW = N10.Val->isOperand(Chain.Val) && N10.hasOneUse() && + RModW = N10.Val->isOperandOf(Chain.Val) && N10.hasOneUse() && (N10.getOperand(1) == N2) && (N10.Val->getValueType(0) == N1.getValueType()); if (RModW) diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td index 75fbaedacf5..e2e2fb80978 100644 --- a/lib/Target/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -255,7 +255,7 @@ def extloadi32i16 : PatFrag<(ops node:$ptr), (i32 (extloadi16 node:$ptr))>; // An 'and' node with a single use. def and_su : PatFrag<(ops node:$lhs, node:$rhs), (and node:$lhs, node:$rhs), [{ - return AlwaysFoldAndInTest || N->hasOneUse(); + return N->hasOneUse(); }]>; //===----------------------------------------------------------------------===//