reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
  280   if (match(Op0, m_Neg(m_Value(X))) && match(Op1, m_Constant(Op1C)))
  281     return BinaryOperator::CreateMul(X, ConstantExpr::getNeg(Op1C));
  284   if (match(Op0, m_Neg(m_Value(X))) && match(Op1, m_Neg(m_Value(Y)))) {
  285     auto *NewMul = BinaryOperator::CreateMul(X, Y);
  295   if (match(&I, m_c_Mul(m_OneUse(m_Neg(m_Value(X))), m_Value(Y))))
  296     return BinaryOperator::CreateNeg(Builder.CreateMul(X, Y));
  359   if (match(Op0, m_ZExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1))
  359   if (match(Op0, m_ZExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1))
  360     return SelectInst::Create(X, Op1, ConstantInt::get(I.getType(), 0));
  361   if (match(Op1, m_ZExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1))
  361   if (match(Op1, m_ZExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1))
  362     return SelectInst::Create(X, Op0, ConstantInt::get(I.getType(), 0));
  371   if (match(Op0, m_LShr(m_Value(X), m_APInt(C))) && *C == C->getBitWidth() - 1)
  372     return BinaryOperator::CreateAnd(Builder.CreateAShr(X, *C), Op1);
  373   if (match(Op1, m_LShr(m_Value(X), m_APInt(C))) && *C == C->getBitWidth() - 1)
  374     return BinaryOperator::CreateAnd(Builder.CreateAShr(X, *C), Op0);