]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.dg/tree-ssa/pr93118.c
Fix profile update in tree_transform_and_unroll_loop
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / pr93118.c
CommitLineData
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
8unsigned long long
9foo (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
17unsigned long long
18bar (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
26unsigned long long
27baz (long long a)
28{
29 long long b = a >> 32;
30 unsigned long long c = b;
31 return c << 32;
32}
33
34typedef unsigned V __attribute__((vector_size (2 * sizeof (int))));
35typedef int W __attribute__((vector_size (2 * sizeof (int))));
36
37void
38quux (W *w, V *v)
39{
40 W a = (W) (*v >> 16);
41 *w = a << 16;
42}
43#else
44int i;
45#endif