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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2025-09-06
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
   Target Milestone|---                         |13.5

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed, the vectorizer is doing something wrong with the label from asm
goto:

```
  <bb 4> [local count: 107374184]:
  _1 = MEM[(int * *)&d + 24B];
  __asm__ __volatile__ goto("" :  :  :  : "h" <L6>);

  <bb 5> [local count: 966367640]:
  # f_23 = PHI <f_10(8), 0(4)>
  # ivtmp_12 = PHI <ivtmp_9(8), 9(4)>
<L6>:
  i[f_23] = 1;
  f_10 = f_23 + 1;
  ivtmp_9 = ivtmp_12 - 1;
  if (ivtmp_9 != 0)
    goto <bb 8>; [88.89%]
  else
    goto <bb 6>; [11.11%]
```

I suspect the problem is the asm goto in this case goes to the same bb as the
fall through and that is represented as one edge rather than 2 and the loop
optimizers don't handle things that well.

Reply via email to