gcc/libgomp/testsuite/libgomp.fortran
Richard Biener 68d2dbf845 tree-optimization/100981 - fix SLP patterns involving reductions
The following fixes the SLP FMA patterns to preserve reduction
info and the reduction vectorization to consider internal function
call defs for the reduction stmt.

2021-06-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100981
gcc/
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Use
	gimple_get_lhs to also handle calls.
	* tree-vect-slp-patterns.c (complex_pattern::build): Transfer
	reduction info.

gcc/testsuite/
	* gfortran.dg/vect/pr100981-1.f90: New testcase.

libgomp/
	* testsuite/libgomp.fortran/pr100981-2.f90: New testcase.
2021-06-16 14:08:34 +02:00
..
appendix-a
examples-4
affinity1.f90 openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
affinity2.f90
aligned1.f03
alloc-1.F90 testsuite: Fix up libgomp.fortran/alloc-1.F90 testcase [PR100071] 2021-04-14 10:48:56 +02:00
alloc-2.F90 libgomp: Add Fortran routine support for allocators 2020-07-15 08:33:20 +02:00
alloc-3.F libgomp: Add Fortran routine support for allocators 2020-07-15 08:33:20 +02:00
alloc-4.f90 libgomp: Add Fortran routine support for allocators 2020-07-15 08:33:20 +02:00
alloc-5.f90 libgomp: Add Fortran routine support for allocators 2020-07-15 08:33:20 +02:00
alloc-comp-1.f90
alloc-comp-2.f90
alloc-comp-3.f90
allocatable1.f90
allocatable2.f90
allocatable3.f90
allocatable4.f90
allocatable5.f90
allocatable6.f90
allocatable7.f90
allocatable8.f90
allocatable9.f90
allocatable10.f90
allocatable11.f90
allocatable12.f90
associate1.f90
associate2.f90
associate3.f90
async_io_1.f90
async_io_2.f90
async_io_3.f90
async_io_4.f90
async_io_5.f90
async_io_6.f90
async_io_7.f90
async_io_8.f90
async_io_9.f90 Fixes a hang on an invalid ID in a WAIT statement. 2020-05-23 19:01:43 +02:00
atomic1.f90 re PR fortran/92899 ([OpenMP] ICE in gfc_trans_omp_atomic, at fortran/trans-openmp.c:3769) 2019-12-12 00:58:04 +01:00
cancel-do-1.f90
cancel-do-2.f90
cancel-parallel-1.f90
cancel-parallel-3.f90
cancel-sections-1.f90
cancel-taskgroup-2.f90
character1.f90
character2.f90
close_errors_1.f90 Add early return for invalid STATUS for close. 2020-05-14 18:33:24 +02:00
collapse1.f90
collapse2.f90
collapse3.f90
collapse4.f90
condinc1.f
condinc1.inc
condinc2.f
condinc3.f90
condinc4.f90
crayptr1.f90
crayptr2.f90
crayptr3.f90
critical-hint-1.f90 critical-hint-*.{c,f90}: Move from gcc/testsuite to libgomp/testsuite 2020-07-22 12:14:22 +02:00
critical-hint-2.f90 critical-hint-*.{c,f90}: Move from gcc/testsuite to libgomp/testsuite 2020-07-22 12:14:22 +02:00
declare-simd-1.f90
declare-simd-2.f90
declare-simd-3.f90
declare-simd-4.f90
declare-target-1.f90
declare-target-2.f90
declare-target-3.f90 OpenMP: Add implicit declare target for nested procedures 2020-09-30 14:59:27 +02:00
depend-1.f90
depend-2.f90
depend-3.f90
display-affinity-1.f90
do1.f90
do2.f90
do_concurrent_5.f90
doacross1.f90
doacross2.f90
doacross3.f90
dummy-procs-1.f90 Fortran/OpenMP: Fix optional dummy procedures [PR99171] 2021-02-22 13:20:26 +01:00
fortran.exp
is_device_ptr-1.f90 OpenMP/Fortran: Fixes for {use,is}_device_ptr 2021-01-19 11:58:21 +01:00
jacobi.f libgomp – spelling fixes, incl. omp_lib.h.in 2019-12-11 12:45:49 +01:00
lastprivate1.f90
lastprivate2.f90
lastprivate-conditional-10.f90 Fortran: Fix OpenMP's 'if(simd:' etc. conditions 2020-08-20 13:33:40 +02:00
lib1.f90 openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
lib2.f openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
lib3.f
lib4.f90 openmp: Add support for the omp_get_supported_active_levels runtime library routine 2020-10-13 13:21:02 -07:00
lock-1.f90
lock-2.f90
map-alloc-ptr-1.f90 OpenMP/Fortran: Fix (re)mapping of allocatable/pointer arrays [PR96668] 2020-09-15 09:24:47 +02:00
map-alloc-ptr-2.f90 OpenMP/Fortran: Fix (re)mapping of allocatable/pointer arrays [PR96668] 2020-09-15 09:24:47 +02:00
nested1.f90 openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
nestedfn1.f90
nestedfn2.f90
nestedfn3.f90
nestedfn4.f90
nestedfn5.f90
omp_atomic1.f90
omp_atomic2.f90
omp_atomic3.f90
omp_atomic4.f90
omp_atomic5.f90
omp_cond1.f
omp_cond2.f
omp_cond3.F90
omp_cond4.F90
omp_hello.f
omp_orphan.f
omp_parse1.f90
omp_parse2.f90
omp_parse3.f90
omp_parse4.f90
omp_reduction.f
omp_workshare1.f
omp_workshare2.f
on_device_arch.c libgomp: Fix on_device_arch.c aux-file handling [PR99555] 2021-03-29 10:40:38 +02:00
openmp_version-1.f
openmp_version-2.f90
optional-map.f90 Fortran] OpenMP/OpenACC – fix more issues with OPTIONAL 2020-01-03 13:56:46 +01:00
parloops-exit-first-loop-alt-2.f95
parloops-exit-first-loop-alt.f95
pointer1.f90
pointer2.f90
pr25162.f
pr25219.f90
pr27395-1.f90
pr27395-2.f90
pr27416-1.f90
pr27916-1.f90
pr27916-2.f90
pr28390.f
pr29629.f90
pr32359.f90
pr32550.f90
pr33880.f90
pr34020.f90
pr35130.f90
pr42162.f90
pr46753.f90
pr48894.f90
pr49792-1.f90
pr49792-2.f90
pr63938-1.f90
pr63938-2.f90
pr65597.f90
pr66199-1.f90
pr66199-2.f90
pr66199-3.f90 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) 2020-05-13 10:06:45 +02:00
pr66199-4.f90 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) 2020-05-13 10:06:45 +02:00
pr66199-5.f90 libgomp.fortran/pr66199-5.f90: Make stop codes unique 2020-09-22 19:16:34 +02:00
pr66199-6.f90 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) 2020-05-13 10:06:45 +02:00
pr66199-7.f90 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) 2020-05-13 10:06:45 +02:00
pr66199-8.f90 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) 2020-05-13 10:06:45 +02:00
pr66199-9.f90 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) 2020-05-13 10:06:45 +02:00
pr66680.f90
pr71014.f90
pr71734-1.f90
pr71734-2.f90
pr81304.f90
pr81841.f90
pr84418-1.f90
pr84418-2.f90
pr88463-1.f90
pr88463-2.f90
pr90779.f90
pr93553.f90 openmp: Handle clauses with gimple sequences in convert_nonlocal_omp_clauses properly 2020-08-08 11:10:30 +02:00
pr95654.f90 [omp, ftracer] Don't duplicate blocks in SIMT region 2020-10-05 08:53:11 +02:00
pr100981-2.f90 tree-optimization/100981 - fix SLP patterns involving reductions 2021-06-16 14:08:34 +02:00
procptr1.f90
recursion1.f90
reduction1.f90
reduction2.f90
reduction3.f90
reduction4.f90
reduction5.f90
reduction6.f90
reference1.f90
reference2.f90
retval1.f90
retval2.f90
scan-1.f90 Fortran: Add 'omp scan' support of OpenMP 5.0 2020-12-08 16:54:22 +01:00
sharing1.f90
sharing2.f90
simd1.f90
simd2.f90
simd3.f90
simd4.f90
simd5.f90
simd6.f90
simd7.f90
stack.f90
strassen.f90
struct-elem-map-1.f90 libgomp.fortran/struct-elem-map-1.f90: Add char kind=4 tests 2020-07-15 12:34:03 +02:00
tabs1.f90
tabs2.f
target1.f90
target2.f90
target3.f90
target4.f90
target5.f90
target6.f90
target7.f90
target8.f90
target9.f90
target-allocatable-1-1.f90
target-allocatable-1-2.f90
target-enter-data-1.f90 Add 'dg-do run' to 'libgomp.fortran/target-enter-data-1.f90' 2020-04-10 15:44:17 +02:00
target-enter-data-2.F90 Add 'dg-do run' to 'libgomp.fortran/target-enter-data-2.F90' 2020-04-20 23:16:40 +02:00
target-map-1.f90 [Fortran, OpenMP] Fix allocatable-components check (PR67311) 2020-07-14 12:55:53 +02:00
target-print-1-nvptx.f90 Fix 'libgomp.fortran/target-print-1.f90', 'libgomp.oacc-fortran/print-1.f90' for offload target nvptx 2019-11-27 18:50:55 +01:00
target-print-1.f90 Fix 'libgomp.fortran/target-print-1.f90', 'libgomp.oacc-fortran/print-1.f90' for offload target nvptx 2019-11-27 18:50:55 +01:00
target-simd.f90
target-var.f90 openmp: ensure variables in offload table are streamed out (PRs 94848 + 95551) 2020-06-08 23:24:57 +02:00
task1.f90
task2.f90
task3.f90
task4.f90
task-detach-1.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-2.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-3.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-4.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-5.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-6.f90 XFAIL OpenMP/nvptx execution-time hangs for simple nested OpenMP 'target'/'parallel'/'task' constructs [PR99555] 2021-04-15 11:13:27 +02:00
task-detach-7.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-8.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-9.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-10.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-11.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-12.f90 OpenMP: detach - fix firstprivate handling 2021-05-13 22:52:35 +02:00
taskgroup1.f90
taskloop1.f90
taskloop2.f90
taskloop3.f90
taskloop4.f90
teams1.f90 openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
teams2.f90 re PR fortran/92756 (ICE in lower_omp, at omp-low.c:12988) 2019-12-04 09:47:13 +01:00
threadprivate1.f90
threadprivate2.f90
threadprivate3.f90
threadprivate4.f90
udr1.f90
udr2.f90
udr3.f90
udr4.f90
udr5.f90
udr6.f90
udr7.f90
udr8.f90
udr9.f90
udr10.f90
udr11.f90
udr12.f90
udr13.f90
udr14.f90
udr15.f90
use_device_addr-1.f90 [OpenMP/OpenACC/Fortran] Fix mapping of optional (present|absent) arguments 2019-12-06 14:06:53 +01:00
use_device_addr-2.f90 [OpenMP/OpenACC/Fortran] Fix mapping of optional (present|absent) arguments 2019-12-06 14:06:53 +01:00
use_device_addr-3.f90 libgomp/testsuite/*fortran – make 'stop' values unique 2019-12-09 12:21:22 +01:00
use_device_addr-4.f90 libgomp/testsuite/*fortran – make 'stop' values unique 2019-12-09 12:21:22 +01:00
use_device_ptr-1.f90
use_device_ptr-3.f90 Fortran/OpenMP: Fix use_device_{ptr,addr} with assumed-size array [PR98858] 2021-03-12 16:33:02 +01:00
use_device_ptr-optional-1.f90
use_device_ptr-optional-2.f90 Torture testing: 'libgomp.fortran/use_device_ptr-optional-2.f90' 2020-04-29 09:24:07 +02:00
use_device_ptr-optional-3.f90 Add 'dg-do run' to 'libgomp.fortran/use_device_ptr-optional-3.f90' [PR94848] 2020-06-18 00:14:46 +02:00
use_intrinsic_1.f90
vla1.f90
vla2.f90
vla3.f90
vla4.f90
vla5.f90
vla6.f90
vla7.f90
vla8.f90
workshare1.f90
workshare2.f90