https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51954
--- Comment #8 from CVS 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:59119253b3133b30114194a04171f9d353b5c7f7 commit r13-38-g59119253b3133b30114194a04171f9d353b5c7f7 Author: Uros Bizjak <ubiz...@gmail.com> Date: Fri Apr 29 13:27:48 2022 +0200 i386: Optimize double-word negation [PR51954] Introduce peephole2 pattern to convert from: mov %esi, %edx negl %eax adcl $0, %edx negl %edx to: xorl %edx, %edx negl %eax sbbl %esi, %edx This conversion is profitable only when initial move is found. Otherwise, additional move to a temporary together with clearing xor is needed. 2022-04-29 Uroš Bizjak <ubiz...@gmail.com> gcc/ChangeLog: PR target/51954 * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2. gcc/testsuite/ChangeLog: PR target/51954 * gcc.target/i386/pr51954.c: New test.