From 1297712fb4af6c6bfd827e0f0a9695b14669f87d Mon Sep 17 00:00:00 2001 From: Andre Vieira Date: Thu, 31 Oct 2019 09:49:47 +0000 Subject: [PATCH] [vect]Make vect-epilogues-nomask=1 default This patch turns epilogue vectorization on by default for all targets. The following test strategy was chosen for this: 1) Disable epilogue vectorization for all tests that failed due to scan-tree-dump failures for aarch64, arm and x86_64 inside: - gcc.dg/vect - gcc.target/i386 - gcc.target/aarch6 - gfortran.dg/vect 2) Add the Bugzilla's reported testcase but xfail the scan for "EPILOGUE VECTORIZED" for arm*-*-* as that target does not vectorize the epilogue. gcc/ChangeLog: 2019-10-31 Andre Vieira * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default. gcc/testsuite/ChangeLog: 2019-10-31 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: Likewise. * gcc.dg/vect/vect-reduc-dot-u16b.c: Likewise. * gcc.dg/vect/vect-reduc-dot-u8a.c: Likewise. * gcc.dg/vect/vect-reduc-dot-u8b.c: Likewise. * gcc.dg/vect/vect-reduc-pattern-1a.c: Likewise. * gcc.dg/vect/vect-reduc-pattern-1b-big-array.c: Likewise. * gcc.dg/vect/vect-reduc-pattern-1c-big-array.c: Likewise. * gcc.dg/vect/vect-reduc-pattern-2a.c: Likewise. * gcc.dg/vect/vect-reduc-pattern-2b-big-array.c: Likewise. * gcc.dg/vect/vect-reduc-sad.c: Likewise. * gcc.dg/vect/vect-widen-mult-const-s16.c: Likewise. * gcc.dg/vect/vect-widen-mult-const-u16.c: Likewise. * gcc.dg/vect/vect-widen-mult-half-u8.c: Likewise. * gcc.dg/vect/vect-widen-mult-half.c: Likewise. * gcc.dg/vect/vect-widen-mult-u16.c: Likewise. * gcc.dg/vect/vect-widen-mult-u8-s16-s32.c: Likewise. * gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c: Likewise. * gcc.target/aarch64/sve/reduc_strict_3.c: Likewise. * gcc.target/i386/avx-vzeroupper-19.c: Likewise. * gcc.target/i386/avx2-vect-mask-store-move1.c: Likewise. * gcc.target/i386/avx512f-gather-2.c: Likewise. * gcc.target/i386/avx512f-gather-5.c: Likewise. * gcc.target/i386/l_fma_double_1.c: Likewise. * gcc.target/i386/l_fma_double_2.c: Likewise. * gcc.target/i386/l_fma_double_3.c: Likewise. * gcc.target/i386/l_fma_double_4.c: Likewise. * gcc.target/i386/l_fma_double_5.c: Likewise. * gcc.target/i386/l_fma_double_6.c: Likewise. * gcc.target/i386/l_fma_float_1.c: Likewise. * gcc.target/i386/l_fma_float_2.c: Likewise. * gcc.target/i386/l_fma_float_3.c: Likewise. * gcc.target/i386/l_fma_float_4.c: Likewise. * gcc.target/i386/l_fma_float_5.c: Likewise. * gcc.target/i386/l_fma_float_6.c: Likewise. * gcc.target/i386/mask-pack.c: Likewise. * gcc.target/i386/mask-unpack.c: Likewise. * gfortran.dg/vect/vect-4.f90: Likewise. From-SVN: r277659 --- gcc/ChangeLog | 4 + gcc/params.def | 2 +- gcc/testsuite/ChangeLog | 119 ++++++++++++++++++ .../gcc.dg/vect/fast-math-vect-call-1.c | 2 + .../gcc.dg/vect/no-fast-math-vect16.c | 2 + .../vect/no-scevccp-noreassoc-slp-reduc-7.c | 2 + .../gcc.dg/vect/no-scevccp-vect-iv-3.c | 2 + .../gcc.dg/vect/no-section-anchors-vect-31.c | 2 + .../gcc.dg/vect/no-section-anchors-vect-64.c | 2 + .../gcc.dg/vect/no-section-anchors-vect-66.c | 2 + .../gcc.dg/vect/no-section-anchors-vect-68.c | 2 + gcc/testsuite/gcc.dg/vect/no-vfa-vect-dv-2.c | 2 + gcc/testsuite/gcc.dg/vect/pr33804.c | 2 + gcc/testsuite/gcc.dg/vect/pr53773.c | 2 + gcc/testsuite/gcc.dg/vect/pr65947-1.c | 2 + gcc/testsuite/gcc.dg/vect/pr65947-13.c | 2 + gcc/testsuite/gcc.dg/vect/pr65947-14.c | 2 + gcc/testsuite/gcc.dg/vect/pr65947-4.c | 2 + gcc/testsuite/gcc.dg/vect/pr80631-1.c | 2 + gcc/testsuite/gcc.dg/vect/pr80631-2.c | 2 + gcc/testsuite/gcc.dg/vect/slp-23.c | 2 + gcc/testsuite/gcc.dg/vect/slp-25.c | 2 + gcc/testsuite/gcc.dg/vect/slp-reduc-2.c | 2 + gcc/testsuite/gcc.dg/vect/slp-reduc-5.c | 2 + gcc/testsuite/gcc.dg/vect/slp-reduc-6.c | 2 + gcc/testsuite/gcc.dg/vect/slp-reduc-sad-2.c | 2 + .../gcc.dg/vect/slp-widen-mult-half.c | 2 + .../gcc.dg/vect/trapv-vect-reduc-4.c | 2 + gcc/testsuite/gcc.dg/vect/vect-103.c | 2 + gcc/testsuite/gcc.dg/vect/vect-109.c | 2 + gcc/testsuite/gcc.dg/vect/vect-119.c | 2 + gcc/testsuite/gcc.dg/vect/vect-24.c | 2 + gcc/testsuite/gcc.dg/vect/vect-26.c | 2 + gcc/testsuite/gcc.dg/vect/vect-27.c | 2 + gcc/testsuite/gcc.dg/vect/vect-29.c | 2 + gcc/testsuite/gcc.dg/vect/vect-42.c | 2 + gcc/testsuite/gcc.dg/vect/vect-44.c | 2 + gcc/testsuite/gcc.dg/vect/vect-48.c | 2 + gcc/testsuite/gcc.dg/vect/vect-50.c | 2 + gcc/testsuite/gcc.dg/vect/vect-52.c | 2 + gcc/testsuite/gcc.dg/vect/vect-54.c | 2 + gcc/testsuite/gcc.dg/vect/vect-56.c | 2 + gcc/testsuite/gcc.dg/vect/vect-58.c | 2 + gcc/testsuite/gcc.dg/vect/vect-60.c | 2 + gcc/testsuite/gcc.dg/vect/vect-72.c | 2 + gcc/testsuite/gcc.dg/vect/vect-75-big-array.c | 2 + gcc/testsuite/gcc.dg/vect/vect-75.c | 2 + .../gcc.dg/vect/vect-77-alignchecks.c | 2 + gcc/testsuite/gcc.dg/vect/vect-77-global.c | 2 + .../gcc.dg/vect/vect-78-alignchecks.c | 2 + gcc/testsuite/gcc.dg/vect/vect-78-global.c | 2 + gcc/testsuite/gcc.dg/vect/vect-89-big-array.c | 2 + gcc/testsuite/gcc.dg/vect/vect-89.c | 2 + gcc/testsuite/gcc.dg/vect/vect-91.c | 2 + gcc/testsuite/gcc.dg/vect/vect-92.c | 2 + gcc/testsuite/gcc.dg/vect/vect-96.c | 2 + gcc/testsuite/gcc.dg/vect/vect-cond-reduc-3.c | 2 + gcc/testsuite/gcc.dg/vect/vect-cond-reduc-4.c | 2 + gcc/testsuite/gcc.dg/vect/vect-epilogues.c | 19 +++ gcc/testsuite/gcc.dg/vect/vect-live-1.c | 2 + gcc/testsuite/gcc.dg/vect/vect-live-2.c | 2 + gcc/testsuite/gcc.dg/vect/vect-live-3.c | 2 + gcc/testsuite/gcc.dg/vect/vect-live-4.c | 2 + gcc/testsuite/gcc.dg/vect/vect-live-slp-1.c | 2 + gcc/testsuite/gcc.dg/vect/vect-live-slp-2.c | 2 + gcc/testsuite/gcc.dg/vect/vect-live-slp-3.c | 2 + gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c | 2 + gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c | 2 + gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c | 2 + .../gcc.dg/vect/vect-peel-1-epilogue.c | 3 + gcc/testsuite/gcc.dg/vect/vect-peel-1-src.c | 48 +++++++ gcc/testsuite/gcc.dg/vect/vect-peel-1.c | 49 +------- .../gcc.dg/vect/vect-peel-3-epilogue.c | 4 + gcc/testsuite/gcc.dg/vect/vect-peel-3-src.c | 58 +++++++++ gcc/testsuite/gcc.dg/vect/vect-peel-3.c | 61 +-------- .../gcc.dg/vect/vect-peel-4-epilogue.c | 4 + gcc/testsuite/gcc.dg/vect/vect-peel-4-src.c | 45 +++++++ gcc/testsuite/gcc.dg/vect/vect-peel-4.c | 46 +------ gcc/testsuite/gcc.dg/vect/vect-reduc-6.c | 2 + .../gcc.dg/vect/vect-reduc-dot-s16a.c | 2 + .../gcc.dg/vect/vect-reduc-dot-s8a.c | 2 + .../gcc.dg/vect/vect-reduc-dot-s8b.c | 2 + .../gcc.dg/vect/vect-reduc-dot-u16b.c | 2 + .../gcc.dg/vect/vect-reduc-dot-u8a.c | 2 + .../gcc.dg/vect/vect-reduc-dot-u8b.c | 2 + .../gcc.dg/vect/vect-reduc-pattern-1a.c | 2 + .../vect/vect-reduc-pattern-1b-big-array.c | 2 + .../vect/vect-reduc-pattern-1c-big-array.c | 2 + .../gcc.dg/vect/vect-reduc-pattern-2a.c | 2 + .../vect/vect-reduc-pattern-2b-big-array.c | 2 + gcc/testsuite/gcc.dg/vect/vect-reduc-sad.c | 2 + .../gcc.dg/vect/vect-widen-mult-const-s16.c | 2 + .../gcc.dg/vect/vect-widen-mult-const-u16.c | 2 + .../gcc.dg/vect/vect-widen-mult-half-u8.c | 2 + .../gcc.dg/vect/vect-widen-mult-half.c | 2 + .../gcc.dg/vect/vect-widen-mult-u16.c | 2 + .../gcc.dg/vect/vect-widen-mult-u8-s16-s32.c | 2 + .../gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c | 2 + .../gcc.target/aarch64/sve/reduc_strict_3.c | 2 + .../gcc.target/i386/avx-vzeroupper-19.c | 2 + .../i386/avx2-vect-mask-store-move1.c | 2 + .../gcc.target/i386/avx512f-gather-2.c | 2 + .../gcc.target/i386/avx512f-gather-5.c | 2 + .../gcc.target/i386/l_fma_double_1.c | 2 + .../gcc.target/i386/l_fma_double_2.c | 2 + .../gcc.target/i386/l_fma_double_3.c | 2 + .../gcc.target/i386/l_fma_double_4.c | 2 + .../gcc.target/i386/l_fma_double_5.c | 2 + .../gcc.target/i386/l_fma_double_6.c | 2 + gcc/testsuite/gcc.target/i386/l_fma_float_1.c | 2 + gcc/testsuite/gcc.target/i386/l_fma_float_2.c | 2 + gcc/testsuite/gcc.target/i386/l_fma_float_3.c | 2 + gcc/testsuite/gcc.target/i386/l_fma_float_4.c | 2 + gcc/testsuite/gcc.target/i386/l_fma_float_5.c | 2 + gcc/testsuite/gcc.target/i386/l_fma_float_6.c | 2 + gcc/testsuite/gcc.target/i386/mask-pack.c | 2 + gcc/testsuite/gcc.target/i386/mask-unpack.c | 2 + gcc/testsuite/gfortran.dg/vect/vect-4.f90 | 2 + 118 files changed, 524 insertions(+), 148 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/vect/vect-epilogues.c create mode 100644 gcc/testsuite/gcc.dg/vect/vect-peel-1-epilogue.c create mode 100644 gcc/testsuite/gcc.dg/vect/vect-peel-1-src.c create mode 100644 gcc/testsuite/gcc.dg/vect/vect-peel-3-epilogue.c create mode 100644 gcc/testsuite/gcc.dg/vect/vect-peel-3-src.c create mode 100644 gcc/testsuite/gcc.dg/vect/vect-peel-4-epilogue.c create mode 100644 gcc/testsuite/gcc.dg/vect/vect-peel-4-src.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 38f6f11af26..bc1df777c49 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2019-10-31 Andre Vieira + + * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default. + 2019-10-31 Martin Liska * config/arm/arm.c (arm_get_pcs_model): Remove usage diff --git a/gcc/params.def b/gcc/params.def index 7928f6f071e..942447d77e6 100644 --- a/gcc/params.def +++ b/gcc/params.def @@ -1434,7 +1434,7 @@ DEFPARAM (PARAM_MAX_VRP_SWITCH_ASSERTIONS, DEFPARAM (PARAM_VECT_EPILOGUES_NOMASK, "vect-epilogues-nomask", "Enable loop epilogue vectorization using smaller vector size.", - 0, 0, 1) + 1, 0, 1) DEFPARAM(PARAM_UNROLL_JAM_MIN_PERCENT, "unroll-jam-min-percent", diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fe2c48acf5c..7f8acf8b52b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,122 @@ +2019-10-31 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: Likewise. + * gcc.dg/vect/vect-reduc-dot-u16b.c: Likewise. + * gcc.dg/vect/vect-reduc-dot-u8a.c: Likewise. + * gcc.dg/vect/vect-reduc-dot-u8b.c: Likewise. + * gcc.dg/vect/vect-reduc-pattern-1a.c: Likewise. + * gcc.dg/vect/vect-reduc-pattern-1b-big-array.c: Likewise. + * gcc.dg/vect/vect-reduc-pattern-1c-big-array.c: Likewise. + * gcc.dg/vect/vect-reduc-pattern-2a.c: Likewise. + * gcc.dg/vect/vect-reduc-pattern-2b-big-array.c: Likewise. + * gcc.dg/vect/vect-reduc-sad.c: Likewise. + * gcc.dg/vect/vect-widen-mult-const-s16.c: Likewise. + * gcc.dg/vect/vect-widen-mult-const-u16.c: Likewise. + * gcc.dg/vect/vect-widen-mult-half-u8.c: Likewise. + * gcc.dg/vect/vect-widen-mult-half.c: Likewise. + * gcc.dg/vect/vect-widen-mult-u16.c: Likewise. + * gcc.dg/vect/vect-widen-mult-u8-s16-s32.c: Likewise. + * gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c: Likewise. + * gcc.target/aarch64/sve/reduc_strict_3.c: Likewise. + * gcc.target/i386/avx-vzeroupper-19.c: Likewise. + * gcc.target/i386/avx2-vect-mask-store-move1.c: Likewise. + * gcc.target/i386/avx512f-gather-2.c: Likewise. + * gcc.target/i386/avx512f-gather-5.c: Likewise. + * gcc.target/i386/l_fma_double_1.c: Likewise. + * gcc.target/i386/l_fma_double_2.c: Likewise. + * gcc.target/i386/l_fma_double_3.c: Likewise. + * gcc.target/i386/l_fma_double_4.c: Likewise. + * gcc.target/i386/l_fma_double_5.c: Likewise. + * gcc.target/i386/l_fma_double_6.c: Likewise. + * gcc.target/i386/l_fma_float_1.c: Likewise. + * gcc.target/i386/l_fma_float_2.c: Likewise. + * gcc.target/i386/l_fma_float_3.c: Likewise. + * gcc.target/i386/l_fma_float_4.c: Likewise. + * gcc.target/i386/l_fma_float_5.c: Likewise. + * gcc.target/i386/l_fma_float_6.c: Likewise. + * gcc.target/i386/mask-pack.c: Likewise. + * gcc.target/i386/mask-unpack.c: Likewise. + * gfortran.dg/vect/vect-4.f90: Likewise. + 2019-10-30 Jakub Jelinek PR c++/91369 - Implement P0784R7: constexpr new diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-call-1.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-call-1.c index 228190ab05d..877de4eb5be 100644 --- a/gcc/testsuite/gcc.dg/vect/fast-math-vect-call-1.c +++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-call-1.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ #include "tree-vect.h" extern float copysignf (float, float); diff --git a/gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c b/gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c index 7a148e41d51..5f871289337 100644 --- a/gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c +++ b/gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_float_strict } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c b/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c index 1d674504e2c..022d49f1175 100644 --- a/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c +++ b/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c b/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c index 50b4998bb6c..7049e4936b9 100644 --- a/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c +++ b/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-require-effective-target vect_int } */ diff --git a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c index c3b242157ce..d2ae7976781 100644 --- a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c +++ b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options bind_pic_locally } */ diff --git a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c index 470bbfb5537..243e01e6dad 100644 --- a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c +++ b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options bind_pic_locally } */ diff --git a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c index 805024d8058..e339590bacb 100644 --- a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c +++ b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c index 726c0de652f..c403a8302d8 100644 --- a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c +++ b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-skip-if "AArch64 tiny code model does not support programs larger than 1MiB" {aarch64_tiny} } */ /* { dg-add-options bind_pic_locally } */ diff --git a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-dv-2.c b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-dv-2.c index 4513c40b34f..dcb53701795 100644 --- a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-dv-2.c +++ b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-dv-2.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/pr33804.c b/gcc/testsuite/gcc.dg/vect/pr33804.c index 86babbe60e7..0db13674b42 100644 --- a/gcc/testsuite/gcc.dg/vect/pr33804.c +++ b/gcc/testsuite/gcc.dg/vect/pr33804.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-require-effective-target vect_int } */ diff --git a/gcc/testsuite/gcc.dg/vect/pr53773.c b/gcc/testsuite/gcc.dg/vect/pr53773.c index 0bcc021767e..7f8229571ec 100644 --- a/gcc/testsuite/gcc.dg/vect/pr53773.c +++ b/gcc/testsuite/gcc.dg/vect/pr53773.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-additional-options "-fdump-tree-optimized" } */ diff --git a/gcc/testsuite/gcc.dg/vect/pr65947-1.c b/gcc/testsuite/gcc.dg/vect/pr65947-1.c index 8ebc385053c..9fc74a1ab28 100644 --- a/gcc/testsuite/gcc.dg/vect/pr65947-1.c +++ b/gcc/testsuite/gcc.dg/vect/pr65947-1.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_condition } */ #include "tree-vect.h" diff --git a/gcc/testsuite/gcc.dg/vect/pr65947-13.c b/gcc/testsuite/gcc.dg/vect/pr65947-13.c index b0755c0be65..a703923151d 100644 --- a/gcc/testsuite/gcc.dg/vect/pr65947-13.c +++ b/gcc/testsuite/gcc.dg/vect/pr65947-13.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_condition } */ #include "tree-vect.h" diff --git a/gcc/testsuite/gcc.dg/vect/pr65947-14.c b/gcc/testsuite/gcc.dg/vect/pr65947-14.c index c0df587e7fa..3b76fda2122 100644 --- a/gcc/testsuite/gcc.dg/vect/pr65947-14.c +++ b/gcc/testsuite/gcc.dg/vect/pr65947-14.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_condition } */ #include "tree-vect.h" diff --git a/gcc/testsuite/gcc.dg/vect/pr65947-4.c b/gcc/testsuite/gcc.dg/vect/pr65947-4.c index 99f9765038a..471fbe2da21 100644 --- a/gcc/testsuite/gcc.dg/vect/pr65947-4.c +++ b/gcc/testsuite/gcc.dg/vect/pr65947-4.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_condition } */ #include "tree-vect.h" diff --git a/gcc/testsuite/gcc.dg/vect/pr80631-1.c b/gcc/testsuite/gcc.dg/vect/pr80631-1.c index f430debb09d..cbb9a6ff69a 100644 --- a/gcc/testsuite/gcc.dg/vect/pr80631-1.c +++ b/gcc/testsuite/gcc.dg/vect/pr80631-1.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* PR tree-optimization/80631 */ #include "tree-vect.h" diff --git a/gcc/testsuite/gcc.dg/vect/pr80631-2.c b/gcc/testsuite/gcc.dg/vect/pr80631-2.c index ca786f6f647..61e11316af2 100644 --- a/gcc/testsuite/gcc.dg/vect/pr80631-2.c +++ b/gcc/testsuite/gcc.dg/vect/pr80631-2.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* PR tree-optimization/80631 */ #include "tree-vect.h" diff --git a/gcc/testsuite/gcc.dg/vect/slp-23.c b/gcc/testsuite/gcc.dg/vect/slp-23.c index 7d330c787d1..d7c67fe2c6e 100644 --- a/gcc/testsuite/gcc.dg/vect/slp-23.c +++ b/gcc/testsuite/gcc.dg/vect/slp-23.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/slp-25.c b/gcc/testsuite/gcc.dg/vect/slp-25.c index ff7eff202cb..1c33927c434 100644 --- a/gcc/testsuite/gcc.dg/vect/slp-25.c +++ b/gcc/testsuite/gcc.dg/vect/slp-25.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options bind_pic_locally } */ diff --git a/gcc/testsuite/gcc.dg/vect/slp-reduc-2.c b/gcc/testsuite/gcc.dg/vect/slp-reduc-2.c index 07c96c00eb0..15dd59922fc 100644 --- a/gcc/testsuite/gcc.dg/vect/slp-reduc-2.c +++ b/gcc/testsuite/gcc.dg/vect/slp-reduc-2.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/slp-reduc-5.c b/gcc/testsuite/gcc.dg/vect/slp-reduc-5.c index fc689e46ba1..f457c11aa3c 100644 --- a/gcc/testsuite/gcc.dg/vect/slp-reduc-5.c +++ b/gcc/testsuite/gcc.dg/vect/slp-reduc-5.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/slp-reduc-6.c b/gcc/testsuite/gcc.dg/vect/slp-reduc-6.c index 88591c5bdcb..1fd15aa3c87 100644 --- a/gcc/testsuite/gcc.dg/vect/slp-reduc-6.c +++ b/gcc/testsuite/gcc.dg/vect/slp-reduc-6.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/slp-reduc-sad-2.c b/gcc/testsuite/gcc.dg/vect/slp-reduc-sad-2.c index 5179fcc104d..7d9255e48f2 100644 --- a/gcc/testsuite/gcc.dg/vect/slp-reduc-sad-2.c +++ b/gcc/testsuite/gcc.dg/vect/slp-reduc-sad-2.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-require-effective-target vect_usad_char } */ /* With AVX256 or more we do not pull off the trick eliding the epilogue. */ diff --git a/gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c b/gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c index f5fb63e19f1..e3bfee33348 100644 --- a/gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c +++ b/gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include "tree-vect.h" diff --git a/gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c b/gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c index 8a57eb69a91..f09c964fdc1 100644 --- a/gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c +++ b/gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-require-effective-target vect_int } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-103.c b/gcc/testsuite/gcc.dg/vect/vect-103.c index 4a9e1574eb0..2a4510482d4 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-103.c +++ b/gcc/testsuite/gcc.dg/vect/vect-103.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-109.c b/gcc/testsuite/gcc.dg/vect/vect-109.c index 9a507105899..ac5d0827899 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-109.c +++ b/gcc/testsuite/gcc.dg/vect/vect-109.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-skip-if "" { vect_no_align } } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options bind_pic_locally } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-119.c b/gcc/testsuite/gcc.dg/vect/vect-119.c index aa8c3002bff..29a9c51cd29 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-119.c +++ b/gcc/testsuite/gcc.dg/vect/vect-119.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-require-effective-target vect_int } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-24.c b/gcc/testsuite/gcc.dg/vect/vect-24.c index cbff6c55fa4..fa4c0620d29 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-24.c +++ b/gcc/testsuite/gcc.dg/vect/vect-24.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-26.c b/gcc/testsuite/gcc.dg/vect/vect-26.c index 4f0472b5d0f..8a141f38400 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-26.c +++ b/gcc/testsuite/gcc.dg/vect/vect-26.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-27.c b/gcc/testsuite/gcc.dg/vect/vect-27.c index 590217feee7..ac86b21aceb 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-27.c +++ b/gcc/testsuite/gcc.dg/vect/vect-27.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options bind_pic_locally } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-29.c b/gcc/testsuite/gcc.dg/vect/vect-29.c index 86ec2cc1ddf..bbd446dfe63 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-29.c +++ b/gcc/testsuite/gcc.dg/vect/vect-29.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options bind_pic_locally } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-42.c b/gcc/testsuite/gcc.dg/vect/vect-42.c index a65b4a62276..086cbf20c0a 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-42.c +++ b/gcc/testsuite/gcc.dg/vect/vect-42.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_float } */ /* { dg-add-options double_vectors } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-44.c b/gcc/testsuite/gcc.dg/vect/vect-44.c index 03ef2c0f671..f7f1fd28665 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-44.c +++ b/gcc/testsuite/gcc.dg/vect/vect-44.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_float } */ /* { dg-additional-options "--param vect-max-peeling-for-alignment=0" } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-48.c b/gcc/testsuite/gcc.dg/vect/vect-48.c index bac6ef6b8dd..b29fe47635a 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-48.c +++ b/gcc/testsuite/gcc.dg/vect/vect-48.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_float } */ /* { dg-add-options double_vectors } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-50.c b/gcc/testsuite/gcc.dg/vect/vect-50.c index c9500ca91e5..f43676896af 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-50.c +++ b/gcc/testsuite/gcc.dg/vect/vect-50.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_float } */ /* { dg-additional-options "--param vect-max-peeling-for-alignment=0" } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-52.c b/gcc/testsuite/gcc.dg/vect/vect-52.c index 0343d9a24d1..c20a4be2ede 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-52.c +++ b/gcc/testsuite/gcc.dg/vect/vect-52.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_float } */ /* { dg-add-options double_vectors } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-54.c b/gcc/testsuite/gcc.dg/vect/vect-54.c index 58201abe069..2b236e48e19 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-54.c +++ b/gcc/testsuite/gcc.dg/vect/vect-54.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_float } */ /* { dg-add-options double_vectors } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-56.c b/gcc/testsuite/gcc.dg/vect/vect-56.c index 8060b05e781..c914126ece5 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-56.c +++ b/gcc/testsuite/gcc.dg/vect/vect-56.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_float } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-58.c b/gcc/testsuite/gcc.dg/vect/vect-58.c index 441af51860e..da4f9740e33 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-58.c +++ b/gcc/testsuite/gcc.dg/vect/vect-58.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_float } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-60.c b/gcc/testsuite/gcc.dg/vect/vect-60.c index 3b7477c96ab..121c503c63a 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-60.c +++ b/gcc/testsuite/gcc.dg/vect/vect-60.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_float } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-72.c b/gcc/testsuite/gcc.dg/vect/vect-72.c index 472d8d57549..9e8e91b7ae6 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-72.c +++ b/gcc/testsuite/gcc.dg/vect/vect-72.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options bind_pic_locally } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-75-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-75-big-array.c index 42b2b8d91aa..a3fb5053037 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-75-big-array.c +++ b/gcc/testsuite/gcc.dg/vect/vect-75-big-array.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-75.c b/gcc/testsuite/gcc.dg/vect/vect-75.c index 2cdd7032242..88da97f0bb7 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-75.c +++ b/gcc/testsuite/gcc.dg/vect/vect-75.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-77-alignchecks.c b/gcc/testsuite/gcc.dg/vect/vect-77-alignchecks.c index 56ee797d10b..fb3e4992782 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-77-alignchecks.c +++ b/gcc/testsuite/gcc.dg/vect/vect-77-alignchecks.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-77-global.c b/gcc/testsuite/gcc.dg/vect/vect-77-global.c index f0b73505d68..1580d6e075b 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-77-global.c +++ b/gcc/testsuite/gcc.dg/vect/vect-77-global.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options bind_pic_locally } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-78-alignchecks.c b/gcc/testsuite/gcc.dg/vect/vect-78-alignchecks.c index c3ef8a36591..57e8da0a909 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-78-alignchecks.c +++ b/gcc/testsuite/gcc.dg/vect/vect-78-alignchecks.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-78-global.c b/gcc/testsuite/gcc.dg/vect/vect-78-global.c index 241e7fa94b5..ea039b389b2 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-78-global.c +++ b/gcc/testsuite/gcc.dg/vect/vect-78-global.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options bind_pic_locally } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-89-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-89-big-array.c index decfbee318a..59e1aae0017 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-89-big-array.c +++ b/gcc/testsuite/gcc.dg/vect/vect-89-big-array.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-89.c b/gcc/testsuite/gcc.dg/vect/vect-89.c index 051698eada2..356ab96d330 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-89.c +++ b/gcc/testsuite/gcc.dg/vect/vect-89.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-91.c b/gcc/testsuite/gcc.dg/vect/vect-91.c index 9430da3290a..91264d9841d 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-91.c +++ b/gcc/testsuite/gcc.dg/vect/vect-91.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-require-effective-target vect_int } */ /* { dg-additional-options "--param vect-max-peeling-for-alignment=0" } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-92.c b/gcc/testsuite/gcc.dg/vect/vect-92.c index b9a1ce23d02..9ceb0fbadcd 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-92.c +++ b/gcc/testsuite/gcc.dg/vect/vect-92.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_float } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-96.c b/gcc/testsuite/gcc.dg/vect/vect-96.c index 0cb935b9f16..c0d6c37b21d 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-96.c +++ b/gcc/testsuite/gcc.dg/vect/vect-96.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options double_vectors } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-cond-reduc-3.c b/gcc/testsuite/gcc.dg/vect/vect-cond-reduc-3.c index de9921cfcec..bb99b95eca5 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-cond-reduc-3.c +++ b/gcc/testsuite/gcc.dg/vect/vect-cond-reduc-3.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_condition } */ /* { dg-require-effective-target vect_float } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-cond-reduc-4.c b/gcc/testsuite/gcc.dg/vect/vect-cond-reduc-4.c index 543504f6b0a..8820075b1dc 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-cond-reduc-4.c +++ b/gcc/testsuite/gcc.dg/vect/vect-cond-reduc-4.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_condition } */ /* { dg-require-effective-target vect_double } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-epilogues.c b/gcc/testsuite/gcc.dg/vect/vect-epilogues.c new file mode 100644 index 00000000000..946666e918f --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-epilogues.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ + +/* Copied from PR 88915. */ +void pixel_avg( unsigned char *dst, int i_dst_stride, + unsigned char *src1, int i_src1_stride, + unsigned char *src2, int i_src2_stride, + int i_width, int i_height ) + { + for( int y = 0; y < i_height; y++ ) + { + for( int x = 0; x < i_width; x++ ) + dst[x] = ( src1[x] + src2[x] + 1 ) >> 1; + dst += i_dst_stride; + src1 += i_src1_stride; + src2 += i_src2_stride; + } + } + +/* { dg-final { scan-tree-dump "LOOP EPILOGUE VECTORIZED" "vect" { xfail { arm*-*-* } } } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-live-1.c b/gcc/testsuite/gcc.dg/vect/vect-live-1.c index e170875d7ab..f628c5d3998 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-live-1.c +++ b/gcc/testsuite/gcc.dg/vect/vect-live-1.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-additional-options "-fno-tree-scev-cprop" } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-live-2.c b/gcc/testsuite/gcc.dg/vect/vect-live-2.c index a6daa61829e..19d8c22859e 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-live-2.c +++ b/gcc/testsuite/gcc.dg/vect/vect-live-2.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_long } */ /* { dg-require-effective-target vect_shift } */ /* { dg-additional-options "-fno-tree-scev-cprop" } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-live-3.c b/gcc/testsuite/gcc.dg/vect/vect-live-3.c index 3ffa5166f45..8f5ccb27365 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-live-3.c +++ b/gcc/testsuite/gcc.dg/vect/vect-live-3.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include "tree-vect.h" diff --git a/gcc/testsuite/gcc.dg/vect/vect-live-4.c b/gcc/testsuite/gcc.dg/vect/vect-live-4.c index 21cc27320ac..553ffcd49f7 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-live-4.c +++ b/gcc/testsuite/gcc.dg/vect/vect-live-4.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include "tree-vect.h" diff --git a/gcc/testsuite/gcc.dg/vect/vect-live-slp-1.c b/gcc/testsuite/gcc.dg/vect/vect-live-slp-1.c index aff37c100f0..965437c8f03 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-live-slp-1.c +++ b/gcc/testsuite/gcc.dg/vect/vect-live-slp-1.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-additional-options "-fno-tree-scev-cprop" } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-live-slp-2.c b/gcc/testsuite/gcc.dg/vect/vect-live-slp-2.c index 35689665b54..0d2f17f9003 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-live-slp-2.c +++ b/gcc/testsuite/gcc.dg/vect/vect-live-slp-2.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-additional-options "-fno-tree-scev-cprop" } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-live-slp-3.c b/gcc/testsuite/gcc.dg/vect/vect-live-slp-3.c index 854116fa36e..a3f60f6ce6d 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-live-slp-3.c +++ b/gcc/testsuite/gcc.dg/vect/vect-live-slp-3.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_long } */ /* { dg-additional-options "-fno-tree-scev-cprop" } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c b/gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c index 18bf5e80917..1f82121df06 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c +++ b/gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options double_vectors } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c b/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c index 43887865bf4..b0f74083f2b 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c +++ b/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options bind_pic_locally } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c b/gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c index b47a93ab326..864b17ac640 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c +++ b/gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options double_vectors } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-peel-1-epilogue.c b/gcc/testsuite/gcc.dg/vect/vect-peel-1-epilogue.c new file mode 100644 index 00000000000..cc23c6b0866 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-peel-1-epilogue.c @@ -0,0 +1,3 @@ +/* { dg-require-effective-target vect_int } */ + +#include "vect-peel-1-src.c" diff --git a/gcc/testsuite/gcc.dg/vect/vect-peel-1-src.c b/gcc/testsuite/gcc.dg/vect/vect-peel-1-src.c new file mode 100644 index 00000000000..7980d4dd643 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-peel-1-src.c @@ -0,0 +1,48 @@ +#include +#include "tree-vect.h" + +#define N 128 + +int ib[N+7]; + +__attribute__ ((noinline)) +int main1 () +{ + int i; + int ia[N+1]; + + /* All the accesses are misaligned. With cost model disabled, we + count the number of aligned accesses for each peeling option, and + in this case we align the two loads if possible (i.e., if + misaligned stores are supported). */ + for (i = 1; i <= N; i++) + { + ia[i] = ib[i+2] + ib[i+6]; + } + + /* check results: */ + for (i = 1; i <= N; i++) + { + if (ia[i] != ib[i+2] + ib[i+6]) + abort (); + } + + return 0; +} + +int main (void) +{ + int i; + + check_vect (); + + for (i = 0; i <= N+6; i++) + { + asm volatile ("" : "+r" (i)); + ib[i] = i; + } + + return main1 (); +} + + diff --git a/gcc/testsuite/gcc.dg/vect/vect-peel-1.c b/gcc/testsuite/gcc.dg/vect/vect-peel-1.c index fae99ab0b08..a7660a381c4 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-peel-1.c +++ b/gcc/testsuite/gcc.dg/vect/vect-peel-1.c @@ -1,51 +1,8 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ -#include -#include "tree-vect.h" - -#define N 128 - -int ib[N+7]; - -__attribute__ ((noinline)) -int main1 () -{ - int i; - int ia[N+1]; - - /* All the accesses are misaligned. With cost model disabled, we - count the number of aligned accesses for each peeling option, and - in this case we align the two loads if possible (i.e., if - misaligned stores are supported). */ - for (i = 1; i <= N; i++) - { - ia[i] = ib[i+2] + ib[i+6]; - } - - /* check results: */ - for (i = 1; i <= N; i++) - { - if (ia[i] != ib[i+2] + ib[i+6]) - abort (); - } - - return 0; -} - -int main (void) -{ - int i; - - check_vect (); - - for (i = 0; i <= N+6; i++) - { - asm volatile ("" : "+r" (i)); - ib[i] = i; - } - - return main1 (); -} +#include "vect-peel-1-src.c" /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { target { { vect_element_align } && { vect_aligned_arrays } } xfail { ! vect_unaligned_possible } } } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-peel-3-epilogue.c b/gcc/testsuite/gcc.dg/vect/vect-peel-3-epilogue.c new file mode 100644 index 00000000000..8af0fcdca0e --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-peel-3-epilogue.c @@ -0,0 +1,4 @@ +/* { dg-require-effective-target vect_int } */ +/* { dg-add-options bind_pic_locally } */ + +#include "vect-peel-3-src.c" diff --git a/gcc/testsuite/gcc.dg/vect/vect-peel-3-src.c b/gcc/testsuite/gcc.dg/vect/vect-peel-3-src.c new file mode 100644 index 00000000000..a21ce8c3d6a --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-peel-3-src.c @@ -0,0 +1,58 @@ +#include +#include "tree-vect.h" + +#if VECTOR_BITS > 128 +#define NINTS (VECTOR_BITS / 32) +#define EXTRA (NINTS * 2) +#else +#define NINTS 4 +#define EXTRA 10 +#endif + +#define N 128 + +#define RES_A (N * N / 4) +#define RES_B (N * (N + 1) / 2 + (NINTS + 3) * (N + 1)) +#define RES_C (N * (N + 1) / 2 + (N + 1)) +#define RES (RES_A + RES_B + RES_C) + +int ib[N + EXTRA]; +int ia[N + EXTRA]; +int ic[N + EXTRA]; + +__attribute__ ((noinline)) +int main1 () +{ + int i, suma = 0, sumb = 0, sumc = 0; + + /* ib and ic have same misalignment, we peel to align them. */ + for (i = 0; i <= N; i++) + { + suma += ia[i]; + sumb += ib[i + NINTS + 1]; + sumc += ic[i + 1]; + } + + /* check results: */ + if (suma + sumb + sumc != RES) + abort (); + + return 0; +} + +int main (void) +{ + int i; + + check_vect (); + + for (i = 0; i < N + EXTRA; i++) + { + asm volatile ("" : "+r" (i)); + ib[i] = i; + ic[i] = i+2; + ia[i] = i/2; + } + + return main1 (); +} diff --git a/gcc/testsuite/gcc.dg/vect/vect-peel-3.c b/gcc/testsuite/gcc.dg/vect/vect-peel-3.c index d5c0cf10ce1..2cd99573fd1 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-peel-3.c +++ b/gcc/testsuite/gcc.dg/vect/vect-peel-3.c @@ -1,64 +1,9 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options bind_pic_locally } */ -#include -#include "tree-vect.h" - -#if VECTOR_BITS > 128 -#define NINTS (VECTOR_BITS / 32) -#define EXTRA (NINTS * 2) -#else -#define NINTS 4 -#define EXTRA 10 -#endif - -#define N 128 - -#define RES_A (N * N / 4) -#define RES_B (N * (N + 1) / 2 + (NINTS + 3) * (N + 1)) -#define RES_C (N * (N + 1) / 2 + (N + 1)) -#define RES (RES_A + RES_B + RES_C) - -int ib[N + EXTRA]; -int ia[N + EXTRA]; -int ic[N + EXTRA]; - -__attribute__ ((noinline)) -int main1 () -{ - int i, suma = 0, sumb = 0, sumc = 0; - - /* ib and ic have same misalignment, we peel to align them. */ - for (i = 0; i <= N; i++) - { - suma += ia[i]; - sumb += ib[i + NINTS + 1]; - sumc += ic[i + 1]; - } - - /* check results: */ - if (suma + sumb + sumc != RES) - abort (); - - return 0; -} - -int main (void) -{ - int i; - - check_vect (); - - for (i = 0; i < N + EXTRA; i++) - { - asm volatile ("" : "+r" (i)); - ib[i] = i; - ic[i] = i+2; - ia[i] = i/2; - } - - return main1 (); -} +#include "vect-peel-3-src.c" /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { { ! vect_unaligned_possible } || vect_sizes_32B_16B } } } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-peel-4-epilogue.c b/gcc/testsuite/gcc.dg/vect/vect-peel-4-epilogue.c new file mode 100644 index 00000000000..783982f04f6 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-peel-4-epilogue.c @@ -0,0 +1,4 @@ +/* { dg-require-effective-target vect_int } */ +/* { dg-add-options bind_pic_locally } */ + +#include "vect-peel-4-src.c" diff --git a/gcc/testsuite/gcc.dg/vect/vect-peel-4-src.c b/gcc/testsuite/gcc.dg/vect/vect-peel-4-src.c new file mode 100644 index 00000000000..33088fb0902 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-peel-4-src.c @@ -0,0 +1,45 @@ +#include +#include "tree-vect.h" + +#define N 128 + +int ib[N+7]; +int ia[N+1]; + +__attribute__ ((noinline)) +int main1 () +{ + int i; + + /* Don't peel keeping one load and the store aligned. */ + for (i = 0; i <= N; i++) + { + ia[i] = ib[i] + ib[i+5]; + } + + /* check results: */ + for (i = 1; i <= N; i++) + { + if (ia[i] != ib[i] + ib[i+5]) + abort (); + } + + return 0; +} + +int main (void) +{ + int i; + + check_vect (); + + for (i = 0; i <= N+6; i++) + { + asm volatile ("" : "+r" (i)); + ib[i] = i; + } + + return main1 (); +} + + diff --git a/gcc/testsuite/gcc.dg/vect/vect-peel-4.c b/gcc/testsuite/gcc.dg/vect/vect-peel-4.c index 88f9f0ddcba..3b5272f284f 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-peel-4.c +++ b/gcc/testsuite/gcc.dg/vect/vect-peel-4.c @@ -1,49 +1,9 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-add-options bind_pic_locally } */ -#include -#include "tree-vect.h" - -#define N 128 - -int ib[N+7]; -int ia[N+1]; - -__attribute__ ((noinline)) -int main1 () -{ - int i; - - /* Don't peel keeping one load and the store aligned. */ - for (i = 0; i <= N; i++) - { - ia[i] = ib[i] + ib[i+5]; - } - - /* check results: */ - for (i = 1; i <= N; i++) - { - if (ia[i] != ib[i] + ib[i+5]) - abort (); - } - - return 0; -} - -int main (void) -{ - int i; - - check_vect (); - - for (i = 0; i <= N+6; i++) - { - asm volatile ("" : "+r" (i)); - ib[i] = i; - } - - return main1 (); -} +#include "vect-peel-4-src.c" /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { ! vect_unaligned_possible } } } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-6.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-6.c index ad148046a8e..cc0d9694a4f 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-6.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-6.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_float_strict } */ /* { dg-additional-options "-fno-fast-math" } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c index 171451872e5..ffbc9706901 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c index ac674749b6f..05e343ad782 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-require-effective-target arm_v8_2a_dotprod_neon_hw { target { aarch64*-*-* || arm*-*-* } } } */ /* { dg-additional-options "-march=armv8.2-a+dotprod" { target { aarch64*-*-* } } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c index b55cf6f64b6..82c648cc73c 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c index 57e18040cf2..0fc112012cf 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c index d020f643bb8..e23ebd9b072 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-require-effective-target arm_v8_2a_dotprod_neon_hw { target { aarch64*-*-* || arm*-*-* } } } */ /* { dg-additional-options "-march=armv8.2-a+dotprod" { target { aarch64*-*-* } } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c index 3155d97b3cd..288be13440d 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c index b06b234072b..1ddbe96ebc3 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c index be03c7d011d..7ae2c838344 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c index c30c85ce911..91ce0ef934e 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c index a98edd3045a..2190eaa6242 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c index 570e56a8c9b..6ad645b3bdd 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-sad.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-sad.c index a033a7d27d1..2f0bb692564 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-sad.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-sad.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_usad_char } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c b/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c index 89f983cad06..4c95dd20179 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c +++ b/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-additional-options "-fno-ipa-icf" } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-u16.c b/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-u16.c index e319699cd92..4075f815cea 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-u16.c +++ b/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-u16.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-additional-options "-fno-ipa-icf" } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half-u8.c b/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half-u8.c index ee0538c0635..c4ac88e186d 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half-u8.c +++ b/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half-u8.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ /* { dg-additional-options "-fno-ipa-icf" } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half.c b/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half.c index 6d74c693316..ebbf4f5e841 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half.c +++ b/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include "tree-vect.h" diff --git a/gcc/testsuite/gcc.dg/vect/vect-widen-mult-u16.c b/gcc/testsuite/gcc.dg/vect/vect-widen-mult-u16.c index 942f63d6f31..2e28baae0b8 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-widen-mult-u16.c +++ b/gcc/testsuite/gcc.dg/vect/vect-widen-mult-u16.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8-s16-s32.c b/gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8-s16-s32.c index 98f78d3b37a..d277f0b2b94 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8-s16-s32.c +++ b/gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8-s16-s32.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c b/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c index 176f183f3ce..6fc7a282351 100644 --- a/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c +++ b/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_int } */ #include diff --git a/gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_3.c b/gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_3.c index a815c93bceb..9ddd9128c0d 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_3.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_3.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O2 -ftree-vectorize -fno-inline -msve-vector-bits=256 -fdump-tree-vect-details" } */ diff --git a/gcc/testsuite/gcc.target/i386/avx-vzeroupper-19.c b/gcc/testsuite/gcc.target/i386/avx-vzeroupper-19.c index ae2f8611ea6..9d926ca5dfe 100644 --- a/gcc/testsuite/gcc.target/i386/avx-vzeroupper-19.c +++ b/gcc/testsuite/gcc.target/i386/avx-vzeroupper-19.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O3 -mavx -mtune=generic -dp" } */ diff --git a/gcc/testsuite/gcc.target/i386/avx2-vect-mask-store-move1.c b/gcc/testsuite/gcc.target/i386/avx2-vect-mask-store-move1.c index 2a105601c71..51765900fcf 100644 --- a/gcc/testsuite/gcc.target/i386/avx2-vect-mask-store-move1.c +++ b/gcc/testsuite/gcc.target/i386/avx2-vect-mask-store-move1.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-options "-O3 -mavx2 -fdump-tree-vect-details" } */ /* { dg-require-effective-target avx2 } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-gather-2.c b/gcc/testsuite/gcc.target/i386/avx512f-gather-2.c index a26aa6529e8..4de04511934 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-gather-2.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-gather-2.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* PR59617 */ /* { dg-options "-O3 -mavx512f -fdump-tree-vect-details -mtune=knl" } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-gather-5.c b/gcc/testsuite/gcc.target/i386/avx512f-gather-5.c index 2bb9c5c090b..946117d9d30 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-gather-5.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-gather-5.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O3 -mavx512f -mtune=knl" } */ diff --git a/gcc/testsuite/gcc.target/i386/l_fma_double_1.c b/gcc/testsuite/gcc.target/i386/l_fma_double_1.c index e5bcdabcf79..2472fb016ee 100644 --- a/gcc/testsuite/gcc.target/i386/l_fma_double_1.c +++ b/gcc/testsuite/gcc.target/i386/l_fma_double_1.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */ diff --git a/gcc/testsuite/gcc.target/i386/l_fma_double_2.c b/gcc/testsuite/gcc.target/i386/l_fma_double_2.c index dbd078abc81..3d569733b1e 100644 --- a/gcc/testsuite/gcc.target/i386/l_fma_double_2.c +++ b/gcc/testsuite/gcc.target/i386/l_fma_double_2.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */ diff --git a/gcc/testsuite/gcc.target/i386/l_fma_double_3.c b/gcc/testsuite/gcc.target/i386/l_fma_double_3.c index d0844f208e5..8e5ec4150cc 100644 --- a/gcc/testsuite/gcc.target/i386/l_fma_double_3.c +++ b/gcc/testsuite/gcc.target/i386/l_fma_double_3.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */ diff --git a/gcc/testsuite/gcc.target/i386/l_fma_double_4.c b/gcc/testsuite/gcc.target/i386/l_fma_double_4.c index b9498a0ff13..0d2a0408d0b 100644 --- a/gcc/testsuite/gcc.target/i386/l_fma_double_4.c +++ b/gcc/testsuite/gcc.target/i386/l_fma_double_4.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */ diff --git a/gcc/testsuite/gcc.target/i386/l_fma_double_5.c b/gcc/testsuite/gcc.target/i386/l_fma_double_5.c index 0292ba040a3..fcf1a6ceac1 100644 --- a/gcc/testsuite/gcc.target/i386/l_fma_double_5.c +++ b/gcc/testsuite/gcc.target/i386/l_fma_double_5.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */ diff --git a/gcc/testsuite/gcc.target/i386/l_fma_double_6.c b/gcc/testsuite/gcc.target/i386/l_fma_double_6.c index a716006eda8..650e608117f 100644 --- a/gcc/testsuite/gcc.target/i386/l_fma_double_6.c +++ b/gcc/testsuite/gcc.target/i386/l_fma_double_6.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */ diff --git a/gcc/testsuite/gcc.target/i386/l_fma_float_1.c b/gcc/testsuite/gcc.target/i386/l_fma_float_1.c index b386b83e39a..c29198ba666 100644 --- a/gcc/testsuite/gcc.target/i386/l_fma_float_1.c +++ b/gcc/testsuite/gcc.target/i386/l_fma_float_1.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */ diff --git a/gcc/testsuite/gcc.target/i386/l_fma_float_2.c b/gcc/testsuite/gcc.target/i386/l_fma_float_2.c index 81193b2d8b1..cb38b77344f 100644 --- a/gcc/testsuite/gcc.target/i386/l_fma_float_2.c +++ b/gcc/testsuite/gcc.target/i386/l_fma_float_2.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */ diff --git a/gcc/testsuite/gcc.target/i386/l_fma_float_3.c b/gcc/testsuite/gcc.target/i386/l_fma_float_3.c index d86cb904357..10a350e9e10 100644 --- a/gcc/testsuite/gcc.target/i386/l_fma_float_3.c +++ b/gcc/testsuite/gcc.target/i386/l_fma_float_3.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */ diff --git a/gcc/testsuite/gcc.target/i386/l_fma_float_4.c b/gcc/testsuite/gcc.target/i386/l_fma_float_4.c index 68ca8388d70..020e5d86f35 100644 --- a/gcc/testsuite/gcc.target/i386/l_fma_float_4.c +++ b/gcc/testsuite/gcc.target/i386/l_fma_float_4.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */ diff --git a/gcc/testsuite/gcc.target/i386/l_fma_float_5.c b/gcc/testsuite/gcc.target/i386/l_fma_float_5.c index 4db4749c024..3ff23c17aab 100644 --- a/gcc/testsuite/gcc.target/i386/l_fma_float_5.c +++ b/gcc/testsuite/gcc.target/i386/l_fma_float_5.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */ diff --git a/gcc/testsuite/gcc.target/i386/l_fma_float_6.c b/gcc/testsuite/gcc.target/i386/l_fma_float_6.c index 0b86e6256bd..34671baa28a 100644 --- a/gcc/testsuite/gcc.target/i386/l_fma_float_6.c +++ b/gcc/testsuite/gcc.target/i386/l_fma_float_6.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-O3 -Wno-attributes -mfpmath=sse -mfma -mtune=generic -mno-fma4" } */ diff --git a/gcc/testsuite/gcc.target/i386/mask-pack.c b/gcc/testsuite/gcc.target/i386/mask-pack.c index 0b564ef4284..a607dfb460c 100644 --- a/gcc/testsuite/gcc.target/i386/mask-pack.c +++ b/gcc/testsuite/gcc.target/i386/mask-pack.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-mavx512bw -O3 -fopenmp-simd -fdump-tree-vect-details" } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 10 "vect" } } */ diff --git a/gcc/testsuite/gcc.target/i386/mask-unpack.c b/gcc/testsuite/gcc.target/i386/mask-unpack.c index 4291480cfff..ca71ea2e29d 100644 --- a/gcc/testsuite/gcc.target/i386/mask-unpack.c +++ b/gcc/testsuite/gcc.target/i386/mask-unpack.c @@ -1,3 +1,5 @@ +/* Disabling epilogues until we find a better way to deal with scans. */ +/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-do compile } */ /* { dg-options "-mavx512bw -mavx512dq -mno-stackrealign -O3 -fopenmp-simd -fdump-tree-vect-details" } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 10 "vect" } } */ diff --git a/gcc/testsuite/gfortran.dg/vect/vect-4.f90 b/gcc/testsuite/gfortran.dg/vect/vect-4.f90 index b567cbd8644..c2eeafd3900 100644 --- a/gcc/testsuite/gfortran.dg/vect/vect-4.f90 +++ b/gcc/testsuite/gfortran.dg/vect/vect-4.f90 @@ -1,3 +1,5 @@ +! Disabling epilogues until we find a better way to deal with scans. +! { dg-additional-options "--param vect-epilogues-nomask=0" } ! { dg-do compile } ! { dg-require-effective-target vect_float } ! { dg-additional-options "--param vect-max-peeling-for-alignment=0" } -- 2.30.2