reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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);