/* { dg-do compile } */ /* { dg-additional-options "-ffast-math" } */ /* { dg-require-effective-target vect_float } */ float *a; typedef struct { int c; float bbmax[3]; } d; d e; int f[3]; int g, h, i, j; float k, k; void l() { for (unsigned z = 0; z < 2048; ++z) { { j = e.bbmax[1] > k ? e.bbmax[1] : k; } e.bbmax[1] = j; { i = e.bbmax[2] > k ? e.bbmax[2] : k; } e.bbmax[2] = i; f[2] = a[2]; { float b; h = e.bbmax[1] > b ? e.bbmax[1] : b; } e.bbmax[1] = h; { float b; g = e.bbmax[2] > b ? e.bbmax[2] : b; } e.bbmax[2] = g; } } /* { dg-final { scan-tree-dump-times "transform load" 1 "slp1" { target { { x86_64-*-* i?86-*-* } && lp64 } } } } */ /* { dg-final { scan-tree-dump "optimized: basic block" "slp1" { target { { x86_64-*-* i?86-*-* } && lp64 } } } } */