https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80819
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Note it is already postreload that propagates the %rsi register directly into vec_concatv2di. And the reason why DSE does nothing is that since LRA introduction the DSE spill removal has been disabled and last year even removed altogether. Removing the * from the first alternative fixes this. Uros, what is the purpose of those two *s and can't they be replaced by say ^ or $ ?