This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/30961] [4.1/4.2/4.3 regression] redundant reg/mem stores/moves
- From: "hjl at lucon dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 31 Jul 2007 19:35:58 -0000
- Subject: [Bug target/30961] [4.1/4.2/4.3 regression] redundant reg/mem stores/moves
- References: <bug-30961-7667@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #15 from hjl at lucon dot org 2007-07-31 19:35 -------
(In reply to comment #14)
> (In reply to comment #13)
> > Created an attachment (id=13550)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13550&action=view) [edit]
> > An experimental patch
> >
> > This patch works for the testcase.
>
> i've applied this patch to 4.2.1 and compile testcases:
>
>
>
> convert/m32/m64 look fine. load/m32/m64 still look unoptimal.
>
Gcc 4.3 works:
.text
.p2align 4,,15
.globl convert
.type convert, @function
convert:
movl %edi, -4(%rsp)
movss -4(%rsp), %xmm0
ret
.size convert, .-convert
.p2align 4,,15
.globl load
.type load, @function
load:
movzwl (%rdi), %eax
ret
.size load, .-load
.ident "GCC: (GNU) 4.3.0 20070731 (experimental) [trunk revision
127100]"
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30961