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)));
2472 (BitPos = ConstantInt::get(CurrX->getType(), Mask.logBase2()));
2576 Value *X, *BitMask, *BitPos, *XCurr;
2578 if (!detectShiftUntilBitTestIdiom(CurLoop, X, BitMask, BitPos, XCurr,
2626 if (!isGuaranteedNotToBeUndefOrPoison(BitPos)) {
2627 // BitMask may be computed from BitPos, Freeze BitPos so we can increase
2630 if (auto *BitPosI = dyn_cast<Instruction>(BitPos))
2637 new FreezeInst(BitPos, BitPos->getName() + ".fr", *InsertPt);
2638 BitPos->replaceUsesWithIf(BitPosFrozen, [BitPosFrozen](Use &U) {
2641 BitPos = BitPosFrozen;
2647 BitPos->getName() + ".lowbitmask");
2649 Builder.CreateOr(LowBitMask, BitMask, BitPos->getName() + ".mask");
2664 BitPos, XMaskedLeadingOnePos, CurLoop->getName() + ".backedgetakencount",
2685 // iff `BitPos` is `bitwidth(x) - 1` and `X` is `1`). So unless we know
2689 BitPos, PatternMatch::m_SpecificInt_ICMP(
2695 // alternatively, we could check that NewX is INT_MIN (or BitPos is )