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

Reply via email to