------- Additional Comments From uros at gcc dot gnu dot org 2004-11-23 13:26 ------- Works OK with gcc version 4.0.0 20041123 (experimental). Following ASM is produced with 'gcc -march=pentium4 -mcpu=pentium4 -msse2 -funroll-loops':
.LC0: .long 0 .long 1072693248 .long 0 .long 1074790400 .text .globl main .type main, @function main: pushl %ebp movl %esp, %ebp subl $40, %esp andl $-16, %esp movl $0, %eax | addl $15, %eax | addl $15, %eax | shrl $4, %eax |<--- WHY? sall $4, %eax | subl %eax, %esp movapd .LC0, %xmm0 movapd %xmm0, -24(%ebp) cvtpd2ps -24(%ebp), %xmm0 rsqrtps %xmm0, %xmm0 cvtps2pd %xmm0, %xmm0 movapd %xmm0, -40(%ebp) movl $0, %eax leave ret I don't know what is the purpouse of marked operations on %eax... -- What |Removed |Added ---------------------------------------------------------------------------- Known to work| |4.0.0 Summary|[3.4/4.0 Regression] ICE in |[3.4 Regression] ICE in |simplify_binary_operation |simplify_binary_operation http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18614