This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/29930] Omitted conversion float -> double in x86 back-end
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Nov 2006 20:09:10 -0000
- Subject: [Bug target/29930] Omitted conversion float -> double in x86 back-end
- References: <bug-29930-13346@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #2 from ubizjak at gmail dot com 2006-11-21 20:09 -------
You should use -ffloat-store if you are concerned about excess precision. There
will be no end of moves to and from memory:
foo:
pushl %ebp
movl %esp, %ebp
subl $16, %esp
fildll 8(%ebp)
fstps -4(%ebp)
flds -4(%ebp)
fstpl -16(%ebp)
fldl -16(%ebp)
leave
ret
This is a bit unoptimal, but I guess one shouldn't count extra cpu cycles when
-ffloat-store is required.
BTW: -ffloat-store with SSE math is a bit amusing, but fortunatelly totally
unnecessary.
--
ubizjak at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |WONTFIX
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29930