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))))

Reply via email to