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

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

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

commit r16-8008-gb2afa2c2f6e2954ce54658745a8b690572660121
Author: H.J. Lu <[email protected]>
Date:   Mon Mar 9 06:16:24 2026 -0700

    x86: Handle non-int load with integer constant

    1. For non-int load with zero integer constant, generate:

    (set (reg/v:SF 126 [ f ])
         (const_double:SF 0.0 [0x0.0p+0]))

    instead of

    (set (reg/v:SF 126 [ f ])
         (const_int 0 [0]))

    2. For non-int load with non-zero integer constant, generate:

    (set (subreg:SI (reg/v:SF 105 [ f ]) 0)
         (const_int 1313486336 [0x4e4a3600]))

    instead of

    (set (reg/v:SF 105 [ f ])
         (const_int 1313486336 [0x4e4a3600]))

    gcc/

            PR target/124407
            * config/i386/i386-features.cc (ix86_place_single_vector_set):
            Handle non-int load with integer constant.
            (ix86_broadcast_inner): Convert const0_rtx to non-int mode.

    gcc/testsuite/

            PR target/124407
            * gcc.target/i386/pr124407-1.c: New test.
            * gcc.target/i386/pr124407-2.c: Likewise.

    Signed-off-by: H.J. Lu <[email protected]>

Reply via email to