/* This testcase ICEd because a SFmode variable was given a MMX register
   for which there is no movsf exists.  */
/* { dg-do compile } */
/* { dg-require-effective-target ia32 } */
/* { dg-options "-O2 -march=i686 -mmmx -fno-strict-aliasing" } */

struct A { unsigned int a, b; };

void foo (struct A *x, int y, int z)
{
   const float d = 1.0;
   float e = (float) y + z;

   x->a = *(unsigned int *) &d;
   x->b = *(unsigned int *) &e;
}
