https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106746
--- Comment #9 from Roger Sayle <roger at nextmovesoftware dot com> --- I'm curious why the zero_extend behaves so differently to a sign_extend, perhaps a missing simplification or pattern. Presumably the CONCAT in the debug_insn is there whether or not a sign_extend or zero_extend is used?