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.