https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91927

--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I think the following patch is the correct fix:
diff --git a/gcc/config/aarch64/aarch64-simd.md
b/gcc/config/aarch64/aarch64-simd.md
index ad4676bc167..787323255cb 100644
--- a/gcc/config/aarch64/aarch64-simd.md
+++ b/gcc/config/aarch64/aarch64-simd.md
@@ -41,7 +41,7 @@
 (define_expand "movmisalign<mode>"
   [(set (match_operand:VALL 0 "nonimmediate_operand")
         (match_operand:VALL 1 "general_operand"))]
-  "TARGET_SIMD"
+  "TARGET_SIMD && !STRICT_ALIGNMENT"
 {
   /* This pattern is not permitted to fail during expansion: if both arguments
      are non-registers (e.g. memory := constant, which can be created by the


Basically movmisalign should not be there if strict alignment as it is just
emitting a set.

Reply via email to