https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55212

--- Comment #482 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Oleg Endo <[email protected]>:

https://gcc.gnu.org/g:2b2e5f661dcbea7136229494148c8e0897496613

commit r17-2101-g2b2e5f661dcbea7136229494148c8e0897496613
Author: Kaz Kojima <[email protected]>
Date:   Tue Jun 23 11:26:21 2026 +0900

    SH: Adjust fp-reg related move insns to work with LRA

    On SH fp move insns usually don't support displacement addressing modes.
    Instead it needs to use additional match_scratch constraints which LRA has
    trouble dealing with.  Split movsf_ie_ra into several new patterns to
remove
    match_scratch as a mitigation.  For movdf constant loads add a new
sub-pattern.
    Use a new pattern movsf_ie_rffr to handle movsf multiword subregs and
disable
    movsf_ie_ra for reg from/to subreg of SImode.

    gcc/ChangeLog:

            PR target/55212
            * config/sh/predicates.md (pc_relative_load_operand): New
predicate.
            * config/sh/sh-protos.h (sh_movsf_ie_ra_split_p): Remove.
            (sh_movsf_ie_y_split_p): New proto.
            (sh_movsf_ie_subreg_multiword_p): New proto.
            * config/sh/sh.cc: (sh_movsf_ie_ra_split_p): Remove.
            (sh_movsf_ie_y_split_p): New function.
            (sh_movsf_ie_subreg_multiword_p): New function.
            (broken_move): Take movsf_ie_ra into account for fldi cases.
            * config/sh/sh.md (movdf_i4_F_z): New insn.
            (movdf): Use it when expanding.
            (movsf_ie_ra): Use define_insn instead of define_insn_and_split.
            Adjust alternatives.
            (movsf_ie_rffr): New insn_and_split.
            (movsf_ie_F_z, movsf_ie_Q_z, movsf_ie_y): New insns.
            (movsf): Use new patterns when expanding.

Reply via email to