Re: [PATCH 2/2][vect]Make vect-epilogues-nomask=1 default
On Wed, Oct 30, 2019 at 06:16:43PM +, Andre Vieira (lists) wrote: > 2019-10-30 Andre Vieira > > * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default. This broke quite a few tests in libgomp, and as they are execution failures, just trying to work around it in the test is not a good idea. Admittely, I haven't bisected it, but: make check RUNTESTFLAGS="--target_board=unix/--param=vect-epilogues-nomask=0 c.exp='loop-1.c simd-*.c scan*.c pr58392.c' c++.exp='loop-1.c simd-*.C' fortran.exp='simd-*.f90 nestedfn*.f90'" in libgomp on x86_64-linux (with avx512{f,bw,vl,dq} available in hw) succeeds, while make check RUNTESTFLAGS="c.exp='loop-1.c simd-*.c scan*.c pr58392.c' c++.exp='loop-1.c simd-*.C' fortran.exp='simd-*.f90 nestedfn*.f90'" results in: FAIL: libgomp.c/../libgomp.c-c++-common/loop-1.c execution test FAIL: libgomp.c/examples-4/simd-3.c execution test FAIL: libgomp.c/pr58392.c execution test FAIL: libgomp.c/scan-13.c execution test FAIL: libgomp.c/scan-17.c execution test FAIL: libgomp.c/scan-19.c execution test FAIL: libgomp.c/scan-20.c execution test FAIL: libgomp.c/simd-10.c execution test FAIL: libgomp.c/simd-12.c execution test FAIL: libgomp.c/simd-13.c execution test FAIL: libgomp.c/simd-6.c execution test FAIL: libgomp.c++/../libgomp.c-c++-common/loop-1.c execution test FAIL: libgomp.c++/simd-8.C execution test FAIL: libgomp.fortran/examples-4/simd-3.f90 -O1 execution test FAIL: libgomp.fortran/examples-4/simd-3.f90 -O2 execution test FAIL: libgomp.fortran/examples-4/simd-3.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: libgomp.fortran/examples-4/simd-3.f90 -O3 -g execution test FAIL: libgomp.fortran/examples-4/simd-3.f90 -Os execution test FAIL: libgomp.fortran/nestedfn5.f90 -O1 execution test FAIL: libgomp.fortran/nestedfn5.f90 -O2 execution test FAIL: libgomp.fortran/nestedfn5.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: libgomp.fortran/nestedfn5.f90 -O3 -g execution test FAIL: libgomp.fortran/nestedfn5.f90 -Os execution test On i686-linux, I also see newly FAIL: gcc.dg/vect/vect-epilogues.c -flto -ffat-lto-objects scan-tree-dump vect "LOOP EPILOGUE VECTORIZED" FAIL: gcc.dg/vect/vect-epilogues.c scan-tree-dump vect "LOOP EPILOGUE VECTORIZED" and in libgomp just FAIL: libgomp.c/examples-4/simd-3.c execution test FAIL: libgomp.c/scan-13.c execution test FAIL: libgomp.c/scan-17.c execution test FAIL: libgomp.fortran/examples-4/simd-3.f90 -O1 execution test FAIL: libgomp.fortran/examples-4/simd-3.f90 -O2 execution test FAIL: libgomp.fortran/examples-4/simd-3.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: libgomp.fortran/examples-4/simd-3.f90 -O3 -g execution test FAIL: libgomp.fortran/examples-4/simd-3.f90 -Os execution test Jakub
Re: [PATCH 2/2][vect]Make vect-epilogues-nomask=1 default
This patch seems to break libgomp.fortran/examples-4/simd-3.f90 at run time as the calculated value is way off: "diff = sum - sum_ref" is -12576 while abs(diff) < 1e-16 is the check. It works with -O0 or without -mavx; (Hence, -Os or -O1 + -mavx cause the fail.) Please have a look. Tobias PS: I also see other failures, namely, libgomp.fortran/nestedfn5.f90 and libgomp.fortran/simd1.f90 – but I have not checked whether the reason is the same or due to my tree or … For libgomp.fortran/examples-4/simd-3.f90 I did a proper bisecting. On 10/30/19 7:16 PM, Andre Vieira (lists) wrote: Hi, In this patch I turn epilogue vectorization on by default for all targets. After some discussions I decided to take the following testing approach: 1) I have disabled epilogue vectorization for all tests that failed due to scan-tree-dump failures inside: - gcc.dg/vect - gcc.target/i386 - gcc.target/aarch6 - gfortran.dg/vect 2) Added the Bugzilla's reported testcase but xfail the scan for EPILOGUE VECTORIZED for arm*-*-* as that target does not vectorize the epilogue. I have only been able to test this for aarch64, arm and x86_64 (with avx512). Other targets may also want to disable epilogue vectorization like I did for gcc.target and gcc.dg/vect tests or xfail the gcc.dg/vect/vect-epilogues.c test. I am relying on others to test this for their available targets, thanks in advance! Is this OK for trunk? Cheers, Andre gcc/ChangeLog: 2019-10-30 Andre Vieira * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default. gcc/testsuite/ChangeLog: 2019-10-30 Andre Vieira * gcc.dg/vect/vect-epilogues.c: New test. * gcc.dg/vect/fast-math-vect-call-1.c: Disable for epilogue vectorization. * gcc.dg/vect/no-fast-math-vect16.c: Likewise. * gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c: Likewise. * gcc.dg/vect/no-scevccp-vect-iv-3.c: Likewise. * gcc.dg/vect/no-section-anchors-vect-31.c: Likewise. * gcc.dg/vect/no-section-anchors-vect-64.c: Likewise. * gcc.dg/vect/no-section-anchors-vect-66.c: Likewise. * gcc.dg/vect/no-section-anchors-vect-68.c: Likewise. * gcc.dg/vect/no-vfa-vect-dv-2.c: Likewise. * gcc.dg/vect/pr33804.c: Likewise. * gcc.dg/vect/pr53773.c: Likewise. * gcc.dg/vect/pr65947-1.c: Likewise. * gcc.dg/vect/pr65947-13.c: Likewise. * gcc.dg/vect/pr65947-14.c: Likewise. * gcc.dg/vect/pr65947-4.c: Likewise. * gcc.dg/vect/pr80631-1.c: Likewise. * gcc.dg/vect/pr80631-2.c: Likewise. * gcc.dg/vect/slp-23.c: Likewise. * gcc.dg/vect/slp-25.c: Likewise. * gcc.dg/vect/slp-reduc-2.c: Likewise. * gcc.dg/vect/slp-reduc-5.c: Likewise. * gcc.dg/vect/slp-reduc-6.c: Likewise. * gcc.dg/vect/slp-reduc-sad-2.c: Likewise. * gcc.dg/vect/slp-widen-mult-half.c: Likewise. * gcc.dg/vect/trapv-vect-reduc-4.c: Likewise. * gcc.dg/vect/vect-103.c: Likewise. * gcc.dg/vect/vect-109.c: Likewise. * gcc.dg/vect/vect-119.c: Likewise. * gcc.dg/vect/vect-24.c: Likewise. * gcc.dg/vect/vect-26.c: Likewise. * gcc.dg/vect/vect-27.c: Likewise. * gcc.dg/vect/vect-29.c: Likewise. * gcc.dg/vect/vect-42.c: Likewise. * gcc.dg/vect/vect-44.c: Likewise. * gcc.dg/vect/vect-48.c: Likewise. * gcc.dg/vect/vect-50.c: Likewise. * gcc.dg/vect/vect-52.c: Likewise. * gcc.dg/vect/vect-54.c: Likewise. * gcc.dg/vect/vect-56.c: Likewise. * gcc.dg/vect/vect-58.c: Likewise. * gcc.dg/vect/vect-60.c: Likewise. * gcc.dg/vect/vect-72.c: Likewise. * gcc.dg/vect/vect-75-big-array.c: Likewise. * gcc.dg/vect/vect-75.c: Likewise. * gcc.dg/vect/vect-77-alignchecks.c: Likewise. * gcc.dg/vect/vect-77-global.c: Likewise. * gcc.dg/vect/vect-78-alignchecks.c: Likewise. * gcc.dg/vect/vect-78-global.c: Likewise. * gcc.dg/vect/vect-89-big-array.c: Likewise. * gcc.dg/vect/vect-89.c: Likewise. * gcc.dg/vect/vect-91.c: Likewise. * gcc.dg/vect/vect-92.c: Likewise. * gcc.dg/vect/vect-96.c: Likewise. * gcc.dg/vect/vect-cond-reduc-3.c: Likewise. * gcc.dg/vect/vect-cond-reduc-4.c: Likewise. * gcc.dg/vect/vect-live-1.c: Likewise. * gcc.dg/vect/vect-live-2.c: Likewise. * gcc.dg/vect/vect-live-3.c: Likewise. * gcc.dg/vect/vect-live-4.c: Likewise. * gcc.dg/vect/vect-live-slp-1.c: Likewise. * gcc.dg/vect/vect-live-slp-2.c: Likewise. * gcc.dg/vect/vect-live-slp-3.c: Likewise. * gcc.dg/vect/vect-multitypes-3.c: Likewise. * gcc.dg/vect/vect-multitypes-4.c: Likewise. * gcc.dg/vect/vect-multitypes-6.c: Likewise. * gcc.dg/vect/vect-peel-1-epilogue.c: Likewise. New test. * gcc.dg/vect/vect-peel-1-src.c: Likewise. New test.
Re: [PATCH 2/2][vect]Make vect-epilogues-nomask=1 default
On October 30, 2019 7:16:43 PM GMT+01:00, "Andre Vieira (lists)" wrote: >Hi, > >In this patch I turn epilogue vectorization on by default for all >targets. After some discussions I decided to take the following testing > >approach: > >1) I have disabled epilogue vectorization for all tests that failed due > >to scan-tree-dump failures inside: > - gcc.dg/vect > - gcc.target/i386 > - gcc.target/aarch6 > - gfortran.dg/vect > >2) Added the Bugzilla's reported testcase but xfail the scan for >EPILOGUE VECTORIZED for arm*-*-* as that target does not vectorize the >epilogue. > > >I have only been able to test this for aarch64, arm and x86_64 (with >avx512). Other targets may also want to disable epilogue vectorization > >like I did for gcc.target and gcc.dg/vect tests or xfail the >gcc.dg/vect/vect-epilogues.c test. I am relying on others to test this >for their available targets, thanks in advance! > >Is this OK for trunk? Ok. Thanks, Richard. > >Cheers, >Andre > >gcc/ChangeLog: > >2019-10-30 Andre Vieira > > * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default. > >gcc/testsuite/ChangeLog: > >2019-10-30 Andre Vieira > > * gcc.dg/vect/vect-epilogues.c: New test. > * gcc.dg/vect/fast-math-vect-call-1.c: Disable for epilogue > vectorization. > * gcc.dg/vect/no-fast-math-vect16.c: Likewise. > * gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c: Likewise. > * gcc.dg/vect/no-scevccp-vect-iv-3.c: Likewise. > * gcc.dg/vect/no-section-anchors-vect-31.c: Likewise. > * gcc.dg/vect/no-section-anchors-vect-64.c: Likewise. > * gcc.dg/vect/no-section-anchors-vect-66.c: Likewise. > * gcc.dg/vect/no-section-anchors-vect-68.c: Likewise. > * gcc.dg/vect/no-vfa-vect-dv-2.c: Likewise. > * gcc.dg/vect/pr33804.c: Likewise. > * gcc.dg/vect/pr53773.c: Likewise. > * gcc.dg/vect/pr65947-1.c: Likewise. > * gcc.dg/vect/pr65947-13.c: Likewise. > * gcc.dg/vect/pr65947-14.c: Likewise. > * gcc.dg/vect/pr65947-4.c: Likewise. > * gcc.dg/vect/pr80631-1.c: Likewise. > * gcc.dg/vect/pr80631-2.c: Likewise. > * gcc.dg/vect/slp-23.c: Likewise. > * gcc.dg/vect/slp-25.c: Likewise. > * gcc.dg/vect/slp-reduc-2.c: Likewise. > * gcc.dg/vect/slp-reduc-5.c: Likewise. > * gcc.dg/vect/slp-reduc-6.c: Likewise. > * gcc.dg/vect/slp-reduc-sad-2.c: Likewise. > * gcc.dg/vect/slp-widen-mult-half.c: Likewise. > * gcc.dg/vect/trapv-vect-reduc-4.c: Likewise. > * gcc.dg/vect/vect-103.c: Likewise. > * gcc.dg/vect/vect-109.c: Likewise. > * gcc.dg/vect/vect-119.c: Likewise. > * gcc.dg/vect/vect-24.c: Likewise. > * gcc.dg/vect/vect-26.c: Likewise. > * gcc.dg/vect/vect-27.c: Likewise. > * gcc.dg/vect/vect-29.c: Likewise. > * gcc.dg/vect/vect-42.c: Likewise. > * gcc.dg/vect/vect-44.c: Likewise. > * gcc.dg/vect/vect-48.c: Likewise. > * gcc.dg/vect/vect-50.c: Likewise. > * gcc.dg/vect/vect-52.c: Likewise. > * gcc.dg/vect/vect-54.c: Likewise. > * gcc.dg/vect/vect-56.c: Likewise. > * gcc.dg/vect/vect-58.c: Likewise. > * gcc.dg/vect/vect-60.c: Likewise. > * gcc.dg/vect/vect-72.c: Likewise. > * gcc.dg/vect/vect-75-big-array.c: Likewise. > * gcc.dg/vect/vect-75.c: Likewise. > * gcc.dg/vect/vect-77-alignchecks.c: Likewise. > * gcc.dg/vect/vect-77-global.c: Likewise. > * gcc.dg/vect/vect-78-alignchecks.c: Likewise. > * gcc.dg/vect/vect-78-global.c: Likewise. > * gcc.dg/vect/vect-89-big-array.c: Likewise. > * gcc.dg/vect/vect-89.c: Likewise. > * gcc.dg/vect/vect-91.c: Likewise. > * gcc.dg/vect/vect-92.c: Likewise. > * gcc.dg/vect/vect-96.c: Likewise. > * gcc.dg/vect/vect-cond-reduc-3.c: Likewise. > * gcc.dg/vect/vect-cond-reduc-4.c: Likewise. > * gcc.dg/vect/vect-live-1.c: Likewise. > * gcc.dg/vect/vect-live-2.c: Likewise. > * gcc.dg/vect/vect-live-3.c: Likewise. > * gcc.dg/vect/vect-live-4.c: Likewise. > * gcc.dg/vect/vect-live-slp-1.c: Likewise. > * gcc.dg/vect/vect-live-slp-2.c: Likewise. > * gcc.dg/vect/vect-live-slp-3.c: Likewise. > * gcc.dg/vect/vect-multitypes-3.c: Likewise. > * gcc.dg/vect/vect-multitypes-4.c: Likewise. > * gcc.dg/vect/vect-multitypes-6.c: Likewise. > * gcc.dg/vect/vect-peel-1-epilogue.c: Likewise. New test. > * gcc.dg/vect/vect-peel-1-src.c: Likewise. New test. > * gcc.dg/vect/vect-peel-1.c: Likewise. > * gcc.dg/vect/vect-peel-3-epilogue.c: Likewise. New test. > * gcc.dg/vect/vect-peel-3-src.c: Likewise. New test. > * gcc.dg/vect/vect-peel-3.c: Likewise. > * gcc.dg/vect/vect-peel-4-epilogue.c: Likewise. New test. > *
Re: [PATCH 2/2][vect]Make vect-epilogues-nomask=1 default
Hi, In this patch I turn epilogue vectorization on by default for all targets. After some discussions I decided to take the following testing approach: 1) I have disabled epilogue vectorization for all tests that failed due to scan-tree-dump failures inside: - gcc.dg/vect - gcc.target/i386 - gcc.target/aarch6 - gfortran.dg/vect 2) Added the Bugzilla's reported testcase but xfail the scan for EPILOGUE VECTORIZED for arm*-*-* as that target does not vectorize the epilogue. I have only been able to test this for aarch64, arm and x86_64 (with avx512). Other targets may also want to disable epilogue vectorization like I did for gcc.target and gcc.dg/vect tests or xfail the gcc.dg/vect/vect-epilogues.c test. I am relying on others to test this for their available targets, thanks in advance! Is this OK for trunk? Cheers, Andre gcc/ChangeLog: 2019-10-30 Andre Vieira * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default. gcc/testsuite/ChangeLog: 2019-10-30 Andre Vieira * gcc.dg/vect/vect-epilogues.c: New test. * gcc.dg/vect/fast-math-vect-call-1.c: Disable for epilogue vectorization. * gcc.dg/vect/no-fast-math-vect16.c: Likewise. * gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c: Likewise. * gcc.dg/vect/no-scevccp-vect-iv-3.c: Likewise. * gcc.dg/vect/no-section-anchors-vect-31.c: Likewise. * gcc.dg/vect/no-section-anchors-vect-64.c: Likewise. * gcc.dg/vect/no-section-anchors-vect-66.c: Likewise. * gcc.dg/vect/no-section-anchors-vect-68.c: Likewise. * gcc.dg/vect/no-vfa-vect-dv-2.c: Likewise. * gcc.dg/vect/pr33804.c: Likewise. * gcc.dg/vect/pr53773.c: Likewise. * gcc.dg/vect/pr65947-1.c: Likewise. * gcc.dg/vect/pr65947-13.c: Likewise. * gcc.dg/vect/pr65947-14.c: Likewise. * gcc.dg/vect/pr65947-4.c: Likewise. * gcc.dg/vect/pr80631-1.c: Likewise. * gcc.dg/vect/pr80631-2.c: Likewise. * gcc.dg/vect/slp-23.c: Likewise. * gcc.dg/vect/slp-25.c: Likewise. * gcc.dg/vect/slp-reduc-2.c: Likewise. * gcc.dg/vect/slp-reduc-5.c: Likewise. * gcc.dg/vect/slp-reduc-6.c: Likewise. * gcc.dg/vect/slp-reduc-sad-2.c: Likewise. * gcc.dg/vect/slp-widen-mult-half.c: Likewise. * gcc.dg/vect/trapv-vect-reduc-4.c: Likewise. * gcc.dg/vect/vect-103.c: Likewise. * gcc.dg/vect/vect-109.c: Likewise. * gcc.dg/vect/vect-119.c: Likewise. * gcc.dg/vect/vect-24.c: Likewise. * gcc.dg/vect/vect-26.c: Likewise. * gcc.dg/vect/vect-27.c: Likewise. * gcc.dg/vect/vect-29.c: Likewise. * gcc.dg/vect/vect-42.c: Likewise. * gcc.dg/vect/vect-44.c: Likewise. * gcc.dg/vect/vect-48.c: Likewise. * gcc.dg/vect/vect-50.c: Likewise. * gcc.dg/vect/vect-52.c: Likewise. * gcc.dg/vect/vect-54.c: Likewise. * gcc.dg/vect/vect-56.c: Likewise. * gcc.dg/vect/vect-58.c: Likewise. * gcc.dg/vect/vect-60.c: Likewise. * gcc.dg/vect/vect-72.c: Likewise. * gcc.dg/vect/vect-75-big-array.c: Likewise. * gcc.dg/vect/vect-75.c: Likewise. * gcc.dg/vect/vect-77-alignchecks.c: Likewise. * gcc.dg/vect/vect-77-global.c: Likewise. * gcc.dg/vect/vect-78-alignchecks.c: Likewise. * gcc.dg/vect/vect-78-global.c: Likewise. * gcc.dg/vect/vect-89-big-array.c: Likewise. * gcc.dg/vect/vect-89.c: Likewise. * gcc.dg/vect/vect-91.c: Likewise. * gcc.dg/vect/vect-92.c: Likewise. * gcc.dg/vect/vect-96.c: Likewise. * gcc.dg/vect/vect-cond-reduc-3.c: Likewise. * gcc.dg/vect/vect-cond-reduc-4.c: Likewise. * gcc.dg/vect/vect-live-1.c: Likewise. * gcc.dg/vect/vect-live-2.c: Likewise. * gcc.dg/vect/vect-live-3.c: Likewise. * gcc.dg/vect/vect-live-4.c: Likewise. * gcc.dg/vect/vect-live-slp-1.c: Likewise. * gcc.dg/vect/vect-live-slp-2.c: Likewise. * gcc.dg/vect/vect-live-slp-3.c: Likewise. * gcc.dg/vect/vect-multitypes-3.c: Likewise. * gcc.dg/vect/vect-multitypes-4.c: Likewise. * gcc.dg/vect/vect-multitypes-6.c: Likewise. * gcc.dg/vect/vect-peel-1-epilogue.c: Likewise. New test. * gcc.dg/vect/vect-peel-1-src.c: Likewise. New test. * gcc.dg/vect/vect-peel-1.c: Likewise. * gcc.dg/vect/vect-peel-3-epilogue.c: Likewise. New test. * gcc.dg/vect/vect-peel-3-src.c: Likewise. New test. * gcc.dg/vect/vect-peel-3.c: Likewise. * gcc.dg/vect/vect-peel-4-epilogue.c: Likewise. New test. * gcc.dg/vect/vect-peel-4-src.c: Likewise. New test. * gcc.dg/vect/vect-peel-4.c: Likewise. * gcc.dg/vect/vect-reduc-6.c: Likewise. * gcc.dg/vect/vect-reduc-dot-s16a.c: Likewise. * gcc.dg/vect/vect-reduc-dot-s8a.c: Likewise. * gcc.dg/vect/vect-reduc-dot-s8b.c:
Re: [PATCH 2/2][vect]Make vect-epilogues-nomask=1 default
On 8/23/19 10:50 AM, Andre Vieira (lists) wrote: > I am not sure whether this is the right thing to do, we might want to > enable this only for certain targets and if so, I also don't know how to > tackle the testing issue where all the tests that check the number of > times a dump mentions something will now depend on whether that test > enables epilogue vectorization or not. I was trying to avoid disabling > the option for all tests, since if we do that then we aren't really > testing it. Maybe we ought to enable the option for all tests, > regardless of the targets default. For testing purposes. In general we try to drive things with proper costing rather than enabling/disabling transformations based on the target. If we need to adjust cost models, then we're better off getting the bits in now to give developers a chance to make those adjustments. WRT testing. One approach would be to somehow indicate in the dump file that we're dealing with an epilogue by prefixing the messages. THen the scanner could distinguish between main loop vectorization and epilogue vectorization. I'm not sure how invasive that would be. I think the approach you've taken here is fine for now. jeff
Re: [PATCH 2/2][vect]Make vect-epilogues-nomask=1 default
On Fri, 23 Aug 2019, Andre Vieira (lists) wrote: > Hi, > > In this patch I turn epilogue vectorization on by default. I had to make > changes to the tests since the vectorizer dumps now show the analysis for both > the first and second vectorization. This required checks like > 'scan-tree-dump-times' to be raised to meet the new numbers. For some tests I > simply disable the epilogue vectorization, because otherwise it makes it very > difficult to test for the specific conditions the test was meant for. I'm not sure how reliable the updating will be since on x86_64 we now have 4 vector sizes (MMX, SSE, AVX, AVX512) and depending on what arch you enable you get possibly different epilogues vectorized? But then you are right, disabling epilogue vectorization for the whole testsuite seems bad. Appearantly there were not too many testcases affected, so maybe doing a more specific update like { scan-tree-dump-times "blah" 2 "vect" { target no_epilogue_vect } } { scan-tree-dump-times "blah" 2 "vect" { target vect_32B_16B } } { ... { target vect_64B_32B16B } } etc.? That is, your testcase updates should break archs with a single vector size? > Bootstrapped and regression tested on aarch64 and x86_64. Changing the default is OK, I'm less sure about the testsuite updates. Maybe the simplest solution is to disable it for the testsuite for now... > I am not sure whether this is the right thing to do, we might want to enable > this only for certain targets and if so, I also don't know how to tackle the > testing issue where all the tests that check the number of times a dump > mentions something will now depend on whether that test enables epilogue > vectorization or not. I was trying to avoid disabling the option for all > tests, since if we do that then we aren't really testing it. Maybe we ought to > enable the option for all tests, regardless of the targets default. For > testing purposes. > > Thoughts on this? I wonder if we can run a testcase for the testsuite coverage, ignoring all scan-tree-dump stuff somehow? Richard. > Cheers, > Andre > > gcc/ChangeLog: > > 2019-08-23 Andre Vieira > > * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default. > > gcc/testsuite/ChangeLog: > > 2019-08-23 Andre Vieira > > * gcc.dg/vect/fast-math-vect-call-1.c: Raise count for tree dump > scans. > * gcc.dg/vect/no-fast-math-vect16.c: Likewise. > * gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c: Likewise. > * gcc.dg/vect/no-scevccp-outer-7.c: Likewise. > * gcc.dg/vect/no-scevccp-vect-iv-3.c: Likewise. > * gcc.dg/vect/no-section-anchors-vect-31.c: Likewise. > * gcc.dg/vect/no-section-anchors-vect-64.c: Likewise. > * gcc.dg/vect/no-section-anchors-vect-66.c: Likewise. > * gcc.dg/vect/no-section-anchors-vect-68.c: Likewise. > * gcc.dg/vect/no-vfa-vect-depend-1.c: Likewise. > * gcc.dg/vect/no-vfa-vect-depend-2.c: Likewise. > * gcc.dg/vect/no-vfa-vect-depend-3.c: Likewise. > * gcc.dg/vect/no-vfa-vect-dv-2.c: Likewise. > * gcc.dg/vect/pr33804.c: Likewise. > * gcc.dg/vect/pr53773.c: Likewise. > * gcc.dg/vect/pr65947-1.c: Likewise. > * gcc.dg/vect/pr65947-13.c: Likewise. > * gcc.dg/vect/pr65947-14.c: Likewise. > * gcc.dg/vect/pr65947-4.c: Likewise. > * gcc.dg/vect/pr80631-1.c: Likewise. > * gcc.dg/vect/pr80631-2.c: Likewise. > * gcc.dg/vect/slp-25.c: Likewise. > * gcc.dg/vect/slp-reduc-2.c: Likewise. > * gcc.dg/vect/slp-reduc-5.c: Likewise. > * gcc.dg/vect/slp-reduc-6.c: Likewise. > * gcc.dg/vect/slp-widen-mult-half.c: Likewise. > * gcc.dg/vect/trapv-vect-reduc-4.c: Likewise. > * gcc.dg/vect/vect-103.c: Likewise. > * gcc.dg/vect/vect-109.c: Likewise. > * gcc.dg/vect/vect-119.c: Likewise. > * gcc.dg/vect/vect-26.c: Likewise. > * gcc.dg/vect/vect-27.c: Likewise. > * gcc.dg/vect/vect-29.c: Likewise. > * gcc.dg/vect/vect-42.c: Likewise. > * gcc.dg/vect/vect-44.c: Likewise. > * gcc.dg/vect/vect-48.c: Likewise. > * gcc.dg/vect/vect-50.c: Likewise. > * gcc.dg/vect/vect-52.c: Likewise. > * gcc.dg/vect/vect-54.c: Likewise. > * gcc.dg/vect/vect-56.c: Likewise. > * gcc.dg/vect/vect-58.c: Likewise. > * gcc.dg/vect/vect-60.c: Likewise. > * gcc.dg/vect/vect-72.c: Likewise. > * gcc.dg/vect/vect-75-big-array.c: Likewise. > * gcc.dg/vect/vect-75.c: Likewise. > * gcc.dg/vect/vect-77-alignchecks.c: Likewise. > * gcc.dg/vect/vect-77-global.c: Likewise. > * gcc.dg/vect/vect-78-alignchecks.c: Likewise. > * gcc.dg/vect/vect-78-global.c: Likewise. > * gcc.dg/vect/vect-89-big-array.c: Likewise. > * gcc.dg/vect/vect-89.c: Likewise. > * gcc.dg/vect/vect-91.c:
[PATCH 2/2][vect]Make vect-epilogues-nomask=1 default
Hi, In this patch I turn epilogue vectorization on by default. I had to make changes to the tests since the vectorizer dumps now show the analysis for both the first and second vectorization. This required checks like 'scan-tree-dump-times' to be raised to meet the new numbers. For some tests I simply disable the epilogue vectorization, because otherwise it makes it very difficult to test for the specific conditions the test was meant for. Bootstrapped and regression tested on aarch64 and x86_64. I am not sure whether this is the right thing to do, we might want to enable this only for certain targets and if so, I also don't know how to tackle the testing issue where all the tests that check the number of times a dump mentions something will now depend on whether that test enables epilogue vectorization or not. I was trying to avoid disabling the option for all tests, since if we do that then we aren't really testing it. Maybe we ought to enable the option for all tests, regardless of the targets default. For testing purposes. Thoughts on this? Cheers, Andre gcc/ChangeLog: 2019-08-23 Andre Vieira * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default. gcc/testsuite/ChangeLog: 2019-08-23 Andre Vieira * gcc.dg/vect/fast-math-vect-call-1.c: Raise count for tree dump scans. * gcc.dg/vect/no-fast-math-vect16.c: Likewise. * gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c: Likewise. * gcc.dg/vect/no-scevccp-outer-7.c: Likewise. * gcc.dg/vect/no-scevccp-vect-iv-3.c: Likewise. * gcc.dg/vect/no-section-anchors-vect-31.c: Likewise. * gcc.dg/vect/no-section-anchors-vect-64.c: Likewise. * gcc.dg/vect/no-section-anchors-vect-66.c: Likewise. * gcc.dg/vect/no-section-anchors-vect-68.c: Likewise. * gcc.dg/vect/no-vfa-vect-depend-1.c: Likewise. * gcc.dg/vect/no-vfa-vect-depend-2.c: Likewise. * gcc.dg/vect/no-vfa-vect-depend-3.c: Likewise. * gcc.dg/vect/no-vfa-vect-dv-2.c: Likewise. * gcc.dg/vect/pr33804.c: Likewise. * gcc.dg/vect/pr53773.c: Likewise. * gcc.dg/vect/pr65947-1.c: Likewise. * gcc.dg/vect/pr65947-13.c: Likewise. * gcc.dg/vect/pr65947-14.c: Likewise. * gcc.dg/vect/pr65947-4.c: Likewise. * gcc.dg/vect/pr80631-1.c: Likewise. * gcc.dg/vect/pr80631-2.c: Likewise. * gcc.dg/vect/slp-25.c: Likewise. * gcc.dg/vect/slp-reduc-2.c: Likewise. * gcc.dg/vect/slp-reduc-5.c: Likewise. * gcc.dg/vect/slp-reduc-6.c: Likewise. * gcc.dg/vect/slp-widen-mult-half.c: Likewise. * gcc.dg/vect/trapv-vect-reduc-4.c: Likewise. * gcc.dg/vect/vect-103.c: Likewise. * gcc.dg/vect/vect-109.c: Likewise. * gcc.dg/vect/vect-119.c: Likewise. * gcc.dg/vect/vect-26.c: Likewise. * gcc.dg/vect/vect-27.c: Likewise. * gcc.dg/vect/vect-29.c: Likewise. * gcc.dg/vect/vect-42.c: Likewise. * gcc.dg/vect/vect-44.c: Likewise. * gcc.dg/vect/vect-48.c: Likewise. * gcc.dg/vect/vect-50.c: Likewise. * gcc.dg/vect/vect-52.c: Likewise. * gcc.dg/vect/vect-54.c: Likewise. * gcc.dg/vect/vect-56.c: Likewise. * gcc.dg/vect/vect-58.c: Likewise. * gcc.dg/vect/vect-60.c: Likewise. * gcc.dg/vect/vect-72.c: Likewise. * gcc.dg/vect/vect-75-big-array.c: Likewise. * gcc.dg/vect/vect-75.c: Likewise. * gcc.dg/vect/vect-77-alignchecks.c: Likewise. * gcc.dg/vect/vect-77-global.c: Likewise. * gcc.dg/vect/vect-78-alignchecks.c: Likewise. * gcc.dg/vect/vect-78-global.c: Likewise. * gcc.dg/vect/vect-89-big-array.c: Likewise. * gcc.dg/vect/vect-89.c: Likewise. * gcc.dg/vect/vect-91.c: Likewise. * gcc.dg/vect/vect-92.c: Likewise. * gcc.dg/vect/vect-96.c: Likewise. * gcc.dg/vect/vect-alias-check-5.c: Likewise. * gcc.dg/vect/vect-live-2.c: Likewise. * gcc.dg/vect/vect-live-slp-1.c: Likewise. * gcc.dg/vect/vect-live-slp-3.c: Likewise. * gcc.dg/vect/vect-multitypes-1.c: Likewise. * gcc.dg/vect/vect-multitypes-3.c: Likewise. * gcc.dg/vect/vect-multitypes-4.c: Likewise. * gcc.dg/vect/vect-outer-3a-big-array.c: Likewise. * gcc.dg/vect/vect-outer-3a.c: Likewise. * gcc.dg/vect/vect-outer-4.c: Likewise. * gcc.dg/vect/vect-outer-4c-big-array.c: Likewise. * gcc.dg/vect/vect-outer-6.c: Likewise. * gcc.dg/vect/vect-peel-1.c: Likewise. * gcc.dg/vect/vect-peel-2.c: Likewise. * gcc.dg/vect/vect-peel-3.c: Likewise. * gcc.dg/vect/vect-peel-4.c: Likewise. * gcc.dg/vect/vect-reduc-6.c: Likewise. * gcc.dg/vect/vect-reduc-dot-s16a.c: Likewise. * gcc.dg/vect/vect-reduc-dot-s8a.c: Likewise. *