https://gcc.gnu.org/g:eee3b80ab6217ab792f01280bc6240c55468600a

commit eee3b80ab6217ab792f01280bc6240c55468600a
Author: Kaz Kojima <kkoj...@rr.iij4u.or.jp>
Date:   Tue Sep 24 18:35:46 2024 +0900

    SH: Fix the condition to use movsh_ie_y pattern.
    
    gcc/ChangeLog:
            * config/sh/sh.cc (sh_movsf_ie_y_split_p): Take the subreg
            of DImode into account.

Diff:
---
 gcc/config/sh/sh.cc | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gcc/config/sh/sh.cc b/gcc/config/sh/sh.cc
index b2ba7488c5de..d9e7e67cba65 100644
--- a/gcc/config/sh/sh.cc
+++ b/gcc/config/sh/sh.cc
@@ -11462,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;

Reply via email to