[Bug target/32708] _mm_cvtsi64x_si128() and _mm_cvtsi128_si64x() inefficient

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Jul 10 19:38:00 GMT 2007



------- Comment #6 from ubizjak at gmail dot com  2007-07-10 19:38 -------
(In reply to comment #0)

> long2vector() should use a simple MOVQ instruction the way int2vector() uses
> MOVD. It appears that the reason for the stack access is that the original code
> used a reg64->mem->mm->xmm path, which the optimizer partly noticed;
> gcc-4.3-20070617 leaves the full path in place.

A note to the reporter: unless a noticeable performance regression is found,
missed-optimization bugs should be reported vs. mainline gcc. Usually, mainline
sources implement new infrastructure to support new optimizations, and this
infrastructure is rarely backported to release branches. Sometimes requested
optimization is already implemented in the mainline, again with little or no
chances of being backported.

If you have a particular (complex) application, you are most welcomed to try to
compile it with latest gcc sources. This way, compile-time, runtime and
performance issues can be fixed early in gcc development cycle, benefiting your
application, as well as gcc development.

Otherwise, the patch is committed to mainline. Not a regression on branches.


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32708



More information about the Gcc-bugs mailing list