]>
Commit | Line | Data |
---|---|---|
f26916c2 JJ |
1 | /* PR tree-optimization/93118 */ |
2 | /* { dg-do compile } */ | |
3 | /* { dg-options "-O2 -fdump-tree-optimized" } */ | |
4 | /* { dg-final { scan-tree-dump-not ">>" "optimized" } } */ | |
5 | /* { dg-final { scan-tree-dump-not "<<" "optimized" } } */ | |
6 | ||
7 | #if __SIZEOF_LONG_LONG__ == 8 && __SIZEOF_INT__ == 4 && __CHAR_BIT__ == 8 | |
8 | unsigned long long | |
9 | foo (unsigned long long a) | |
10 | { | |
11 | unsigned long long b = a >> 32; | |
12 | int c = b; | |
13 | unsigned long long d = c; | |
14 | return d << 32; | |
15 | } | |
16 | ||
17 | unsigned long long | |
18 | bar (unsigned long long a) | |
19 | { | |
20 | unsigned long long b = a >> 32; | |
21 | unsigned c = b; | |
22 | unsigned long long d = c; | |
23 | return d << 32; | |
24 | } | |
25 | ||
26 | unsigned long long | |
27 | baz (long long a) | |
28 | { | |
29 | long long b = a >> 32; | |
30 | unsigned long long c = b; | |
31 | return c << 32; | |
32 | } | |
33 | ||
34 | typedef unsigned V __attribute__((vector_size (2 * sizeof (int)))); | |
35 | typedef int W __attribute__((vector_size (2 * sizeof (int)))); | |
36 | ||
37 | void | |
38 | quux (W *w, V *v) | |
39 | { | |
40 | W a = (W) (*v >> 16); | |
41 | *w = a << 16; | |
42 | } | |
43 | #else | |
44 | int i; | |
45 | #endif |