gcc/
authorjules <jules@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 4 Oct 2010 14:59:30 +0000 (14:59 +0000)
committerjules <jules@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 4 Oct 2010 14:59:30 +0000 (14:59 +0000)
commitdd0cb1e84bfcf364f43051804d39545c8d0c3787
treeb1fa492abbca688528392350fda6e82bd301c1e9
parentb77e4501462819667914fefba7ecec9611ea5e83
gcc/
* expr.c (expand_assignment): Add assertion to prevent emitting
null rtx for movmisalign pattern.
(expand_expr_real_1): Likewise.
* config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
(TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
(arm_vector_alignment_reachable): New.
(TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
(neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
(arm_print_operand): Include alignment qualifier in %A.
* config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
(movmisalign<mode>): New expander.
(movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
insn patterns.

gcc/testsuite/
* gcc.dg/vect/vect-42.c: Use vect_element_align instead of
vect_hw_misalign.
* gcc.dg/vect/vect-60.c: Likewise.
* gcc.dg/vect/vect-56.c: Likewise.
* gcc.dg/vect/vect-93.c: Likewise.
* gcc.dg/vect/no-scevccp-outer-8.c: Likewise.
* gcc.dg/vect/vect-95.c: Likewise.
* gcc.dg/vect/vect-96.c: Likewise.
* gcc.dg/vect/vect-outer-5.c: Use quad-word vectors when available.
* gcc.dg/vect/slp-25.c: Likewise.
* gcc.dg/vect/slp-3.c: Likewise.
* gcc.dg/vect/vect-multitypes-1.c: Likewise.
* gcc.dg/vect/no-vfa-pr29145.c: Likewise.
* gcc.dg/vect/vect-multitypes-4.c: Likewise. Use vect_element_align.
* gcc.dg/vect/vect-109.c: Likewise.
* gcc.dg/vect/vect-peel-1.c: Likewise.
* gcc.dg/vect/vect-peel-2.c: Likewise.
* lib/target-supports.exp
(check_effective_target_arm_vect_no_misalign): New.
(check_effective_target_vect_no_align): Use above.
(check_effective_target_vect_element_align): New.
(add_options_for_quad_vectors): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164941 138bc75d-0d04-0410-961f-82ee72b054a4
22 files changed:
gcc/ChangeLog
gcc/config/arm/arm.c
gcc/config/arm/neon.md
gcc/expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c
gcc/testsuite/gcc.dg/vect/no-vfa-pr29145.c
gcc/testsuite/gcc.dg/vect/slp-25.c
gcc/testsuite/gcc.dg/vect/slp-3.c
gcc/testsuite/gcc.dg/vect/vect-109.c
gcc/testsuite/gcc.dg/vect/vect-42.c
gcc/testsuite/gcc.dg/vect/vect-56.c
gcc/testsuite/gcc.dg/vect/vect-60.c
gcc/testsuite/gcc.dg/vect/vect-93.c
gcc/testsuite/gcc.dg/vect/vect-95.c
gcc/testsuite/gcc.dg/vect/vect-96.c
gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c
gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c
gcc/testsuite/gcc.dg/vect/vect-outer-5.c
gcc/testsuite/gcc.dg/vect/vect-peel-1.c
gcc/testsuite/gcc.dg/vect/vect-peel-2.c
gcc/testsuite/lib/target-supports.exp