https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78390
--- Comment #8 from Michael Matz <matz at gcc dot gnu.org> --- The aarch64 fail is fixed by the below patch. It will take a while for me to try this on s390, so if somebody beats me to test this I won't complain. diff --git a/gcc/combine.c b/gcc/combine.c index 0210685..05b6554 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -7380,6 +7380,7 @@ make_extraction (machine_mode mode, rtx inner, HOST_WIDE_INT pos, || !REG_P (inner) || TRULY_NOOP_TRUNCATION_MODES_P (tmode, inner_mode) || reg_truncated_to_mode (tmode, inner)) + && (REG_P (inner) || pos == 0) && (! in_dest || (REG_P (inner) && have_insn_for (STRICT_LOW_PART, tmode))))