Skip to content

Commit 0024770

Browse files
committed
[X86][GISel] Unify AVX/AVX2 and AVX512/AVX512BW type legality
Merge AVX2 types into AVX and AVX512BW types into AVX512, since the vector types are valid in both cases.
1 parent 9decd8a commit 0024770

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

llvm/lib/Target/X86/GISel/X86LegalizerInfo.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -93,21 +93,19 @@ X86LegalizerInfo::X86LegalizerInfo(const X86Subtarget &STI,
9393
.legalFor({p0, s1, s8, s16, s32, s64})
9494
.legalFor(Is64Bit, {s128})
9595
.legalFor(HasSSE2, {v16s8, v8s16, v4s32, v2s64})
96-
.legalFor(HasAVX, {v8s32, v4s64})
97-
.legalFor(HasAVX2, {v32s8, v16s16, v8s32, v4s64})
98-
.legalFor(HasAVX512, {v16s32, v8s64})
99-
.legalFor(HasBWI, {v64s8, v32s16})
96+
.legalFor(HasAVX, {v32s8, v16s16, v8s32, v4s64})
97+
.legalFor(HasAVX512, {v64s8, v32s16, v16s32, v8s64})
10098
.widenScalarOrEltToNextPow2(0, /*Min=*/8)
10199
.clampScalarOrElt(0, s8, sMaxScalar)
102100
.moreElementsToNextPow2(0)
103101
.clampMinNumElements(0, s8, 16)
104102
.clampMinNumElements(0, s16, 8)
105103
.clampMinNumElements(0, s32, 4)
106104
.clampMinNumElements(0, s64, 2)
107-
.clampMaxNumElements(0, s8, HasBWI ? 64 : (HasAVX2 ? 32 : 16))
108-
.clampMaxNumElements(0, s16, HasBWI ? 32 : (HasAVX2 ? 16 : 8))
109-
.clampMaxNumElements(0, s32, HasAVX512 ? 16 : (HasAVX2 ? 8 : 4))
110-
.clampMaxNumElements(0, s64, HasAVX512 ? 8 : (HasAVX2 ? 4 : 2))
105+
.clampMaxNumElements(0, s8, HasAVX512 ? 64 : (HasAVX ? 32 : 16))
106+
.clampMaxNumElements(0, s16, HasAVX512 ? 32 : (HasAVX ? 16 : 8))
107+
.clampMaxNumElements(0, s32, HasAVX512 ? 16 : (HasAVX ? 8 : 4))
108+
.clampMaxNumElements(0, s64, HasAVX512 ? 8 : (HasAVX ? 4 : 2))
111109
.clampMaxNumElements(0, p0,
112110
Is64Bit ? s64MaxVector.getNumElements()
113111
: s32MaxVector.getNumElements())

0 commit comments

Comments
 (0)