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

--- Comment #5 from Hongtao.liu <crazylht at gmail dot com> ---
One solution is add an peephole for handle such redudancy.

+;; Peephole to catch memory loads to VSX_REG and then moves to GENERAL_REGS.
+(define_peephole2
+  [(set (match_operand:VSX_M 0 "vsx_register_operand")
+       (match_operand:VSX_M 1 "memory_operand"))
+   (set (match_operand:VSX_M 2 "int_reg_operand")
+       (match_dup 0))]
+  "TARGET_POWERPC64 && VECTOR_MEM_VSX_P (<MODE>mode)
+  && peep2_reg_dead_p (2, operands[0])"
+  [(set (match_dup 2) (match_dup 1))])


If powerpc maintainer doesn't like this way, another alternative is add a
target hook in RA to still use GENEREAL_REGS for other targets, but use NO_REGS
only for x86.

Reply via email to