https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120941
--- Comment #44 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by H.J. Lu <h...@gcc.gnu.org>: https://gcc.gnu.org/g:09f0768b55b96c861811a8989d7c1cc59b4c29b6 commit r16-2727-g09f0768b55b96c861811a8989d7c1cc59b4c29b6 Author: H.J. Lu <hjl.to...@gmail.com> Date: Fri Aug 1 05:02:18 2025 -0700 x86: Don't hoist non all 0s/1s vector set outside of loop Don't hoist non all 0s/1s vector set outside of the loop to avoid extra spills. gcc/ PR target/120941 * config/i386/i386-features.cc (x86_cse_kind): Moved before ix86_place_single_vector_set. (redundant_load): Likewise. (ix86_place_single_vector_set): Replace the last argument to the pointer to redundant_load. For X86_CSE_VEC_DUP, don't place the vector set outside of the loop to avoid extra spills. (remove_redundant_vector_load): Pass load to ix86_place_single_vector_set. gcc/testsuite/ PR target/120941 * gcc.target/i386/pr120941-1.c: New test. Signed-off-by: H.J. Lu <hjl.to...@gmail.com>