[llvm] [X86][GISel] Add missing legalization for G_IMPLICIT_DEF (PR #161699)

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 3 02:07:03 PDT 2025


================
@@ -91,7 +91,27 @@ X86LegalizerInfo::X86LegalizerInfo(const X86Subtarget &STI,
   // s128 = EXTEND (G_IMPLICIT_DEF s32/s64) -> s128 = G_IMPLICIT_DEF
   getActionDefinitionsBuilder(G_IMPLICIT_DEF)
       .legalFor({p0, s1, s8, s16, s32, s64})
-      .legalFor(Is64Bit, {s128});
+      .legalFor(Is64Bit, {s128})
+      .legalFor(HasSSE2, {v16s8, v8s16, v4s32, v2s64})
+      .legalFor(HasAVX, {v8s32, v4s64})
+      .legalFor(HasAVX2, {v32s8, v16s16, v8s32, v4s64})
----------------
RKSimon wrote:

HasAVX/AVX2 can be merged into a single `.legalFor(HasAVX, {v32s8, v16s16, v8s32, v4s64})` - as all these types are legal on AVX1

Similar for clamping below

https://github.com/llvm/llvm-project/pull/161699


More information about the llvm-commits mailing list