[llvm] [AArch64][GlobalISel] Basic add_sat and sub_sat vector handling. (PR #80650)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 5 01:38:12 PST 2024
================
@@ -1153,8 +1150,14 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST)
.minScalarEltSameAsIf(always, 1, 0)
.maxScalarEltSameAsIf(always, 1, 0);
- // TODO: Vector types.
- getActionDefinitionsBuilder({G_SADDSAT, G_SSUBSAT}).lowerIf(isScalar(0));
+ getActionDefinitionsBuilder({G_UADDSAT, G_SADDSAT, G_USUBSAT, G_SSUBSAT})
+ .legalFor({v2s64, v2s32, v4s32, v4s16, v8s16, v8s8, v16s8})
+ .clampNumElements(0, v8s8, v16s8)
+ .clampNumElements(0, v4s16, v8s16)
+ .clampNumElements(0, v2s32, v4s32)
+ .clampMaxNumElements(0, s64, 2)
+ .moreElementsToNextPow2(0)
+ .lowerIf(isScalar(0));
----------------
arsenm wrote:
just make an unconditional .lower()?
https://github.com/llvm/llvm-project/pull/80650
More information about the llvm-commits
mailing list