https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55212
--- Comment #312 from Kazumoto Kojima <kkojima at gcc dot gnu.org> ---
(In reply to John Paul Adrian Glaubitz from comment #298)
> Here is one ICE I have run into while building webkit2gtk with the latest
> patches on top of an older GCC snapshot:
Although not tested well,
diff --git a/gcc/config/sh/sh.cc b/gcc/config/sh/sh.cc
index a2b2130d166..d9e7e67cba6 100644
--- a/gcc/config/sh/sh.cc
+++ b/gcc/config/sh/sh.cc
@@ -11465,11 +11462,15 @@ sh_movsf_ie_y_split_p (rtx op0, rtx op1)
{
/* f, r */
if (REG_P (op0)
- && (SUBREG_P (op1) && GET_MODE (SUBREG_REG (op1)) == SImode))
+ && (SUBREG_P (op1)
+ && (GET_MODE (SUBREG_REG (op1)) == SImode
+ || GET_MODE (SUBREG_REG (op1)) == DImode)))
return true;
/* r, f */
if (REG_P (op1)
- && (SUBREG_P (op0) && GET_MODE (SUBREG_REG (op0)) == SImode))
+ && (SUBREG_P (op0)
+ && (GET_MODE (SUBREG_REG (op0)) == SImode
+ || GET_MODE (SUBREG_REG (op0)) == DImode)))
return true;
return false;
fixes the ICE for the original and reduced test case 59185 here.