[llvm] Clean vector clamps in X86 GlobalISel. (PR #182664)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sat Feb 21 12:37:14 PST 2026
https://github.com/RKSimon updated https://github.com/llvm/llvm-project/pull/182664
>From f804f141f6a206621575a6bf298f538542d2808c Mon Sep 17 00:00:00 2001
From: Yohay Ailon Tevet <yohay.ailon.tevet at gmail.com>
Date: Sat, 21 Feb 2026 02:23:08 +0200
Subject: [PATCH] Clean vector clamps in X86 GISEL.
---
.../lib/Target/X86/GISel/X86LegalizerInfo.cpp | 24 +++++++------------
1 file changed, 8 insertions(+), 16 deletions(-)
diff --git a/llvm/lib/Target/X86/GISel/X86LegalizerInfo.cpp b/llvm/lib/Target/X86/GISel/X86LegalizerInfo.cpp
index fff9edb63b8ae..41496937f61b1 100644
--- a/llvm/lib/Target/X86/GISel/X86LegalizerInfo.cpp
+++ b/llvm/lib/Target/X86/GISel/X86LegalizerInfo.cpp
@@ -100,14 +100,10 @@ X86LegalizerInfo::X86LegalizerInfo(const X86Subtarget &STI,
.widenScalarOrEltToNextPow2(0, /*Min=*/8)
.clampScalarOrElt(0, s8, sMaxScalar)
.moreElementsToNextPow2(0)
- .clampMinNumElements(0, s8, 16)
- .clampMinNumElements(0, s16, 8)
- .clampMinNumElements(0, s32, 4)
- .clampMinNumElements(0, s64, 2)
- .clampMaxNumElements(0, s8, HasAVX512 ? 64 : (HasAVX ? 32 : 16))
- .clampMaxNumElements(0, s16, HasAVX512 ? 32 : (HasAVX ? 16 : 8))
- .clampMaxNumElements(0, s32, HasAVX512 ? 16 : (HasAVX ? 8 : 4))
- .clampMaxNumElements(0, s64, HasAVX512 ? 8 : (HasAVX ? 4 : 2))
+ .clampNumElements(0, v16s8, s8MaxVector)
+ .clampNumElements(0, v8s16, s16MaxVector)
+ .clampNumElements(0, v4s32, s32MaxVector)
+ .clampNumElements(0, v2s64, s64MaxVector)
.clampMaxNumElements(0, p0,
Is64Bit ? s64MaxVector.getNumElements()
: s32MaxVector.getNumElements())
@@ -256,14 +252,10 @@ X86LegalizerInfo::X86LegalizerInfo(const X86Subtarget &STI,
.legalFor(HasSSE2, {v16s8, v8s16, v4s32, v2s64})
.legalFor(HasAVX, {v32s8, v16s16, v8s32, v4s64})
.legalFor(HasAVX512, {v64s8, v32s16, v16s32, v8s64})
- .clampMinNumElements(0, s8, 16)
- .clampMinNumElements(0, s16, 8)
- .clampMinNumElements(0, s32, 4)
- .clampMinNumElements(0, s64, 2)
- .clampMaxNumElements(0, s8, HasAVX512 ? 64 : (HasAVX ? 32 : 16))
- .clampMaxNumElements(0, s16, HasAVX512 ? 32 : (HasAVX ? 16 : 8))
- .clampMaxNumElements(0, s32, HasAVX512 ? 16 : (HasAVX ? 8 : 4))
- .clampMaxNumElements(0, s64, HasAVX512 ? 8 : (HasAVX ? 4 : 2))
+ .clampNumElements(0, v16s8, s8MaxVector)
+ .clampNumElements(0, v8s16, s16MaxVector)
+ .clampNumElements(0, v4s32, s32MaxVector)
+ .clampNumElements(0, v2s64, s64MaxVector)
.widenScalarToNextPow2(0, /*Min=*/32)
.clampScalar(0, s8, sMaxScalar)
.scalarize(0);
More information about the llvm-commits
mailing list