Modified and pushed to r15-1765.

在 2024/7/2 上午11:50, Xi Ruoyao 写道:
On Tue, 2024-07-02 at 11:22 +0800, Lulu Cheng wrote:
+static int
+loongarch_insn_cost (rtx_insn *insn, bool speed)
+{
+  rtx x = PATTERN (insn);
+  int cost = pattern_cost (x, speed);
+
+  /* On LA464, prevent movcf2fr and movfr2gr from merging into movcf2gr.  */
+  if (TARGET_uARCH_LA464 && GET_CODE (x) == SET
+      && GET_MODE (XEXP (x, 0)) == FCCmode)
+    {
+      rtx dest, src;
+      dest = XEXP (x, 0);
+      src = XEXP (x, 1);
+
+      if (REG_P (dest) && REG_P (src))
+       {
+         if (GP_REG_P (REGNO (dest)) && FCC_REG_P (REGNO (src)))
+           cost = COSTS_N_INSNS (7);
cost = loongarch_cost->movcf2gr;

+         else if (FCC_REG_P (REGNO (dest)) && GP_REG_P (REGNO (src)))
+           cost = COSTS_N_INSNS (15);
cost = loongarch_cost->movgr2cf;

Then we don't need to check TARGET_uARCH_LA464.

+       }
+    }
+  return cost;
+}

Reply via email to