https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70557
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- In that case it is a backend enhancement request. Backends have many ways how to deal with this, starting from specialized patterns, or using the lower subreg passes, using their own splitters etc. and many of the actively maintained backends handle this right.