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

--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jiu Fu Guo <guoji...@gcc.gnu.org>:

https://gcc.gnu.org/g:5f56b76ff1c15118200204569389f85cca4e32d3

commit r14-4444-g5f56b76ff1c15118200204569389f85cca4e32d3
Author: Jiufu Guo <guoji...@linux.ibm.com>
Date:   Thu Sep 28 17:00:04 2023 +0800

    rs6000: optimize moving to sf from highpart di

    Currently, we have the pattern "movsf_from_si2" which was trying
    to support moving high part DI to SF.

    But current pattern only accepts "ashiftrt":
    XX:SF=bitcast:SF(subreg(YY:DI>>32),0), but actually "lshiftrt" should
    also be ok.
    And current pattern only supports BE.

    Here, updating the pattern to support BE and "lshiftrt".

            PR target/108338

    gcc/ChangeLog:

            * config/rs6000/predicates.md (lowpart_subreg_operator): New
            define_predicate.
            * config/rs6000/rs6000.md (any_rshift): New code_iterator.
            (movsf_from_si2): Rename to ...
            (movsf_from_si2_<code>): ... this.

    gcc/testsuite/ChangeLog:

            * gcc.target/powerpc/pr108338.c: New test.

Reply via email to