This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/69693] Wrong mode is used to load spilled register
- From: "hjl.tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 05 Feb 2016 17:41:21 +0000
- Subject: [Bug target/69693] Wrong mode is used to load spilled register
- Auto-submitted: auto-generated
- References: <bug-69693-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69693
--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> ---
Created attachment 37598
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37598&action=edit
A patch
It is a backend bug. We need to add
; Used by STV to load a DI into an xmm register.
(define_insn "*movdi_to_v2di"
[(set (match_operand:V2DI 0 "register_operand" "=x")
(subreg:V2DI (match_operand:DI 1 "nonimmediate_operand" "xm") 0))]
"!TARGET_64BIT && TARGET_SSE2"
"%vmovq\t{%1, %0|%0, %1}"
[(set_attr "type" "ssemov")
(set_attr "prefix" "maybe_vex")
(set_attr "mode" "DI")])
I am testing this patch.