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 "basic block vectorized" "slp2" { target { { x86_64-*-* i?86-*-* } && ilp32 } } } } */
32