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

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

https://gcc.gnu.org/g:9833d3d84694c57e10af82f5284c9d3e03d15d91

commit r17-5572-g9833d3d84694c57e10af82f5284c9d3e03d15d91
Author: Kishan Parmar <[email protected]>
Date:   Mon Oct 26 16:55:01 2026 +0530

    rs6000: Add POWER10 wide-immediate fusion patterns [PR108018]

    POWER10 has instruction fusion for addis+addi pairs. However,
    the scheduler was breaking these pairs apart to optimize for
    dependency chains, losing the fusion benefit.

    This patch implements "fake" instructions that represent both
    instructions as a single pattern. This prevents the scheduler from
    reordering them while still generating the correct two-instruction
    sequence.

    Existing high/low patterns are guarded to
    prevent conflicts with the new fusion patterns.

    Bootstrapped and tested on powerpc64le-linux-gnu with no regressions.
    Bootstrapped and tested on powerpc64-linux-gnu with no regressions.
    Bootstrapped and tested on powerpc-ibm-aix with no regressions.

    2026-10-26  Vijay Shankar  <[email protected]>

    gcc/ChangeLog:
            PR target/108018
            * config/rs6000/rs6000.md (largetoc_high): Add guards.
            (largetoc_high_aix<mode>): Likewise.
            (largetoc_high_plus): Likewise.
            (largetoc_high_plus_aix<mode>): Likewise.
            (largetoc_low): Likewise.
            (largetoc_low_aix<mode>): Likewise.
            (largetocp10): New define_insn.
            (largetocp10_aix<mode>): Likewise.
            (largetocp10_plus): Likewise.
            (largetocp10_plus_aix<mode>): Likewise.
            (tocref<mode>): Add guards.

    gcc/testsuite/ChangeLog:
            PR target/108018
            * gcc.target/powerpc/pr108018-aix.c: New test.
            * gcc.target/powerpc/pr108018-elf.c: New test.

Reply via email to