https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114009
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Is the regression marker added for the r11-2550-gca2b8c082c4f16919071c9f8de8db0b33b54c405 change: movl %edi, %eax - xorl %edx, %edx + movl $0, %edx shrl $31, %eax addl %edi, %eax + addl $1, %edi andl $-2, %eax - sete %dl - imull %edx, %eax + cmpl $2, %edi + cmova %edx, %eax movl %eax, w(%rip) ret or for the r12-5392-g527e54a431473cc497204226a21f2831d2375e66 change: - movl %edi, %eax - movl $0, %edx - shrl $31, %eax - addl %edi, %eax - addl $1, %edi - andl $-2, %eax - cmpl $2, %edi - cmova %edx, %eax + leal 1(%rdi), %eax + movl %edi, %edx + cmpl $2, %eax + setbe %al + shrl $31, %edx + addl %edi, %edx + movzbl %al, %eax + sarl %edx + imull %edx, %eax + addl %eax, %eax or both? I don't think we ever optimized this without -fwrapv to just 0.