/* PR target/77834 */ | |
/* { dg-do compile } */ | |
/* { dg-options "-O -ftree-pre -Wno-psabi" } */ | |
/* { dg-additional-options "-mstringop-strategy=libcall" { target i?86-*-* x86_64-*-* } } */ | |
typedef int V __attribute__ ((vector_size (64))); | |
V | |
foo (V u, V v, int w) | |
{ | |
do | |
{ | |
if (u[0]) v ^= u[w]; | |
} | |
while ((V) { 0, u[w] }[1]); | |
u = (V) { v[v[0]], u[u[0]] }; | |
return v + u; | |
} |