This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/69693] Wrong mode is used to load spilled register


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]