https://gcc.gnu.org/g:2984a3fac3d6b98e2cd6d7ee1c701159be86af78
commit r15-6438-g2984a3fac3d6b98e2cd6d7ee1c701159be86af78 Author: Maciej W. Rozycki <ma...@orcam.me.uk> Date: Wed Dec 25 22:23:40 2024 +0000 Alpha: Adjust MEM alignment for block clear [PR115459] By inference it appears to me that the same fix for PR target/115459 needs to be applied to the block clear operation that has been done for block move, as implemented by commit ccfe71518039 ("[alpha] adjust MEM alignment for block move [PR115459]"). gcc/ PR target/115459 * config/alpha/alpha.cc (alpha_expand_block_clear): Adjust MEM to match inferred alignment. Diff: --- gcc/config/alpha/alpha.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gcc/config/alpha/alpha.cc b/gcc/config/alpha/alpha.cc index 58da4a886321..7c28743f2ee3 100644 --- a/gcc/config/alpha/alpha.cc +++ b/gcc/config/alpha/alpha.cc @@ -4076,6 +4076,12 @@ alpha_expand_block_clear (rtx operands[]) else if (a >= 16) align = a, alignofs = 2 - c % 2; } + + if (MEM_P (orig_dst) && MEM_ALIGN (orig_dst) < align) + { + orig_dst = shallow_copy_rtx (orig_dst); + set_mem_align (orig_dst, align); + } } /* Handle an unaligned prefix first. */