https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91796
--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> --- Since fwprop.c has static rtx propagate_rtx (rtx x, machine_mode mode, rtx old_rtx, rtx new_rtx, bool speed) { rtx tem; bool collapsed; int flags; if (REG_P (new_rtx) && REGNO (new_rtx) < FIRST_PSEUDO_REGISTER) return NULL_RTX; it doesn't propagate V4DF 20 xmm0 from (insn 2 5 3 2 (set (reg/v:V4DF 85 [ from ]) (reg:V4DF 20 xmm0 [ from ])) "/tmp/bad.c":3:52 1261 {movv4df_internal} (expr_list:REG_DEAD (reg:V4DF 20 xmm0 [ from ]) (nil))) to (insn 11 8 13 2 (set (reg:V4DF 89) (and:V4DF (reg:V4DF 88) (reg/v:V4DF 85 [ from ]))) "./include/avxintrin.h":168:10 1877 {*andv4df3} (expr_list:REG_DEAD (reg:V4DF 88) (expr_list:REG_DEAD (reg/v:V4DF 85 [ from ]) (nil)))) Can we propagate hard register here?