omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument...
authorJakub Jelinek <jakub@redhat.com>
Fri, 21 Jun 2019 06:48:57 +0000 (08:48 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 21 Jun 2019 06:48:57 +0000 (08:48 +0200)
commit1612b1febdd5b6b6ad17c96c980a218bfd40c025
treee99a70a4f060da6af668cd4690a60f7cf5f610ba
parente73fb06d5a1386fe0a18285d52bcc7865a13a84c
omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument...

* omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
create another "omp scan inscan exclusive" array if
!ctx->scan_inclusive.
(lower_rec_input_clauses): Handle exclusive scan inscan reductions.
(lower_omp_scan): Likewise.
* tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
2-bit bitfield for simd_lane_access_p member.
* tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
aux == (void *)-4 as simd lane access.
* tree-vect-stmts.c (check_scan_store): Handle exclusive scan.  Update
comment with permutations to show the canonical permutation order.
(vectorizable_scan_store): Handle exclusive scan.
(vectorizable_store): Call vectorizable_scan_store even for
STMT_VINFO_SIMD_LANE_ACCESS_P > 3.

* gcc.dg/vect/vect-simd-12.c: New test.
* gcc.dg/vect/vect-simd-13.c: New test.
* gcc.dg/vect/vect-simd-14.c: New test.
* gcc.dg/vect/vect-simd-15.c: New test.
* gcc.target/i386/sse2-vect-simd-12.c: New test.
* gcc.target/i386/sse2-vect-simd-13.c: New test.
* gcc.target/i386/sse2-vect-simd-14.c: New test.
* gcc.target/i386/sse2-vect-simd-15.c: New test.
* gcc.target/i386/avx2-vect-simd-12.c: New test.
* gcc.target/i386/avx2-vect-simd-13.c: New test.
* gcc.target/i386/avx2-vect-simd-14.c: New test.
* gcc.target/i386/avx2-vect-simd-15.c: New test.
* gcc.target/i386/avx512f-vect-simd-12.c: New test.
* gcc.target/i386/avx512f-vect-simd-13.c: New test.
* gcc.target/i386/avx512f-vect-simd-14.c: New test.
* gcc.target/i386/avx512bw-vect-simd-15.c: New test.
* g++.dg/vect/simd-6.cc: New test.
* g++.dg/vect/simd-7.cc: New test.
* g++.dg/vect/simd-8.cc: New test.
* g++.dg/vect/simd-9.cc: New test.
* c-c++-common/gomp/scan-2.c: Don't expect any diagnostics.

From-SVN: r272544
27 files changed:
gcc/ChangeLog
gcc/omp-low.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/gomp/scan-2.c
gcc/testsuite/g++.dg/vect/simd-6.cc [new file with mode: 0644]
gcc/testsuite/g++.dg/vect/simd-7.cc [new file with mode: 0644]
gcc/testsuite/g++.dg/vect/simd-8.cc [new file with mode: 0644]
gcc/testsuite/g++.dg/vect/simd-9.cc [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-simd-12.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-simd-13.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-simd-14.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-simd-15.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx2-vect-simd-12.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx2-vect-simd-13.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx2-vect-simd-14.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx2-vect-simd-15.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-vect-simd-15.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vect-simd-12.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vect-simd-13.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vect-simd-14.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/sse2-vect-simd-12.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/sse2-vect-simd-13.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/sse2-vect-simd-14.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/sse2-vect-simd-15.c [new file with mode: 0644]
gcc/tree-vect-data-refs.c
gcc/tree-vect-stmts.c
gcc/tree-vectorizer.h