[Bug tree-optimization/101242] New: Segfault in SLP vectorizor after 2ad71efb5de
jamborm at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Jun 28 13:30:28 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101242
Bug ID: 101242
Summary: Segfault in SLP vectorizor after 2ad71efb5de
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: jamborm at gcc dot gnu.org
CC: rguenth at gcc dot gnu.org
Target Milestone: ---
Host: x86_64-linux
Target: x86_64-linux
Since commit 2ad71efb5de (fix BB reduc permute elide with life stmts), the
following testcase (reduced from 433.milc) ICEs for me when compiled at -Ofast
(on x86_64-linux with generic march):
typedef struct {
double real;
double imag;
} complex;
typedef struct {
complex e[3][3];
} su3_matrix;
su3_matrix check_su3_c;
double check_su3_ar, check_su3_ari, check_su3_max;
int arireturn();
int check_su3() {
check_su3_ar = check_su3_c.e[0][0].real * check_su3_c.e[1][0].real +
check_su3_c.e[0][0].imag * check_su3_c.e[1][0].imag +
check_su3_c.e[0][1].real * check_su3_c.e[1][1].real +
check_su3_c.e[0][1].imag * check_su3_c.e[1][1].imag +
check_su3_c.e[0][2].real * check_su3_c.e[1][2].real +
check_su3_c.e[0][2].imag * check_su3_c.e[1][2].imag;
check_su3_max = check_su3_c.e[0][0].real * check_su3_c.e[2][0].real +
check_su3_c.e[0][0].imag * check_su3_c.e[2][0].imag +
check_su3_c.e[0][1].real * check_su3_c.e[2][1].real +
check_su3_c.e[0][1].imag * check_su3_c.e[2][1].imag +
check_su3_c.e[0][2].real * check_su3_c.e[2][2].real +
check_su3_c.e[0][2].imag * check_su3_c.e[2][2].imag;
check_su3_ari = check_su3_ar;
if (check_su3_ari)
check_su3_max = check_su3_c.e[1][0].real * check_su3_c.e[2][0].real +
check_su3_c.e[1][0].imag * check_su3_c.e[2][0].imag +
check_su3_c.e[1][1].real * check_su3_c.e[2][1].real +
check_su3_c.e[1][1].imag * check_su3_c.e[2][1].imag +
check_su3_c.e[1][2].real * check_su3_c.e[2][2].real +
check_su3_c.e[1][2].imag * check_su3_c.e[2][2].imag;
if (check_su3_max)
arireturn();
return 0;
}
More information about the Gcc-bugs
mailing list