https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126231
--- Comment #3 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:368ef32ae78804c7c4fc8f021db337e0e63576b2 commit r17-2434-g368ef32ae78804c7c4fc8f021db337e0e63576b2 Author: H.J. Lu <[email protected]> Date: Thu Jul 16 07:30:31 2026 +0800 x86-64: Add *fix_trunc<mode>si_sse_2_zext We expand unsigned long long func (float x) { return (unsigned int) x; } to (insn 6 5 7 (set (reg:DI 103) (fix:DI (reg/v:SF 100 [ x ]))) "x.c":4:10 -1 (nil)) (insn 7 6 8 (set (reg:SI 102 [ _1 ]) (subreg:SI (reg:DI 103) 0)) "x.c":4:10 -1 (nil)) (insn 8 7 9 (set (reg:DI 101 [ _3 ]) (zero_extend:DI (reg:SI 102 [ _1 ]))) "x.c":4:10 -1 (nil)) Add *fix_trunc<mode>si_sse_2_zext so that combine can generate: (insn 8 6 13 2 (set (reg:DI 101 [ _3 ]) (zero_extend:DI (subreg:SI (fix:DI (reg:SF 104 [ x ])) 0))) "x.c":4:10 235 {*fix_truncsfsi_sse_2_zext} (expr_list:REG_DEAD (reg:SF 104 [ x ]) (nil))) This fixes FAIL: gcc.target/i386/zext-sse-1.c check-function-bodies func1 FAIL: gcc.target/i386/zext-sse-1.c check-function-bodies func2 PR target/126231 * config/i386/i386.md (*fix_trunc<mode>si_sse_2_zext): New. Signed-off-by: H.J. Lu <[email protected]>
