From 18ba3ce7e3f3d220bca82a1edeadf4a1db019e7c Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Fri, 17 Sep 2010 13:26:43 +0000 Subject: re PR tree-optimization/43432 (Missed vectorization: "complicated access pattern" for increasing and decreasing data indexing) PR tree-optimization/43432 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Accept backwards consecutive accesses. (vect_create_data_ref_ptr): If step is negative generate decreasing IVs. * tree-vect-stmts.c (vectorizable_store): Reject negative steps. (perm_mask_for_reverse, reverse_vec_elements): New functions. (vectorizable_load): Handle loads with negative steps when easily possible. testsuite/ PR tree-optimization/43432 * lib/target-supports.exp (check_effective_target_vect_perm_byte, check_effective_target_vect_perm_short): New predicates. (check_effective_target_vect_perm): Include x86_64. * gcc.dg/vect/pr43432.c: New test. * gcc.dg/vect/vect-114.c: Adjust. * gcc.dg/vect/vect-15.c: Ditto. * gcc.dg/vect/slp-perm-8.c: Use new predicate. * gcc.dg/vect/slp-perm-9.c: Ditto. From-SVN: r164367 --- gcc/testsuite/ChangeLog | 12 +++++++++ gcc/testsuite/gcc.dg/vect/pr43432.c | 15 ++++++++++++ gcc/testsuite/gcc.dg/vect/slp-perm-8.c | 4 +-- gcc/testsuite/gcc.dg/vect/slp-perm-9.c | 2 +- gcc/testsuite/gcc.dg/vect/vect-114.c | 3 ++- gcc/testsuite/gcc.dg/vect/vect-15.c | 2 +- gcc/testsuite/lib/target-supports.exp | 45 +++++++++++++++++++++++++++++++++- 7 files changed, 77 insertions(+), 6 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/vect/pr43432.c (limited to 'gcc/testsuite') diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 43ea053..55f05f4 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,15 @@ +2010-09-17 Michael Matz + + PR tree-optimization/43432 + * lib/target-supports.exp (check_effective_target_vect_perm_byte, + check_effective_target_vect_perm_short): New predicates. + (check_effective_target_vect_perm): Include x86_64. + * gcc.dg/vect/pr43432.c: New test. + * gcc.dg/vect/vect-114.c: Adjust. + * gcc.dg/vect/vect-15.c: Ditto. + * gcc.dg/vect/slp-perm-8.c: Use new predicate. + * gcc.dg/vect/slp-perm-9.c: Ditto. + 2010-09-17 Nicola Pero PR testsuite/45692 diff --git a/gcc/testsuite/gcc.dg/vect/pr43432.c b/gcc/testsuite/gcc.dg/vect/pr43432.c new file mode 100644 index 0000000..3070318 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr43432.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target vect_float } */ +/* { dg-options "-O3 -ffast-math -fdump-tree-vect-details" } */ + + +void vector_fmul_reverse_c(float *dst, const float *src0, const float *src1, +int len){ + int i; + src1 += len-1; + for(i=0; i