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

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jeff Law <l...@gcc.gnu.org>:

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

commit r16-3187-ge31a353f1e7c5fe24a6b9d881adabfeed99dc845
Author: Jeff Law <j...@ventanamicro.com>
Date:   Wed Aug 13 11:17:02 2025 -0600

    [RISC-V][PR target/121160] Avoid bogus force_reg call

    When we canonicalize the comparison for a czero sequence we need to handle
both
    integer and fp comparisons.  Furthermore, within the integer space we want
to
    make sure we promote any sub-word objects to a full word.

    All that is working fine.  After promotion we then force the value into a
    register if it is not a register or constant already.   The idea is not to
have
    to special case subregs in subsequent code.  This works fine except when
we're
    presented with a floating point object that would be a subword.  (subreg:SF
    (reg:SI)) on rv64 for example.

    So this tightens up that force_reg step.   Bootstapped and regression
tested on
    riscv64-linux-gnu and tested on  riscv32-elf and riscv64-elf.

    Pushing to the trunk after pre-commit verifies no regressions.

    Jeff

            PR target/121160
    gcc/
            * config/riscv/riscv.cc (canonicalize_comparands); Tighten check
for
            forcing value into a GPR.

    gcc/testsuite/
            * gcc.target/riscv/pr121160.c: New test.
  • [Bug target/121160] [16 Regress... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to