This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/40537] wrong instr. dependency with some SSE intrinsics
- From: "gael dot guennebaud at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 24 Jun 2009 10:53:43 -0000
- Subject: [Bug target/40537] wrong instr. dependency with some SSE intrinsics
- References: <bug-40537-17873@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from gael dot guennebaud at gmail dot com 2009-06-24 10:53 -------
There is a compilable example attached to comment #1.
Furthermore, I can reproduce the problem with gcc 4.1.3, 4.2.4, 4.3.2, and
4.4.0, so I don't think it is a duplicate of PR40141.
FYI, in the meantime I workaround the issue using inline assembly:
inline __m128 ploadu(const float* from)
{
__m128 res;
asm("movsd %[from0], %[r]"
: [r] "=x" (res) : [from0] "m" (*from), [dummy] "m" (*(from+1)) );
asm("movhps %[from2], %[r]"
: [r] "+x" (res) : [from2] "m" (*(from+2)), [dummy] "m" (*(from+3)) );
return res;
}
but that's not as portable as intrinsics.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40537