Lines Matching defs:C1
344 // ((X*C1) << C2) == (X * (C1 << C2))
580 // (X >>?,exact C1) << C2 --> X << (C2-C1)
596 // (X << C1) >>u C2 --> X >>u (C2-C1) & (-1 >> C2)
600 // (X <<nuw C1) >>u C2 --> X >>u (C2-C1)
614 // We can't handle (X << C1) >>s C2, it shifts arbitrary bits in. However,
615 // we can handle (X <<nsw C1) >>s C2 since it only shifts in sign bits.
619 // (X <<nsw C1) >>s C2 --> X >>s (C2-C1)
631 // (X >>?exact C1) << C2 --> X >>?exact (C1-C2)
644 // (X << C1) >>u C2 --> X << (C1-C2) & (-1 >> C2)
649 // (X <<nuw C1) >>u C2 --> X <<nuw (C1-C2)
662 // We can't handle (X << C1) >>s C2, it shifts arbitrary bits in. However,
663 // we can handle (X <<nsw C1) >>s C2 since it only shifts in sign bits.
667 // (X <<nsw C1) >>s C2 --> X <<nsw (C1-C2)
708 // (C1 << A) << C2 -> (C1 << C2) << A
709 Constant *C1, *C2;
711 if (match(I.getOperand(0), m_OneUse(m_Shl(m_Constant(C1), m_Value(A)))) &&
713 return BinaryOperator::CreateShl(ConstantExpr::getShl(C1, C2), A);