[llvm] [RISCV] Split convert to FP pseudos by SEW (PR #88568)

Michael Maitland via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 15 07:48:41 PDT 2024


================
@@ -17674,6 +17673,85 @@ static MachineBasicBlock *emitVFROUND_NOEXCEPT_MASK(MachineInstr &MI,
                                      /*IsImp*/ true));
 
   // Emit a VFCVT_F_X
+  RISCVII::VLMUL LMul = RISCVII::getLMul(MI.getDesc().TSFlags);
+  unsigned Log2SEW = MI.getOperand(RISCVII::getSEWOpNum(MI.getDesc())).getImm();
+  // There is no E8 variant for VFCVT_F_X.
+  assert(Log2SEW >= 4);
+  // Since MI (VFROUND) isn't SEW specific, we cannot use a macro to make
+  // handling of different (LMUL, SEW) pairs easier because we need to pull the
+  // SEW immediate from MI, and that information is not avaliable during macro
+  // expansion.
+  unsigned CVTFOpc;
+  if (Log2SEW == 4) {
+    switch (LMul) {
----------------
michaelmaitland wrote:

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

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


More information about the llvm-commits mailing list