/* PR target/88906 */ /* { dg-do run { target ia32 } } */ /* { dg-options "-O -march=i386 -mtune=k6 -minline-all-stringops -minline-stringops-dynamically -mmemcpy-strategy=libcall:-1:align -Wno-psabi" } */ typedef unsigned V __attribute__ ((vector_size (16))); static inline V foo (V v) { __builtin_sub_overflow (0, 0, &v[0]); return v; } int main () { V v = foo ((V) { ~0 }); if (v[0] || v[1] || v[2] || v[3]) __builtin_abort (); return 0; }