1 /* { dg-do compile } */
2 /* { dg-additional-options "-fno-math-errno" } */
3 /* { dg-additional-options "-march=x86-64" { target x86_64-*-* i?86-*-* } } */
4 
5 long int lrint(double x);
6 
7 int a, b;
8 union c {
9     int d;
10 };
11 
e()12 int e()
13 {
14   int f, g, h;
15   long i, j, k;
16   double l, m = b = lrint(0.3127);
17   a = b >> 16 >> 8 & 255;
18   ((union c *)e)->d = a;
19   k = m;
20   h = k >> 16 >> 8 & 255;
21   ((union c *)(e + 4))->d = h;
22   j = lrint(l);
23   g = j >> 16 >> 8 & 255;
24   ((union c *)(e + 8))->d = g;
25   i = lrint(0.292);
26   f = i >> 16 >> 8 & 255;
27   ((union c *)(e + 12))->d = f;
28   return 0;
29 }
30 
31 /* { dg-final { scan-tree-dump "optimized: basic block" "slp2" { target { { x86_64-*-* i?86-*-* } && ilp32 } } } } */
32