if (FoldedVOp.Val) return FoldedVOp;
// fold (add x, undef) -> undef
- if (N1.getOpcode() == ISD::UNDEF)
+ if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)
return N1;
// fold (add c1, c2) -> c1+c2
if (N0C && N1C)
if (FoldedVOp.Val) return FoldedVOp;
// fold (mul x, undef) -> 0
- if (N1.getOpcode() == ISD::UNDEF)
+ if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)
return DAG.getConstant(0, VT);
// fold (mul c1, c2) -> c1*c2
if (N0C && N1C)
DAG.getConstant(MVT::getSizeInBits(N0.getValueType())-1,
TLI.getShiftAmountTy()));
// fold (mulhs x, undef) -> 0
- if (N1.getOpcode() == ISD::UNDEF)
+ if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)
return DAG.getConstant(0, VT);
return SDOperand();
if (N1C && N1C->getValue() == 1)
return DAG.getConstant(0, N0.getValueType());
// fold (mulhu x, undef) -> 0
- if (N1.getOpcode() == ISD::UNDEF)
+ if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)
return DAG.getConstant(0, VT);
return SDOperand();
if (FoldedVOp.Val) return FoldedVOp;
// fold (and x, undef) -> 0
- if (N1.getOpcode() == ISD::UNDEF)
+ if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)
return DAG.getConstant(0, VT);
// fold (and c1, c2) -> c1&c2
if (N0C && N1C)
if (FoldedVOp.Val) return FoldedVOp;
// fold (or x, undef) -> -1
- if (N1.getOpcode() == ISD::UNDEF)
+ if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)
return DAG.getConstant(~0ULL, VT);
// fold (or c1, c2) -> c1|c2
if (N0C && N1C)
if (FoldedVOp.Val) return FoldedVOp;
// fold (xor x, undef) -> undef
- if (N1.getOpcode() == ISD::UNDEF)
+ if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)
return N1;
// fold (xor c1, c2) -> c1^c2
if (N0C && N1C)