[llvm] [RISCV][GISEL] Legalize, regbank select, and instruction select G_ZEXT, G_SEXT, G_ANYEXT, G_SPLAT_VECTOR, and G_ICMP (PR #85938)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 1 09:52:46 PDT 2024


================
@@ -1713,6 +1713,15 @@ LegalizerHelper::LegalizeResult LegalizerHelper::narrowScalar(MachineInstr &MI,
     MI.eraseFromParent();
     return Legalized;
   }
+  case TargetOpcode::G_SPLAT_VECTOR: {
+    if (TypeIdx != 1)
+      return UnableToLegalize;
+
+    Observer.changingInstr(MI);
+    narrowScalarSrc(MI, NarrowTy, 1);
----------------
topperc wrote:

This silently drops the upper bits of the scalar and creates a splat vector where the source scalar type is smaller than the vector element type.

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


More information about the llvm-commits mailing list