https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100604
--- Comment #2 from dragan.mladjenovic at syrmia dot com --- It seems so. Something like this helps in this case: diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 07e908624a0..a102a9288c5 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -2385,7 +2385,7 @@ adjust_address_1 (rtx memref, machine_mode mode, poly_int64 offset, if (GET_MODE (memref) != BLKmode && GET_CODE (addr) == LO_SUM && known_in_range_p (offset, - 0, (GET_MODE_ALIGNMENT (GET_MODE (memref)) + 0, (MIN (GET_MODE_ALIGNMENT (GET_MODE (memref)), attrs.align) / BITS_PER_UNIT))) addr = gen_rtx_LO_SUM (address_mode, XEXP (addr, 0), plus_constant (address_mode, Don't know which one to trust. The memref has SImode. Caller wants to create HImode one. The attrs.align matches that of HImode.