neon.md (movmisalign<mode>): Disable when we don't allow unaligned accesses.

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.

From-SVN: r201604
This commit is contained in:
Kyrylo Tkachov 2013-08-08 16:48:14 +00:00 committed by Kyrylo Tkachov
parent 07efff255d
commit 869b91255a
2 changed files with 14 additions and 5 deletions

View File

@ -1,3 +1,12 @@
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.
2013-08-08 Jan Hubicka <jh@suse.cz> 2013-08-08 Jan Hubicka <jh@suse.cz>
* cgraphbuild.c (build_cgraph_edges): Do not walk into debugs. * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.

View File

@ -242,7 +242,7 @@
[(set (match_operand:VDQX 0 "neon_perm_struct_or_reg_operand") [(set (match_operand:VDQX 0 "neon_perm_struct_or_reg_operand")
(unspec:VDQX [(match_operand:VDQX 1 "neon_perm_struct_or_reg_operand")] (unspec:VDQX [(match_operand:VDQX 1 "neon_perm_struct_or_reg_operand")]
UNSPEC_MISALIGNED_ACCESS))] 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 /* 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 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") [(set (match_operand:VDX 0 "neon_permissive_struct_operand" "=Um")
(unspec:VDX [(match_operand:VDX 1 "s_register_operand" " w")] (unspec:VDX [(match_operand:VDX 1 "s_register_operand" " w")]
UNSPEC_MISALIGNED_ACCESS))] UNSPEC_MISALIGNED_ACCESS))]
"TARGET_NEON && !BYTES_BIG_ENDIAN" "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access"
"vst1.<V_sz_elem>\t{%P1}, %A0" "vst1.<V_sz_elem>\t{%P1}, %A0"
[(set_attr "neon_type" "neon_vst1_1_2_regs_vst2_2_regs")]) [(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" (unspec:VDX [(match_operand:VDX 1 "neon_permissive_struct_operand"
" Um")] " Um")]
UNSPEC_MISALIGNED_ACCESS))] UNSPEC_MISALIGNED_ACCESS))]
"TARGET_NEON && !BYTES_BIG_ENDIAN" "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access"
"vld1.<V_sz_elem>\t{%P0}, %A1" "vld1.<V_sz_elem>\t{%P0}, %A1"
[(set_attr "neon_type" "neon_vld1_1_2_regs")]) [(set_attr "neon_type" "neon_vld1_1_2_regs")])
@ -273,7 +273,7 @@
[(set (match_operand:VQX 0 "neon_permissive_struct_operand" "=Um") [(set (match_operand:VQX 0 "neon_permissive_struct_operand" "=Um")
(unspec:VQX [(match_operand:VQX 1 "s_register_operand" " w")] (unspec:VQX [(match_operand:VQX 1 "s_register_operand" " w")]
UNSPEC_MISALIGNED_ACCESS))] UNSPEC_MISALIGNED_ACCESS))]
"TARGET_NEON && !BYTES_BIG_ENDIAN" "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access"
"vst1.<V_sz_elem>\t{%q1}, %A0" "vst1.<V_sz_elem>\t{%q1}, %A0"
[(set_attr "neon_type" "neon_vst1_1_2_regs_vst2_2_regs")]) [(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" (unspec:VQX [(match_operand:VQX 1 "neon_permissive_struct_operand"
" Um")] " Um")]
UNSPEC_MISALIGNED_ACCESS))] UNSPEC_MISALIGNED_ACCESS))]
"TARGET_NEON && !BYTES_BIG_ENDIAN" "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access"
"vld1.<V_sz_elem>\t{%q0}, %A1" "vld1.<V_sz_elem>\t{%q0}, %A1"
[(set_attr "neon_type" "neon_vld1_1_2_regs")]) [(set_attr "neon_type" "neon_vld1_1_2_regs")])