https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96759

--- Comment #2 from Kito Cheng <kito at gcc dot gnu.org> ---
It work on GCC 9, GCC will split that into two plain move instead of move from
a (subreg (parallel [(reg) (reg)])).

(insn 23 22 24 (set (reg:SI 83)
        (reg:SI 10 a0)) "g++.target/riscv/pr96759.C":8:38 -1
     (nil)) 

(insn 24 23 25 (set (reg:DF 84)
        (reg:DF 42 fa0)) "g++.target/riscv/pr96759.C":8:38 -1
     (nil)) 

But it will ICE after GCC 10, try to bisect to figure out the reason.

Reply via email to