[Bug tree-optimization/40550] Segmentation fault caused by alignment error in sse code
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sun Jun 28 12:13:00 GMT 2009
------- Comment #13 from ubizjak at gmail dot com 2009-06-28 12:13 -------
(In reply to comment #12)
> Shouldn't we be able to use mmx regs here? Thus not rely on
> type_for_widest_vector_mode, but instead see if the original vector
> mode is supported by the backend?
Please note that v2sf instructions are 3dnow! insns, not SSE.
Some time ago, it was decided that we don't want generic verctorizer to mess
around with mmx registers due to missing [f]emms insn emission.
Renaming "mmx_addv2sf3" pattern to "addv2sf2" and using -m3dnow will generate
expected pfadd, but without femms:
test:
pushl %ebp
movl %esp, %ebp
subl $32, %esp
movl $1065353216, %eax
movl $0, %edx
movl %eax, -24(%ebp)
movl %edx, -20(%ebp)
movl $0, %eax
movl $1065353216, %edx
movl %eax, -16(%ebp)
movl %edx, -12(%ebp)
movq -16(%ebp), %mm0
movq -24(%ebp), %mm1
pfadd %mm1, %mm0
movq %mm0, -8(%ebp)
leave
ret
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40550
More information about the Gcc-bugs
mailing list