diff options
author | Kaz Kojima <kkojima@rr.iij4u.or.jp> | 2024-09-24 18:35:46 +0900 |
---|---|---|
committer | Oleg Endo <olegendo@gcc.gnu.org> | 2024-09-25 10:22:10 +0900 |
commit | eee3b80ab6217ab792f01280bc6240c55468600a (patch) | |
tree | a6e9cc57637ae416d2e1b66c992c5fb9ba2ff77a | |
parent | 4d28c5b1eb15cff97f07982c73770485e6eaa986 (diff) | |
download | gcc-eee3b80ab6217ab792f01280bc6240c55468600a.zip gcc-eee3b80ab6217ab792f01280bc6240c55468600a.tar.gz gcc-eee3b80ab6217ab792f01280bc6240c55468600a.tar.bz2 |
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.
-rw-r--r-- | gcc/config/sh/sh.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/config/sh/sh.cc b/gcc/config/sh/sh.cc index b2ba748..d9e7e67 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; |