[llvm] [RISCV][GISEL] instruction-select for G_SPLAT_VECTOR (PR #111193)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 4 12:07:08 PDT 2024


================
@@ -568,6 +569,18 @@ bool RISCVInstructionSelector::select(MachineInstr &MI) {
     return true;
   }
 
+  // FIXME: We create a IMPLICIT_DEF and a G_CONSTANT in preISelLower when
+  // we encounter a G_SPLAT_VECTOR. We cannot select the G_CONSTANT until after
+  // the MI is lowered, since renderVLOp needs to see the G_CONSTANT. It would
+  // be nice if the InstructionSelector selected these instructions without
+  // needing to call select on them explicitly.
+  if (OpcWasGSplatVector) {
----------------
topperc wrote:

How about adding `earlySelect` like AArch64 and put all of the SPLAT_VECTOR code together in there instead of splitting it across preISelLower and this code?

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


More information about the llvm-commits mailing list