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.
---
gcc/config/alpha/alpha.cc | 6 ++++++
1 file changed, 6 insertions(+)
gcc-alpha-pr115459-clear.diff
Index: gcc/gcc/config/alpha/alpha.cc
===================================================================
--- gcc.orig/gcc/config/alpha/alpha.cc
+++ gcc/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. */