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.  */

Reply via email to