https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117811
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to work|11.2.0, 11.4.0 |
Known to fail| |9.1.0
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Another testcase:
```
typedef int v4 __attribute__((vector_size(4*sizeof(int))));
void buggy_shift( v4 *vec, int shift )
{
v4 t = *vec;
if ( shift > 0 )
{
t = t >> shift;
}
*vec = t;
}
```
This was broken in GCC 9+.
Before GCC would produce:
```
asr r8, r4, r1
asr r9, r5, r1
asr r10, r6, r1
asr r1, r7, r1
mov r4, r8
mov r5, r9
mov r6, r10
mov r7, r1
```