summaryrefslogtreecommitdiff
path: root/gcc/config/arm/neon.md
diff options
context:
space:
mode:
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>2013-08-08 16:48:14 +0000
committerktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>2013-08-08 16:48:14 +0000
commit80c69b154ef1c730333cc380fe02db98b8283091 (patch)
treeb7b5bde770f25985b9fef8df13d54f4f598b278e /gcc/config/arm/neon.md
parentb6ce1fce3f6ee2a7e9fdf835fead13688ba8d086 (diff)
downloadgcc-80c69b154ef1c730333cc380fe02db98b8283091.tar.gz
2013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/neon.md (movmisalign<mode>): Disable when we don't allow unaligned accesses. (*movmisalign<mode>_neon_store): Likewise. (*movmisalign<mode>_neon_load): Likewise. (*movmisalign<mode>_neon_store): Likewise. (*movmisalign<mode>_neon_load): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201604 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/neon.md')
-rw-r--r--gcc/config/arm/neon.md10
1 files changed, 5 insertions, 5 deletions
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.<V_sz_elem>\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.<V_sz_elem>\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.<V_sz_elem>\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.<V_sz_elem>\t{%q0}, %A1"
[(set_attr "neon_type" "neon_vld1_1_2_regs")])