------- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-12 06:07 ------- This has been fixed now, I think by a patch which also fixed PR 13366. We get the same code for both functions in 32bit mode. But note in 64bit mode, we get better code for not_eliminated: not_eliminated: .LFB473: shufps $0, %xmm1, %xmm1 shufps $0, %xmm0, %xmm0 mulps %xmm1, %xmm0 ret
Vs: eliminated: .LFB474: movss %xmm0, -4(%rsp) movl -4(%rsp), %eax movss %xmm1, -4(%rsp) movd %eax, %xmm0 movl -4(%rsp), %eax shufps $0, %xmm0, %xmm0 movd %eax, %xmm1 shufps $0, %xmm1, %xmm1 mulps %xmm1, %xmm0 ret -- What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Target Milestone|--- |4.0.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19274