[llvm] [LSR] Clean up code using SCEVPatternMatch (NFC) (PR #145556)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 27 06:30:40 PDT 2025
================
@@ -942,14 +944,11 @@ static Immediate ExtractImmediate(const SCEV *&S, ScalarEvolution &SE) {
// FIXME: AR->getNoWrapFlags(SCEV::FlagNW)
SCEV::FlagAnyWrap);
return Result;
- } else if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(S)) {
- if (EnableVScaleImmediates && M->getNumOperands() == 2) {
- if (const SCEVConstant *C = dyn_cast<SCEVConstant>(M->getOperand(0)))
- if (isa<SCEVVScale>(M->getOperand(1))) {
- S = SE.getConstant(M->getType(), 0);
- return Immediate::getScalable(C->getValue()->getSExtValue());
- }
- }
+ } else if (EnableVScaleImmediates &&
+ match(S, m_scev_Mul(m_scev_APInt(C), m_SCEV(Op1))) &&
+ isa<SCEVVScale>(Op1)) {
----------------
fhahn wrote:
would be nice to also have a `m_SCEVVScale()` matcher?
https://github.com/llvm/llvm-project/pull/145556
More information about the llvm-commits
mailing list