https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117092
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |113858 --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So we get: Trying 6 -> 13: 6: r104:V4HI=const_vector 13: v0:V4HI=vec_merge(vec_duplicate(x0:HI),r104:V4HI,0x1) REG_DEAD x0:HI REG_DEAD r104:V4HI Failed to match this instruction: (set (reg/i:V4HI 32 v0) (vec_merge:V4HI (vec_duplicate:V4HI (reg:HI 0 x0 [ x ])) (const_vector:V4HI [ (const_int 0 [0]) repeated x4 ]) (const_int 1 [0x1]))) The pattern in https://gcc.gnu.org/pipermail/gcc-patches/2025-February/676106.html could be extended to handle vec_duplicate here too. Both PR 113857 and bug 113858 has this same pattern. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113858 [Bug 113858] `ldr s0/h0/b0` should be used to zero extend into the full register