https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114234

            Bug ID: 114234
           Summary: [14 Regression] verify_ssa failure with early-break
                    vectorisation
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rsandifo at gcc dot gnu.org
  Target Milestone: ---

The following test ICEs with -Ofast on aarch64:

void bar();
float
foo (float x)
{
  float a = 1;
  float b = x;
  long z = 200;
  for (;;)
    {
      float c = b - 1.0f;
      a *= c;
      z -= 1;
      if (z == 0)
        {
          bar ();
          break;
        }
      if (b <= 3.0f)
        break;
      b = c;
    }
  return a * b;
}

(reduced from wrf).  The ICE is:

foo.c:3:1: error: definition in block 15 does not dominate use in block 10
    3 | foo (float x)
      | ^~~
for SSA_NAME: stmp_a_9.10_103 in statement:
a_47 = PHI <stmp_a_9.10_103(10), stmp_a_9.10_103(15)>
PHI argument
stmp_a_9.10_103
for PHI node
a_47 = PHI <stmp_a_9.10_103(10), stmp_a_9.10_103(15)>
during GIMPLE pass: vect

Reply via email to