Lines Matching defs:BitPos
2421 Value *&BitMask, Value *&BitPos,
2458 m_LoopInvariant(m_Shl(m_One(), m_Value(BitPos)),
2465 (BitPos = ConstantExpr::getExactLogBase2(cast<Constant>(BitMask)));
2474 BitPos = ConstantInt::get(CurrX->getType(), Res->Mask.logBase2());
2581 Value *X, *BitMask, *BitPos, *XCurr;
2583 if (!detectShiftUntilBitTestIdiom(CurLoop, X, BitMask, BitPos, XCurr,
2631 if (!isGuaranteedNotToBeUndefOrPoison(BitPos)) {
2632 // BitMask may be computed from BitPos, Freeze BitPos so we can increase
2635 if (auto *BitPosI = dyn_cast<Instruction>(BitPos))
2642 new FreezeInst(BitPos, BitPos->getName() + ".fr", *InsertPt);
2643 BitPos->replaceUsesWithIf(BitPosFrozen, [BitPosFrozen](Use &U) {
2646 BitPos = BitPosFrozen;
2652 BitPos->getName() + ".lowbitmask");
2654 Builder.CreateOr(LowBitMask, BitMask, BitPos->getName() + ".mask");
2669 BitPos, XMaskedLeadingOnePos, CurLoop->getName() + ".backedgetakencount",
2690 // iff `BitPos` is `bitwidth(x) - 1` and `X` is `1`). So unless we know
2694 BitPos, PatternMatch::m_SpecificInt_ICMP(
2700 // alternatively, we could check that NewX is INT_MIN (or BitPos is )