/* PR target/70421 */ /* { dg-do run } */ /* { dg-require-effective-target int32plus } */ /* { dg-additional-options "-Wno-psabi -w" } */ typedef unsigned V __attribute__ ((vector_size (64))); unsigned __attribute__ ((noinline, noclone)) foo (unsigned x, V u, V v) { v[1] ^= v[2]; x ^= ((V) v)[u[0]]; return x; } int main () { unsigned x = foo (0x10, (V) { 1 }, (V) { 0x100, 0x1000, 0x10000 }); if (x != 0x11010) __builtin_abort (); return 0; }