1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fno-omit-frame-pointer -w" } */
3 /* { dg-additional-options "-march=pentium-mmx" { target ia32 } } */
4 
5 typedef struct { long long a; } a_t;
6 int *a, b;
7 a_t *e, c;
8 long long f;
9 void fn (int);
10 void fn2 (void);
11 int fn3 (a_t);
12 void fn4 (a_t);
foo(long long val)13 a_t foo (long long val) { return (a_t){val}; }
14 static void
bar(int ka)15 bar (int ka)
16 {
17   unsigned i;
18   for (i = 0; i < 512; i++) {
19     long d;
20     c = (a_t){d};
21     fn2 ();
22   }
23   fn (ka);
24 }
25 void
test(void)26 test (void)
27 {
28   a_t g;
29   a_t *h, j;
30   h = e;
31   j = *h;
32   if (e == (a_t *) 1) {
33     a_t k = {fn3 (j)};
34     fn4 (j);
35     long l;
36     g = foo((long long)b << 2 | l);
37     k = g;
38     if (j.a != k.a) {
39       a_t m = g;
40       int n = m.a, o = m.a >> 32;
41       asm ("# %0 %1 %2 %3" : "=m"(*a), "+A"(f) : "b"(n), "c"(o));
42     }
43   }
44   bar ((int) h);
45 }
46