Lines Matching defs:C3
2529 const APInt *C3 = C;
2531 if (C3->isPowerOf2()) {
2532 Constant *Log2C3 = ConstantInt::get(Ty, C3->countr_zero());
2540 // iff C1,C3 is pow2 and C2 + cttz(C3) < BitWidth:
2541 // ((C1 << X) >> C2) & C3 -> X == (cttz(C3)+C2-cttz(C1)) ? C3 : 0
2544 return SelectInst::Create(Cmp, ConstantInt::get(Ty, *C3),
2556 // iff C1,C3 is pow2 and Log2(C3) >= C2:
2557 // ((C1 >> X) << C2) & C3 -> X == (cttz(C1)+C2-cttz(C3)) ? C3 : 0
2561 return SelectInst::Create(Cmp, ConstantInt::get(Ty, *C3),
3626 // ((X | C2) & C0) | ((X | C3) & C1) --> (X | C2 | C3) & (C0 | C1)
3627 // iff (C0 & C1) == 0 and (C2 & ~C0) == 0 and (C3 & ~C1) == 0.
3628 const APInt *C2, *C3;
3630 match(B, m_Or(m_Specific(X), m_APInt(C3))) &&
3631 (*C2 & ~*C0).isZero() && (*C3 & ~*C1).isZero()) {
3632 Value *Or = Builder.CreateOr(X, *C2 | *C3, "bitfield");
4802 ConstantInt *C1, *C2, *C3;
4803 // ((X^C1) >> C2) ^ C3 -> (X>>C2) ^ ((C1>>C2)^C3)
4804 if (match(Op1, m_ConstantInt(C3)) &&
4808 // fold (C1 >> C2) ^ C3
4810 FoldConst ^= C3->getValue();