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

Reply via email to