Bug 91145 - [9 Regression] ICE: in vect_build_slp_tree_2, at tree-vect-slp.c:1143 with -march=skylake-avx512 -O3
Summary: [9 Regression] ICE: in vect_build_slp_tree_2, at tree-vect-slp.c:1143 with -m...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 10.0
: P2 normal
Target Milestone: 9.2
Assignee: Richard Biener
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks: yarpgen
  Show dependency treegraph
 
Reported: 2019-07-11 18:06 UTC by Vsevolod Livinskii
Modified: 2021-11-01 23:07 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work: 10.0, 8.3.0, 9.1.1
Known to fail: 9.1.0
Last reconfirmed: 2019-07-12 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vsevolod Livinskii 2019-07-11 18:06:38 UTC
GCC fails with ICE with -march=skylake-avx512 -O3 options.

Reproducer:

int a, c;
unsigned b, e;
extern unsigned d[100];

void f() {
  for (int g = 0; g < 70; g++) {
    b += d[g] - c;
    e -= g ^ a;
  }
}


Error:
>$ gcc -march=skylake-avx512 -O3 -c small.c
during GIMPLE pass: vect
small.c: In function ‘f’:
small.c:5:6: internal compiler error: in vect_build_slp_tree_2, at tree-vect-slp.c:1143
    5 | void f() {
      |      ^
0xf13128 vect_build_slp_tree_2
          /gcc/tree-vect-slp.c:1143
0xf0ffac vect_build_slp_tree
          /gcc/tree-vect-slp.c:1073
0xf119a3 vect_build_slp_tree_2
          /gcc/tree-vect-slp.c:1218
0xf0ffac vect_build_slp_tree
          /gcc/tree-vect-slp.c:1073
0xf16744 vect_analyze_slp_instance
          /gcc/tree-vect-slp.c:1985
0xf18158 vect_analyze_slp(vec_info*, unsigned int)
          /gcc/tree-vect-slp.c:2212
0xf000ce vect_analyze_loop_2
          /gcc/tree-vect-loop.c:1985
0xf000ce vect_analyze_loop(loop*, _loop_vec_info*, vec_info_shared*)
          /gcc/tree-vect-loop.c:2379
0xf1d847 try_vectorize_loop_1
          /gcc/tree-vectorizer.c:886
0xf1e5c9 vectorize_loops()
          /gcc/tree-vectorizer.c:1114

GCC version:
gcc version 10.0.0 (Rev: 273261)
Comment 1 Richard Biener 2019-07-12 09:19:55 UTC
Mine.
Comment 2 Richard Biener 2019-07-12 14:37:06 UTC
Fixed on trunk sofar.
Comment 3 Richard Biener 2019-07-12 14:37:21 UTC
Author: rguenth
Date: Fri Jul 12 14:36:50 2019
New Revision: 273445

URL: https://gcc.gnu.org/viewcvs?rev=273445&root=gcc&view=rev
Log:
2019-07-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91145
	* tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
	chain check.

	* gcc.dg/torture/pr91145.c: New testcase.

Added:
    trunk/gcc/testsuite/gcc.dg/torture/pr91145.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-vect-slp.c
Comment 4 Richard Biener 2019-07-31 15:41:07 UTC
Author: rguenth
Date: Wed Jul 31 15:40:36 2019
New Revision: 273939

URL: https://gcc.gnu.org/viewcvs?rev=273939&root=gcc&view=rev
Log:
2019-07-31  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-07-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91200
	* tree-ssa-phiopt.c (cond_store_replacement): Check we have
	no PHI nodes in middle-bb.

	* gcc.dg/torture/pr91200.c: New testcase.

	2019-07-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/91162
	* tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
	node make sure to replace all uses with something valid.

	* gcc.dg/autopar/pr91162.c: New testcase.

	2019-07-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91145
	* tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
	chain check.

	* gcc.dg/torture/pr91145.c: New testcase.

	2019-07-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/91131
	* gimplify.c (gimplify_compound_literal_expr): Force a temporary
	when the object is volatile and we have not cleared it even though
	there are no nonzero elements.

	* gcc.target/i386/pr91131.c: New testcase.

	2019-07-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91126
	* tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
	native encoding offset for BYTES_BIG_ENDIAN.
	(vn_reference_lookup_3): Likewise.

	* gcc.dg/torture/pr91126.c: New testcase.

Added:
    branches/gcc-9-branch/gcc/testsuite/gcc.dg/autopar/pr91162.c
    branches/gcc-9-branch/gcc/testsuite/gcc.dg/torture/pr91126.c
    branches/gcc-9-branch/gcc/testsuite/gcc.dg/torture/pr91145.c
    branches/gcc-9-branch/gcc/testsuite/gcc.dg/torture/pr91200.c
    branches/gcc-9-branch/gcc/testsuite/gcc.target/i386/pr91131.c
Modified:
    branches/gcc-9-branch/gcc/ChangeLog
    branches/gcc-9-branch/gcc/gimplify.c
    branches/gcc-9-branch/gcc/testsuite/ChangeLog
    branches/gcc-9-branch/gcc/tree-cfg.c
    branches/gcc-9-branch/gcc/tree-ssa-phiopt.c
    branches/gcc-9-branch/gcc/tree-ssa-sccvn.c
    branches/gcc-9-branch/gcc/tree-vect-slp.c
Comment 5 Richard Biener 2019-07-31 15:44:08 UTC
Fixed.