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 ;
}
}
```