This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/14552] compiled trivial vector intrinsic code is inefficient
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 19 Mar 2008 23:46:57 -0000
- Subject: [Bug target/14552] compiled trivial vector intrinsic code is inefficient
- References: <bug-14552-4523@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #27 from ubizjak at gmail dot com 2008-03-19 23:46 -------
(In reply to comment #25)
> Actually the first generates-
> subl $12, %esp
> movq _w, %mm0
> paddw %mm0, %mm0
> movq %mm0, _w
> movq _w, %mm0
> movq %mm0, _dw
> addl $12, %esp
> ret
>
> which is better than the code in the original report but still has a useless
> store/reload.
The store is not useless. Reload from "_w" is how gcc handles double stores
nowadays and is not mmx specific. It looks that some pass forgot to check where
the value came from.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14552