diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index fc0cdeebb631..297a7c3121ac 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -2039,7 +2039,8 @@ void SelectionDAG::computeKnownBits(SDValue Op, APInt &KnownZero, if (!DemandedElts) return; // No demanded elts, better to assume we don't know anything. - switch (Op.getOpcode()) { + unsigned Opcode = Op.getOpcode(); + switch (Opcode) { case ISD::Constant: // We know all of the bits for a constant! KnownOne = cast(Op)->getAPIntValue(); @@ -2478,7 +2479,7 @@ void SelectionDAG::computeKnownBits(SDValue Op, APInt &KnownZero, KnownZeroLow = std::min(KnownZeroLow, KnownZero2.countTrailingOnes()); - if (Op.getOpcode() == ISD::ADD) { + if (Opcode == ISD::ADD) { KnownZero |= APInt::getLowBitsSet(BitWidth, KnownZeroLow); if (KnownZeroHigh > 1) KnownZero |= APInt::getHighBitsSet(BitWidth, KnownZeroHigh - 1); @@ -2622,7 +2623,7 @@ void SelectionDAG::computeKnownBits(SDValue Op, APInt &KnownZero, break; default: - if (Op.getOpcode() < ISD::BUILTIN_OP_END) + if (Opcode < ISD::BUILTIN_OP_END) break; LLVM_FALLTHROUGH; case ISD::INTRINSIC_WO_CHAIN: