/* PR target/40838 */
/* { dg-do compile { target { { ! *-*-darwin* } && ia32 } } } */
/* { dg-options "-w -mstackrealign -O3 -mno-sse -mpreferred-stack-boundary=4" } */

float
foo (float f)
{
  float array[128];
  float x;
  int i;
  for (i = 0; i < sizeof(array) / sizeof(*array); i++)
    array[i] = f;
  for (i = 0; i < sizeof(array) / sizeof(*array); i++)
    x += array[i];
  return x;
}

/* { dg-final { scan-assembler-not "andl\[\\t \]*\\$-16,\[\\t \]*%esp" } } */
