From: Kyrylo Tkachov Date: Thu, 8 Aug 2013 16:48:14 +0000 (+0000) Subject: neon.md (movmisalign): Disable when we don't allow unaligned accesses. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=869b91255ae37049d8a8de197eddbae7a6380abe;p=gcc.git neon.md (movmisalign): Disable when we don't allow unaligned accesses. 2013-08-08 Kyrylo Tkachov * config/arm/neon.md (movmisalign): Disable when we don't allow unaligned accesses. (*movmisalign_neon_store): Likewise. (*movmisalign_neon_load): Likewise. (*movmisalign_neon_store): Likewise. (*movmisalign_neon_load): Likewise. From-SVN: r201604 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 349981c24ef..45905ccd3e8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2013-08-08 Kyrylo Tkachov + + * config/arm/neon.md (movmisalign): Disable when we + don't allow unaligned accesses. + (*movmisalign_neon_store): Likewise. + (*movmisalign_neon_load): Likewise. + (*movmisalign_neon_store): Likewise. + (*movmisalign_neon_load): Likewise. + 2013-08-08 Jan Hubicka * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs. diff --git a/gcc/config/arm/neon.md b/gcc/config/arm/neon.md index 627cc71ebc2..d0ca6b9ae79 100644 --- a/gcc/config/arm/neon.md +++ b/gcc/config/arm/neon.md @@ -242,7 +242,7 @@ [(set (match_operand:VDQX 0 "neon_perm_struct_or_reg_operand") (unspec:VDQX [(match_operand:VDQX 1 "neon_perm_struct_or_reg_operand")] UNSPEC_MISALIGNED_ACCESS))] - "TARGET_NEON && !BYTES_BIG_ENDIAN" + "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access" { /* 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 @@ -256,7 +256,7 @@ [(set (match_operand:VDX 0 "neon_permissive_struct_operand" "=Um") (unspec:VDX [(match_operand:VDX 1 "s_register_operand" " w")] UNSPEC_MISALIGNED_ACCESS))] - "TARGET_NEON && !BYTES_BIG_ENDIAN" + "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access" "vst1.\t{%P1}, %A0" [(set_attr "neon_type" "neon_vst1_1_2_regs_vst2_2_regs")]) @@ -265,7 +265,7 @@ (unspec:VDX [(match_operand:VDX 1 "neon_permissive_struct_operand" " Um")] UNSPEC_MISALIGNED_ACCESS))] - "TARGET_NEON && !BYTES_BIG_ENDIAN" + "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access" "vld1.\t{%P0}, %A1" [(set_attr "neon_type" "neon_vld1_1_2_regs")]) @@ -273,7 +273,7 @@ [(set (match_operand:VQX 0 "neon_permissive_struct_operand" "=Um") (unspec:VQX [(match_operand:VQX 1 "s_register_operand" " w")] UNSPEC_MISALIGNED_ACCESS))] - "TARGET_NEON && !BYTES_BIG_ENDIAN" + "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access" "vst1.\t{%q1}, %A0" [(set_attr "neon_type" "neon_vst1_1_2_regs_vst2_2_regs")]) @@ -282,7 +282,7 @@ (unspec:VQX [(match_operand:VQX 1 "neon_permissive_struct_operand" " Um")] UNSPEC_MISALIGNED_ACCESS))] - "TARGET_NEON && !BYTES_BIG_ENDIAN" + "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access" "vld1.\t{%q0}, %A1" [(set_attr "neon_type" "neon_vld1_1_2_regs")])