Skip to content

Commit

Permalink
Fix profile update after prologue peeling in vectorizer
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Jan Hubicka committed Aug 1, 2023
1 parent 63663e4 commit 1762957
Show file tree
Hide file tree
Showing 133 changed files with 271 additions and 38 deletions.
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-1-big-array.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-do compile } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */
/* { dg-require-effective-target vect_int } */
/* { dg-require-effective-target vect_float } */

Expand Down Expand Up @@ -88,3 +89,4 @@ foo (int n)

/* { dg-final { scan-tree-dump-times "vectorized 6 loops" 1 "vect" { target vect_strided2 } } } */
/* { dg-final { scan-tree-dump-times "vectorized 5 loops" 1 "vect" { xfail vect_strided2 } } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-1.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-do compile } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */
/* { dg-require-effective-target vect_int } */
/* { dg-require-effective-target vect_float } */

Expand Down Expand Up @@ -88,3 +89,4 @@ foo (int n)

/* { dg-final { scan-tree-dump-times "vectorized 6 loops" 1 "vect" { target vect_strided2 } } } */
/* { dg-final { scan-tree-dump-times "vectorized 5 loops" 1 "vect" { xfail vect_strided2 } } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-10-big-array.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-do compile } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */
/* { dg-require-effective-target vect_int } */

extern void abort (void);
Expand Down Expand Up @@ -31,3 +32,4 @@ int foo ()
}

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { ! vect_strided2 } } } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-10.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-do compile } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */
/* { dg-require-effective-target vect_int } */

#define N 16
Expand All @@ -23,3 +24,4 @@ int foo ()
}

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { ! vect_strided2 } } } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-100.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdlib.h>
#include <stdarg.h>
Expand Down Expand Up @@ -77,3 +78,4 @@ int main (void)
/* Requires versioning. */
/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 0 "vect" } } */

/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
3 changes: 2 additions & 1 deletion gcc/testsuite/gcc.dg/vect/vect-103.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Disabling epilogues until we find a better way to deal with scans. */
/* { dg-additional-options "--param vect-epilogues-nomask=0" } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks --param vect-epilogues-nomask=0" } */
/* { dg-require-effective-target vect_int } */

#include <stdlib.h>
Expand Down Expand Up @@ -58,3 +58,4 @@ int main (void)
}

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
3 changes: 2 additions & 1 deletion gcc/testsuite/gcc.dg/vect/vect-104.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "--param max-completely-peel-times=1" } */
/* { dg-additional-options "--param max-completely-peel-times=1 -fdump-tree-optimized-details-blocks" } */

#include <stdlib.h>
#include <stdarg.h>
Expand Down Expand Up @@ -65,3 +65,4 @@ int main (void)
/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump "possible dependence between data-refs" "vect" { target vect_multiple_sizes } } } */

/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-105-big-array.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdlib.h>
#include <stdarg.h>
Expand Down Expand Up @@ -95,3 +96,4 @@ int main (void)
/* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 2 "vect" { target { vect_no_align && { ! vect_hw_misalign } } } } } */
/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 0 "vect" } } */

/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-105.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdlib.h>
#include <stdarg.h>
Expand Down Expand Up @@ -65,3 +66,4 @@ int main (void)
/* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 2 "vect" { target { vect_no_align && { ! vect_hw_misalign } } } } } */
/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 0 "vect" } } */

/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-106.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdlib.h>
#include <stdarg.h>
Expand Down Expand Up @@ -70,3 +71,4 @@ int main (void)

/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */

/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-107.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_float } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -42,3 +43,4 @@ int main (void)

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided2 } } } */
/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { xfail vect_strided2 } } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-108.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int_mult } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -38,3 +39,4 @@ int main (void)

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */

/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
3 changes: 2 additions & 1 deletion gcc/testsuite/gcc.dg/vect/vect-109.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Disabling epilogues until we find a better way to deal with scans. */
/* { dg-additional-options "--param vect-epilogues-nomask=0" } */
/* { dg-additional-options "--param vect-epilogues-nomask=0 -fdump-tree-optimized-details-blocks" } */
/* { dg-skip-if "" { vect_no_align } } */
/* { dg-require-effective-target vect_int } */
/* { dg-add-options bind_pic_locally } */
Expand Down Expand Up @@ -80,3 +80,4 @@ int main (void)
/* { dg-final { scan-tree-dump-times "unsupported unaligned access" 2 "vect" { xfail vect_element_align } } } */
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 3 "vect" { target vect_element_align xfail { ! vect_unaligned_possible } } } } */

