/* { dg-do run } */ /* { dg-additional-options "-ftree-slp-vectorize" } */ typedef double aligned_double __attribute__((aligned(2*sizeof(double)))); void __attribute__((noipa)) bar (int aligned, double *p) { if (aligned) { *(aligned_double *)p = 3.; p[1] = 4.; } else { p[2] = 0.; p[3] = 1.; } } void __attribute__((noipa)) foo (int i) { if (i) __builtin_exit (0); } void __attribute__((noipa)) baz (double *p) { p[0] = 0.; p[1] = 1.; foo (1); *(aligned_double *)p = 3.; p[1] = 4.; } double x[8] __attribute__((aligned(2*sizeof (double)))); int main() { bar (0, &x[1]); baz (&x[1]); return 0; }