[llvm] [VPlan] Expand SCEV min/max via scalar intrinsic VPInstructions. (PR #207842)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 13 02:01:45 PDT 2026
================
@@ -842,6 +842,43 @@ VPValue *VPSCEVExpander::tryToExpand(const SCEV *S) {
}
return Builder.createScalarCast(Opcode, Op, S->getType(), DL);
}
+ case scUMaxExpr:
+ case scSMaxExpr:
+ case scUMinExpr:
+ case scSMinExpr: {
+ auto *MinMax = cast<SCEVMinMaxExpr>(S);
+ Intrinsic::ID IntrinsicID;
+ switch (S->getSCEVType()) {
+ case scUMaxExpr:
+ IntrinsicID = Intrinsic::umax;
+ break;
+ case scSMaxExpr:
+ IntrinsicID = Intrinsic::smax;
+ break;
+ case scUMinExpr:
+ IntrinsicID = Intrinsic::umin;
+ break;
+ case scSMinExpr:
+ IntrinsicID = Intrinsic::smin;
+ break;
+ default:
+ llvm_unreachable("not a min/max SCEV");
----------------
fhahn wrote:
done thanks
https://github.com/llvm/llvm-project/pull/207842
More information about the llvm-commits
mailing list