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

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
One way of fixing this is to optimize the following for the scalar side:
```
  _15 = _4 != 0;
  _16 = (short unsigned int) _15;
  _17 = _16 << 3;
  _6 = (int) _17;
```
into:
```
  _t = (int) _15;
  _6 = _t << 3;
```

Note this has the same issue too:
```
void __attribute__ ((noipa))
f0_1 (int *__restrict r,
      int *__restrict pred)
{
  for (int i = 0; i < 1024; ++i)
  {
    short p = pred[i]?-1:0;
    r[i] = p ;
  }
}
```

Reply via email to