[llvm] [AArch64][CostModel] Reduce cost of wider than legal get.active.lane.mask (PR #163786)
David Sherwood via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 21 03:34:24 PDT 2025
================
@@ -957,10 +957,24 @@ AArch64TTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
return TyL.first + ExtraCost;
}
case Intrinsic::get_active_lane_mask: {
- auto *RetTy = dyn_cast<FixedVectorType>(ICA.getReturnType());
- if (RetTy) {
- EVT RetVT = getTLI()->getValueType(DL, RetTy);
- EVT OpVT = getTLI()->getValueType(DL, ICA.getArgTypes()[0]);
+ auto RetTy = cast<VectorType>(ICA.getReturnType());
+ EVT RetVT = getTLI()->getValueType(DL, RetTy);
+ EVT OpVT = getTLI()->getValueType(DL, ICA.getArgTypes()[0]);
+ if (RetTy->isScalableTy()) {
+ // When SVE2p1 or SME2 is available, get_active_lane_mask will lower
----------------
david-arm wrote:
nit: Should this say "get_active_lane_mask *may* lower"? If I understand correctly we only use the while pair when we know the result will be split into parts?
https://github.com/llvm/llvm-project/pull/163786
More information about the llvm-commits
mailing list