reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1000 if (match(Op0, m_Shl(m_Value(X), m_APInt(ShOp1))) && ShOp1->ult(BitWidth)) { 1006 auto *NewLShr = BinaryOperator::CreateLShr(X, ShiftDiff); 1011 Value *NewLShr = Builder.CreateLShr(X, ShiftDiff, "", I.isExact()); 1020 auto *NewShl = BinaryOperator::CreateShl(X, ShiftDiff); 1025 Value *NewShl = Builder.CreateShl(X, ShiftDiff); 1032 return BinaryOperator::CreateAnd(X, ConstantInt::get(Ty, Mask)); 1035 if (match(Op0, m_OneUse(m_ZExt(m_Value(X)))) && 1036 (!Ty->isIntegerTy() || shouldChangeType(Ty, X->getType()))) { 1037 assert(ShAmt < X->getType()->getScalarSizeInBits() && 1040 Value *NewLShr = Builder.CreateLShr(X, ShAmt); 1044 if (match(Op0, m_SExt(m_Value(X))) && 1045 (!Ty->isIntegerTy() || shouldChangeType(Ty, X->getType()))) { 1047 unsigned SrcTyBitWidth = X->getType()->getScalarSizeInBits(); 1051 return new ZExtInst(X, Ty); 1055 Value *NewLShr = Builder.CreateLShr(X, SrcTyBitWidth - 1); 1064 Value *AShr = Builder.CreateAShr(X, NewShAmt); 1069 if (match(Op0, m_LShr(m_Value(X), m_APInt(ShOp1)))) { 1074 return BinaryOperator::CreateLShr(X, ConstantInt::get(Ty, AmtSum));