https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128014
Bug ID: 128014
Summary: [17 Regression] ICE in control flow in the middle of
basic block
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: ktkachov at gcc dot gnu.org
Target Milestone: ---
Target: aarch64
Testcase:
typedef unsigned long v2du __attribute__ ((vector_size (16)));
extern int rt (void) __attribute__ ((returns_twice));
extern v2du getv (void);
extern void use (unsigned long);
void
f (v2du *pv)
{
rt ();
v2du v = getv ();
unsigned long a0 = v[0], a1 = v[1];
pv[1] = (v2du) { a0 ^ 5, a1 ^ 5 };
use (a1);
rt ();
}
ICEs on aarch64 at -O2:
<source>: In function 'f':
<source>:7:1: error: control flow in the middle of basic block 4
7 | f (v2du *pv)
| ^
during GIMPLE pass: slp
<source>:7:1: internal compiler error: verify_flow_info failed