Fix ICE on sh
authorVladimir Makarov <vmakarov@gcc.gnu.org>
Sat, 28 May 2022 18:08:38 +0000 (12:08 -0600)
committerJeff Law <jeffreyalaw@gmail.com>
Sat, 28 May 2022 18:14:39 +0000 (12:14 -0600)
gcc/
PR target/103722
* config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
is special) for various scenarios.

gcc/config/sh/sh.cc

index 8d40563..03e1c04 100644 (file)
@@ -10762,6 +10762,12 @@ sh_register_move_cost (machine_mode mode,
       && ! REGCLASS_HAS_GENERAL_REG (dstclass))
     return 2 * ((GET_MODE_SIZE (mode) + 7) / 8U);
 
+  if (((dstclass == FP_REGS || dstclass == DF_REGS)
+       && (srcclass == PR_REGS))
+      || ((srcclass == FP_REGS || srcclass == DF_REGS)
+         && (dstclass == PR_REGS)))
+    return 7;
+
   return 2 * ((GET_MODE_SIZE (mode) + 3) / 4U);
 }