4448096-1.c   [plain text]


/* APPLE LOCAL file 4448096 */
/* { dg-do compile { target i?86-*-* } } */
/* APPLE LOCAL x86_64 */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mpreferred-stack-boundary=2 -mfpmath=sse -msse2" } */
#include <stdlib.h>
double d = 42.0;
unsigned int i;
main ()
{
  i = d;
  return 0;
}
/* The SSE-only double -> uint32 conversion uses several vector
   instructions (including "maxsd"), and any spills amongst these
   requires an SSE-aligned stack.  -mpreferred-stack-boundary=2 means
   "4-byte aligned stack," therefore the compiler must not emit any
   vector-mode instructions for this testcase.  */
/* { dg-final { scan-assembler-not "maxsd" } } */