aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/20020201-3.c
blob: e95c44fbdfba3b7218ccef6aef04fe54a7775ec0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* This testcase ICEd because a SFmode variable was given a MMX register
   for which there is no movsf exists.  */
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ilp32 } */
/* { 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;
}