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

--- Comment #10 from Wilco <wilco at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #9)
> 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.

That fixes one of the examples but not pr71727. As the Arm movsi issues show,
there are many mid-end alignment bugs.

Reply via email to