Fix profile update after prologue peeling in vectorizer
commit1762957384c659a2e6827939ce4b1f1d1ad40003
authorJan Hubicka <jh@suse.cz>
Tue, 1 Aug 2023 10:07:39 +0000 (1 12:07 +0200)
committerJan Hubicka <jh@suse.cz>
Tue, 1 Aug 2023 10:07:39 +0000 (1 12:07 +0200)
tree2afc4e4de9d6f32774b9433381e7f6485f495697
parent63663e4e69527b308687c63bacb0cc038b386593
Fix profile update after prologue peeling in vectorizer

This patch fixes update after constant peeling in profilogue.  We now reached 0 profile
update bugs on tramp3d vectorizaiton and also on quite few testcases, so I am enabling the
testuiste checks so we do not regress again.

gcc/ChangeLog:

* tree-vect-loop-manip.cc (vect_do_peeling): Fix profile update after
constant prologue peeling.

gcc/testsuite/ChangeLog:

* gcc.dg/vect/vect-1-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-1.c: Check profile consistency.
* gcc.dg/vect/vect-10-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-10.c: Check profile consistency.
* gcc.dg/vect/vect-100.c: Check profile consistency.
* gcc.dg/vect/vect-103.c: Check profile consistency.
* gcc.dg/vect/vect-104.c: Check profile consistency.
* gcc.dg/vect/vect-105-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-105.c: Check profile consistency.
* gcc.dg/vect/vect-106.c: Check profile consistency.
* gcc.dg/vect/vect-107.c: Check profile consistency.
* gcc.dg/vect/vect-108.c: Check profile consistency.
* gcc.dg/vect/vect-109.c: Check profile consistency.
* gcc.dg/vect/vect-11.c: Check profile consistency.
* gcc.dg/vect/vect-110.c: Check profile consistency.
* gcc.dg/vect/vect-112-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-112.c: Check profile consistency.
* gcc.dg/vect/vect-113.c: Check profile consistency.
* gcc.dg/vect/vect-114.c: Check profile consistency.
* gcc.dg/vect/vect-115.c: Check profile consistency.
* gcc.dg/vect/vect-116.c: Check profile consistency.
* gcc.dg/vect/vect-117.c: Check profile consistency.
* gcc.dg/vect/vect-118.c: Check profile consistency.
* gcc.dg/vect/vect-119.c: Check profile consistency.
* gcc.dg/vect/vect-11a.c: Check profile consistency.
* gcc.dg/vect/vect-12.c: Check profile consistency.
* gcc.dg/vect/vect-120.c: Check profile consistency.
* gcc.dg/vect/vect-121.c: Check profile consistency.
* gcc.dg/vect/vect-122.c: Check profile consistency.
* gcc.dg/vect/vect-123.c: Check profile consistency.
* gcc.dg/vect/vect-124.c: Check profile consistency.
* gcc.dg/vect/vect-126.c: Check profile consistency.
* gcc.dg/vect/vect-13.c: Check profile consistency.
* gcc.dg/vect/vect-14.c: Check profile consistency.
* gcc.dg/vect/vect-15-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-15.c: Check profile consistency.
* gcc.dg/vect/vect-17.c: Check profile consistency.
* gcc.dg/vect/vect-18.c: Check profile consistency.
* gcc.dg/vect/vect-19.c: Check profile consistency.
* gcc.dg/vect/vect-2-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-2.c: Check profile consistency.
* gcc.dg/vect/vect-20.c: Check profile consistency.
* gcc.dg/vect/vect-21.c: Check profile consistency.
* gcc.dg/vect/vect-22.c: Check profile consistency.
* gcc.dg/vect/vect-23.c: Check profile consistency.
* gcc.dg/vect/vect-24.c: Check profile consistency.
* gcc.dg/vect/vect-25.c: Check profile consistency.
* gcc.dg/vect/vect-26.c: Check profile consistency.
* gcc.dg/vect/vect-27.c: Check profile consistency.
* gcc.dg/vect/vect-28.c: Check profile consistency.
* gcc.dg/vect/vect-29.c: Check profile consistency.
* gcc.dg/vect/vect-3.c: Check profile consistency.
* gcc.dg/vect/vect-30.c: Check profile consistency.
* gcc.dg/vect/vect-31-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-31.c: Check profile consistency.
* gcc.dg/vect/vect-32-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-32-chars.c: Check profile consistency.
* gcc.dg/vect/vect-32.c: Check profile consistency.
* gcc.dg/vect/vect-33-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-33.c: Check profile consistency.
* gcc.dg/vect/vect-34-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-34.c: Check profile consistency.
* gcc.dg/vect/vect-35-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-35.c: Check profile consistency.
* gcc.dg/vect/vect-36-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-36.c: Check profile consistency.
* gcc.dg/vect/vect-38.c: Check profile consistency.
* gcc.dg/vect/vect-4.c: Check profile consistency.
* gcc.dg/vect/vect-40.c: Check profile consistency.
* gcc.dg/vect/vect-42.c: Check profile consistency.
* gcc.dg/vect/vect-44.c: Check profile consistency.
* gcc.dg/vect/vect-46.c: Check profile consistency.
* gcc.dg/vect/vect-48.c: Check profile consistency.
* gcc.dg/vect/vect-5.c: Check profile consistency.
* gcc.dg/vect/vect-50.c: Check profile consistency.
* gcc.dg/vect/vect-52.c: Check profile consistency.
* gcc.dg/vect/vect-54.c: Check profile consistency.
* gcc.dg/vect/vect-56.c: Check profile consistency.
* gcc.dg/vect/vect-58.c: Check profile consistency.
* gcc.dg/vect/vect-6-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-6.c: Check profile consistency.
* gcc.dg/vect/vect-60.c: Check profile consistency.
* gcc.dg/vect/vect-62.c: Check profile consistency.
* gcc.dg/vect/vect-63.c: Check profile consistency.
* gcc.dg/vect/vect-64.c: Check profile consistency.
* gcc.dg/vect/vect-65.c: Check profile consistency.
* gcc.dg/vect/vect-66.c: Check profile consistency.
* gcc.dg/vect/vect-67.c: Check profile consistency.
* gcc.dg/vect/vect-68.c: Check profile consistency.
* gcc.dg/vect/vect-7.c: Check profile consistency.
* gcc.dg/vect/vect-70.c: Check profile consistency.
* gcc.dg/vect/vect-71.c: Check profile consistency.
* gcc.dg/vect/vect-72.c: Check profile consistency.
* gcc.dg/vect/vect-73-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-73.c: Check profile consistency.
* gcc.dg/vect/vect-74-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-74.c: Check profile consistency.
* gcc.dg/vect/vect-75-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-75.c: Check profile consistency.
* gcc.dg/vect/vect-76-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-76.c: Check profile consistency.
* gcc.dg/vect/vect-77-alignchecks.c: Check profile consistency.
* gcc.dg/vect/vect-77-global.c: Check profile consistency.
* gcc.dg/vect/vect-77.c: Check profile consistency.
* gcc.dg/vect/vect-78-alignchecks.c: Check profile consistency.
* gcc.dg/vect/vect-78-global.c: Check profile consistency.
* gcc.dg/vect/vect-78.c: Check profile consistency.
* gcc.dg/vect/vect-8.c: Check profile consistency.
* gcc.dg/vect/vect-80-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-80.c: Check profile consistency.
* gcc.dg/vect/vect-82.c: Check profile consistency.
* gcc.dg/vect/vect-82_64.c: Check profile consistency.
* gcc.dg/vect/vect-83.c: Check profile consistency.
* gcc.dg/vect/vect-83_64.c: Check profile consistency.
* gcc.dg/vect/vect-85-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-85.c: Check profile consistency.
* gcc.dg/vect/vect-86.c: Check profile consistency.
* gcc.dg/vect/vect-87.c: Check profile consistency.
* gcc.dg/vect/vect-88.c: Check profile consistency.
* gcc.dg/vect/vect-89-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-89.c: Check profile consistency.
* gcc.dg/vect/vect-9.c: Check profile consistency.
* gcc.dg/vect/vect-91.c: Check profile consistency.
* gcc.dg/vect/vect-92.c: Check profile consistency.
* gcc.dg/vect/vect-93.c: Check profile consistency.
* gcc.dg/vect/vect-95.c: Check profile consistency.
* gcc.dg/vect/vect-96.c: Check profile consistency.
* gcc.dg/vect/vect-97-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-97.c: Check profile consistency.
* gcc.dg/vect/vect-98-big-array.c: Check profile consistency.
* gcc.dg/vect/vect-98.c: Check profile consistency.
* gcc.dg/vect/vect-99.c: Check profile consistency.
133 files changed:
gcc/testsuite/gcc.dg/vect/vect-1-big-array.c
gcc/testsuite/gcc.dg/vect/vect-1.c
gcc/testsuite/gcc.dg/vect/vect-10-big-array.c
gcc/testsuite/gcc.dg/vect/vect-10.c
gcc/testsuite/gcc.dg/vect/vect-100.c
gcc/testsuite/gcc.dg/vect/vect-103.c
gcc/testsuite/gcc.dg/vect/vect-104.c
gcc/testsuite/gcc.dg/vect/vect-105-big-array.c
gcc/testsuite/gcc.dg/vect/vect-105.c
gcc/testsuite/gcc.dg/vect/vect-106.c
gcc/testsuite/gcc.dg/vect/vect-107.c
gcc/testsuite/gcc.dg/vect/vect-108.c
gcc/testsuite/gcc.dg/vect/vect-109.c
gcc/testsuite/gcc.dg/vect/vect-11.c
gcc/testsuite/gcc.dg/vect/vect-110.c
gcc/testsuite/gcc.dg/vect/vect-112-big-array.c
gcc/testsuite/gcc.dg/vect/vect-112.c
gcc/testsuite/gcc.dg/vect/vect-113.c
gcc/testsuite/gcc.dg/vect/vect-114.c
gcc/testsuite/gcc.dg/vect/vect-115.c
gcc/testsuite/gcc.dg/vect/vect-116.c
gcc/testsuite/gcc.dg/vect/vect-117.c
gcc/testsuite/gcc.dg/vect/vect-118.c
gcc/testsuite/gcc.dg/vect/vect-119.c
gcc/testsuite/gcc.dg/vect/vect-11a.c
gcc/testsuite/gcc.dg/vect/vect-12.c
gcc/testsuite/gcc.dg/vect/vect-120.c
gcc/testsuite/gcc.dg/vect/vect-121.c
gcc/testsuite/gcc.dg/vect/vect-122.c
gcc/testsuite/gcc.dg/vect/vect-123.c
gcc/testsuite/gcc.dg/vect/vect-124.c
gcc/testsuite/gcc.dg/vect/vect-126.c
gcc/testsuite/gcc.dg/vect/vect-13.c
gcc/testsuite/gcc.dg/vect/vect-14.c
gcc/testsuite/gcc.dg/vect/vect-15-big-array.c
gcc/testsuite/gcc.dg/vect/vect-15.c
gcc/testsuite/gcc.dg/vect/vect-17.c
gcc/testsuite/gcc.dg/vect/vect-18.c
gcc/testsuite/gcc.dg/vect/vect-19.c
gcc/testsuite/gcc.dg/vect/vect-2-big-array.c
gcc/testsuite/gcc.dg/vect/vect-2.c
gcc/testsuite/gcc.dg/vect/vect-20.c
gcc/testsuite/gcc.dg/vect/vect-21.c
gcc/testsuite/gcc.dg/vect/vect-22.c
gcc/testsuite/gcc.dg/vect/vect-23.c
gcc/testsuite/gcc.dg/vect/vect-24.c
gcc/testsuite/gcc.dg/vect/vect-25.c
gcc/testsuite/gcc.dg/vect/vect-26.c
gcc/testsuite/gcc.dg/vect/vect-27.c
gcc/testsuite/gcc.dg/vect/vect-28.c
gcc/testsuite/gcc.dg/vect/vect-29.c
gcc/testsuite/gcc.dg/vect/vect-3.c
gcc/testsuite/gcc.dg/vect/vect-30.c
gcc/testsuite/gcc.dg/vect/vect-31-big-array.c
gcc/testsuite/gcc.dg/vect/vect-31.c
gcc/testsuite/gcc.dg/vect/vect-32-big-array.c
gcc/testsuite/gcc.dg/vect/vect-32-chars.c
gcc/testsuite/gcc.dg/vect/vect-32.c
gcc/testsuite/gcc.dg/vect/vect-33-big-array.c
gcc/testsuite/gcc.dg/vect/vect-33.c
gcc/testsuite/gcc.dg/vect/vect-34-big-array.c
gcc/testsuite/gcc.dg/vect/vect-34.c
gcc/testsuite/gcc.dg/vect/vect-35-big-array.c
gcc/testsuite/gcc.dg/vect/vect-35.c
gcc/testsuite/gcc.dg/vect/vect-36-big-array.c
gcc/testsuite/gcc.dg/vect/vect-36.c
gcc/testsuite/gcc.dg/vect/vect-38.c
gcc/testsuite/gcc.dg/vect/vect-4.c
gcc/testsuite/gcc.dg/vect/vect-40.c
gcc/testsuite/gcc.dg/vect/vect-42.c
gcc/testsuite/gcc.dg/vect/vect-44.c
gcc/testsuite/gcc.dg/vect/vect-46.c
gcc/testsuite/gcc.dg/vect/vect-48.c
gcc/testsuite/gcc.dg/vect/vect-5.c
gcc/testsuite/gcc.dg/vect/vect-50.c
gcc/testsuite/gcc.dg/vect/vect-52.c
gcc/testsuite/gcc.dg/vect/vect-54.c
gcc/testsuite/gcc.dg/vect/vect-56.c
gcc/testsuite/gcc.dg/vect/vect-58.c
gcc/testsuite/gcc.dg/vect/vect-6-big-array.c
gcc/testsuite/gcc.dg/vect/vect-6.c
gcc/testsuite/gcc.dg/vect/vect-60.c
gcc/testsuite/gcc.dg/vect/vect-62.c
gcc/testsuite/gcc.dg/vect/vect-63.c
gcc/testsuite/gcc.dg/vect/vect-64.c
gcc/testsuite/gcc.dg/vect/vect-65.c
gcc/testsuite/gcc.dg/vect/vect-66.c
gcc/testsuite/gcc.dg/vect/vect-67.c
gcc/testsuite/gcc.dg/vect/vect-68.c
gcc/testsuite/gcc.dg/vect/vect-7.c
gcc/testsuite/gcc.dg/vect/vect-70.c
gcc/testsuite/gcc.dg/vect/vect-71.c
gcc/testsuite/gcc.dg/vect/vect-72.c
gcc/testsuite/gcc.dg/vect/vect-73-big-array.c
gcc/testsuite/gcc.dg/vect/vect-73.c
gcc/testsuite/gcc.dg/vect/vect-74-big-array.c
gcc/testsuite/gcc.dg/vect/vect-74.c
gcc/testsuite/gcc.dg/vect/vect-75-big-array.c
gcc/testsuite/gcc.dg/vect/vect-75.c
gcc/testsuite/gcc.dg/vect/vect-76-big-array.c
gcc/testsuite/gcc.dg/vect/vect-76.c
gcc/testsuite/gcc.dg/vect/vect-77-alignchecks.c
gcc/testsuite/gcc.dg/vect/vect-77-global.c
gcc/testsuite/gcc.dg/vect/vect-77.c
gcc/testsuite/gcc.dg/vect/vect-78-alignchecks.c
gcc/testsuite/gcc.dg/vect/vect-78-global.c
gcc/testsuite/gcc.dg/vect/vect-78.c
gcc/testsuite/gcc.dg/vect/vect-8.c
gcc/testsuite/gcc.dg/vect/vect-80-big-array.c
gcc/testsuite/gcc.dg/vect/vect-80.c
gcc/testsuite/gcc.dg/vect/vect-82.c
gcc/testsuite/gcc.dg/vect/vect-82_64.c
gcc/testsuite/gcc.dg/vect/vect-83.c
gcc/testsuite/gcc.dg/vect/vect-83_64.c
gcc/testsuite/gcc.dg/vect/vect-85-big-array.c
gcc/testsuite/gcc.dg/vect/vect-85.c
gcc/testsuite/gcc.dg/vect/vect-86.c
gcc/testsuite/gcc.dg/vect/vect-87.c
gcc/testsuite/gcc.dg/vect/vect-88.c
gcc/testsuite/gcc.dg/vect/vect-89-big-array.c
gcc/testsuite/gcc.dg/vect/vect-89.c
gcc/testsuite/gcc.dg/vect/vect-9.c
gcc/testsuite/gcc.dg/vect/vect-91.c
gcc/testsuite/gcc.dg/vect/vect-92.c
gcc/testsuite/gcc.dg/vect/vect-93.c
gcc/testsuite/gcc.dg/vect/vect-95.c
gcc/testsuite/gcc.dg/vect/vect-96.c
gcc/testsuite/gcc.dg/vect/vect-97-big-array.c
gcc/testsuite/gcc.dg/vect/vect-97.c
gcc/testsuite/gcc.dg/vect/vect-98-big-array.c
gcc/testsuite/gcc.dg/vect/vect-98.c
gcc/testsuite/gcc.dg/vect/vect-99.c
gcc/tree-vect-loop-manip.cc