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.