https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117926
--- Comment #9 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Uros Bizjak <u...@gcc.gnu.org>: https://gcc.gnu.org/g:1acc5cffbb04949a790d6e1a34a46ec71418a57b commit r15-5991-g1acc5cffbb04949a790d6e1a34a46ec71418a57b Author: Uros Bizjak <ubiz...@gmail.com> Date: Fri Dec 6 16:59:16 2024 +0100 i386: Fix unwanted fwprop to 3dNOW! insn [PR117926] The compiler is able to forward propagate a partial vector V4SF instruction using XMM registers to a 3dNOW! V2SF instruction using MM registers. Prevent unwanted transformation by tagging 3dNOW! V2SF instructions using generic RTXes with "(unspec [(const_int 0)] UNSPEC_3DNOW)" tag. PR target/117926 gcc/ChangeLog: * config/i386/mmx.md (UNSPEC_3DNOW): New unspec. (mmx_addv2sf3): Tag insn with UNSPEC_3DNOW tag. (*mmx_addv2sf3): Ditto. (mmx_sub2vsf3): Ditto. (mmx_subrv2sf3): Ditto. (*mmx_subv2sf3): Ditto. (mmx_mulv2sf3): Ditto. (mmx_<smaxmin:code>v2sf3): Ditto. (*mmx_<smaxmin:code>v2sf3): Ditto. (mmx_ieee_<ieee_maxmin>v2sf3): Ditto. (mmx_eqv2sf3): Ditto. (*mmx_eqv2sf3): Ditto. (mmx_gtv2sf3): Ditto. (mmx_gev2sf3): Ditto. (mmx_fix_truncv2sfv2si2): Ditto. (mmx_floatv2siv2sf2): Ditto. gcc/testsuite/ChangeLog: * gcc.target/i386/pr117926.c: New test.