/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-11.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/* { dg-require-effective-target vect_int } */
/* { dg-require-effective-target vect_int_mult } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -39,3 +40,4 @@ int main (void)
}

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-110.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_float } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -37,3 +38,4 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */


/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-112-big-array.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -43,3 +44,4 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_unpack } } } */


/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-112.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -36,3 +37,4 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_unpack } } } */


/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-113.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_float } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -33,3 +34,4 @@ int main (void)
}

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target powerpc*-*-* i?86-*-* x86_64-*-* } } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-114.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_float } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -40,3 +41,4 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! vect_perm } xfail { aarch64_sve && vect_variable_length } } } } */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_perm } } } */

/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-115.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -74,3 +75,4 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */


/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-116.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */
/* Assuming we can vectorize char multiplication, here's an execute test. */

#include <stdarg.h>
Expand Down Expand Up @@ -30,3 +31,4 @@ int main()
return 0;
}

/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-117.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -59,3 +60,4 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 0 "vect" } } */

/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-118.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

void f(short * __restrict__ a, short * __restrict__ b, short * __restrict__ x)
{
Expand All @@ -9,3 +10,4 @@ void f(short * __restrict__ a, short * __restrict__ b, short * __restrict__ x)
}

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
3 changes: 2 additions & 1 deletion gcc/testsuite/gcc.dg/vect/vect-119.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Disabling epilogues until we find a better way to deal with scans. */
/* { dg-additional-options "--param vect-epilogues-nomask=0" } */
/* { dg-additional-options "--param vect-epilogues-nomask=0 -fdump-tree-optimized-details-blocks" } */
/* { dg-do compile } */
/* { dg-require-effective-target vect_int } */

Expand Down Expand Up @@ -28,3 +28,4 @@ unsigned int foo (const unsigned int x[OUTER][INNER][2])
}

/* { dg-final { scan-tree-dump-times "Detected interleaving load of size 2" 1 "vect" } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-11a.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/* { dg-require-effective-target vect_int } */
/* { dg-require-effective-target vect_int_mult } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -62,3 +63,4 @@ int main (void)
}

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-12.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -41,3 +42,4 @@ int main (void)
}

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-120.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
/* { dg-require-effective-target vect_float } */
/* { dg-require-effective-target vect_shift } */
/* { dg-require-effective-target vect_floatint_cvt } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

static inline float
i2f(int x)
Expand Down Expand Up @@ -34,3 +35,4 @@ tV()
}

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-121.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target vect_float } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

float *x;
float parm;
Expand All @@ -15,3 +16,4 @@ test (int start, int end)
}

/* { dg-final { scan-tree-dump "vectorized 1 loops" "vect" } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-122.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */
#include "tree-vect.h"

#ifndef N
Expand Down Expand Up @@ -56,3 +57,4 @@ main ()
return 0;
}

/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-123.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

int x[4092];
int y[1024];
Expand All @@ -12,3 +13,4 @@ void foo (int s)
}

/* { dg-final { scan-tree-dump "vectorized 1 loops" "vect" } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-124.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */
#include "tree-vect.h"

#ifndef N
Expand Down Expand Up @@ -27,3 +28,4 @@ main ()
return 0;
}

/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-126.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/* PR tree-optimization/66718 */
/* { dg-do compile } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

int *a[1024], b[1024];
struct S { int u, v, w, x; };
Expand Down Expand Up @@ -61,3 +62,4 @@ f6 (void)
}

/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 7 "vect" { target { i?86-*-* x86_64-*-* } } } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-13.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/* { dg-require-effective-target vect_int } */
/* { dg-add-options bind_pic_locally } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -40,3 +41,4 @@ int main (void)

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_int_min_max } } } */
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-14.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -34,3 +35,4 @@ int main (void)
}

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
2 changes: 2 additions & 0 deletions gcc/testsuite/gcc.dg/vect/vect-15-big-array.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
/* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */

#include <stdarg.h>
#include "tree-vect.h"
Expand Down Expand Up @@ -42,3 +43,4 @@ int main (void)
}

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_perm && vect_hw_misalign } } } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
Loading

0 comments on commit 1762957

Please sign in to comment.