]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.dg/tree-ssa/pr95527.c
Fix profile update in tree_transform_and_unroll_loop
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / pr95527.c
CommitLineData
653ab081
JJ
1/* PR tree-optimization/95527 */
2/* { dg-do compile } */
3/* { dg-options "-O2 -fdump-tree-optimized" } */
4/* { dg-final { scan-tree-dump-times "return 0;" 4 "optimized" } } */
5/* { dg-final { scan-tree-dump-times "return 18;" 4 "optimized" } } */
6
7/* { dg-final { scan-tree-dump-times "a_\[0-9]*\\\(D\\\) == 0" 1 "optimized" } } */
8
9int
10f1 (int a)
11{
12 return __builtin_ffs (a) == 0;
13}
14
15/* { dg-final { scan-tree-dump-times "b_\[0-9]*\\\(D\\\) != 0" 1 "optimized" } } */
16
17int
18f2 (int b)
19{
20 return __builtin_ffs (b) != 0;
21}
22
23int
24f3 (int x)
25{
26 return __builtin_ffs (x) == -1;
27}
28
29int
30f4 (int x)
31{
32 return 17 + (__builtin_ffs (x) != -1);
33}
34
35int
36f5 (int x)
37{
38 return __builtin_ffs (x) == __SIZEOF_INT__ * __CHAR_BIT__ + 1;
39}
40
41int
42f6 (int x)
43{
44 return 17 + (__builtin_ffs (x) != __SIZEOF_INT__ * __CHAR_BIT__ + 1);
45}
46
47/* { dg-final { scan-tree-dump-times "c_\[0-9]*\\\(D\\\) & 63" 1 "optimized" } } */
48/* { dg-final { scan-tree-dump-times "== 32" 1 "optimized" } } */
49
50int
51f7 (int c)
52{
53 return __builtin_ffs (c) == 6;
54}
55
56/* { dg-final { scan-tree-dump-times "d_\[0-9]*\\\(D\\\) & 16383" 1 "optimized" } } */
57/* { dg-final { scan-tree-dump-times "!= 8192" 1 "optimized" } } */
58
59int
60f8 (int d)
61{
62 return __builtin_ffs (d) != 14;
63}
64
65/* { dg-final { scan-tree-dump-times "e_\[0-9]*\\\(D\\\) == -9223372036854775808" 1 "optimized" { target lp64 } } } */
66/* { dg-final { scan-tree-dump-times "e_\[0-9]*\\\(D\\\) == -2147483648" 1 "optimized" { target ilp32 } } } */
67
68int
69f9 (long int e)
70{
71 return __builtin_ffsl (e) == __SIZEOF_LONG__ * __CHAR_BIT__;
72}
73
74/* { dg-final { scan-tree-dump-times "f_\[0-9]*\\\(D\\\) != -9223372036854775808" 1 "optimized" } } */
75
76int
77f10 (long long int f)
78{
79 return __builtin_ffsll (f) != __SIZEOF_LONG_LONG__ * __CHAR_BIT__;
80}
81
82/* { dg-final { scan-tree-dump-times "g_\[0-9]*\\\(D\\\) != 0" 1 "optimized" } } */
83
84int
85f11 (long long int g)
86{
87 return __builtin_ffsll (g) > 0;
88}
89
90/* { dg-final { scan-tree-dump-times "h_\[0-9]*\\\(D\\\) == 0" 1 "optimized" } } */
91
92int
93f12 (int h)
94{
95 return __builtin_ffs (h) <= 0;
96}
97
98int
99f13 (int x)
100{
101 return 17 + (__builtin_ffs (x) > -1);
102}
103
104int
105f14 (int x)
106{
107 return __builtin_ffs (x) <= -1;
108}
109
110int
111f15 (int x)
112{
113 return __builtin_ffs (x) > __SIZEOF_INT__ * __CHAR_BIT__;
114}
115
116int
117f16 (int x)
118{
119 return 17 + (__builtin_ffs (x) <= __SIZEOF_INT__ * __CHAR_BIT__);
120}
121
122/* { dg-final { scan-tree-dump-times "i_\[0-9]*\\\(D\\\) & 63" 1 "optimized" } } */
123/* { dg-final { scan-tree-dump-times "i_\[0-9]*\\\(D\\\) != 0" 1 "optimized" } } */
124
125int
126f17 (int i)
127{
128 return __builtin_ffs (i) > 6;
129}
130
131/* { dg-final { scan-tree-dump-times "j_\[0-9]*\\\(D\\\) & 4095" 1 "optimized" } } */
132/* { dg-final { scan-tree-dump-times "j_\[0-9]*\\\(D\\\) == 0" 1 "optimized" } } */
133
134int
135f18 (int j)
136{
137 return __builtin_ffs (j) <= 12;
138}
139
140/* { dg-final { scan-tree-dump-times "k_\[0-9]*\\\(D\\\) == -2147483648" 1 "optimized" { target int32 } } } */
141
142int
143f19 (int k)
144{
145 return __builtin_ffs (k) > __SIZEOF_INT__ * __CHAR_BIT__ - 1;
146}
147
148/* { dg-final { scan-tree-dump-times "l_\[0-9]*\\\(D\\\) != -2147483648" 1 "optimized" { target int32 } } } */
149
150int
151f20 (int l)
152{
153 return __builtin_ffs (l) <= __SIZEOF_INT__ * __CHAR_BIT__ - 1;
154}
155
156/* { dg-final { scan-tree-dump-times "m_\[0-9]*\\\(D\\\) & 1073741823" 1 "optimized" { target int32 } } } */
157/* { dg-final { scan-tree-dump-times "m_\[0-9]*\\\(D\\\) != 0" 1 "optimized" } } */
158
159int
160f21 (int m)
161{
162 return __builtin_ffs (m) > __SIZEOF_INT__ * __CHAR_BIT__ - 2;
163}
164
165/* { dg-final { scan-tree-dump-times "n_\[0-9]*\\\(D\\\) & 1073741823" 1 "optimized" { target int32 } } } */
166/* { dg-final { scan-tree-dump-times "n_\[0-9]*\\\(D\\\) == 0" 1 "optimized" } } */
167
168int
169f22 (int n)
170{
171 return __builtin_ffs (n) <= __SIZEOF_INT__ * __CHAR_BIT__ - 2;
172}