annotate gcc/testsuite/gcc.dg/tree-ssa/pr61839_1.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* PR tree-optimization/61839. */
kono
parents:
diff changeset
2 /* { dg-do run } */
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
3 /* { dg-options "-O2 -fdump-tree-vrp1 -fdisable-tree-evrp -fdump-tree-optimized" } */
111
kono
parents:
diff changeset
4 /* { dg-require-effective-target int32plus } */
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 __attribute__ ((noinline))
kono
parents:
diff changeset
7 int foo ()
kono
parents:
diff changeset
8 {
kono
parents:
diff changeset
9 int a = -1;
kono
parents:
diff changeset
10 volatile unsigned b = 1U;
kono
parents:
diff changeset
11 int c = 1;
kono
parents:
diff changeset
12 c = (a + 972195718) >> (1LU <= b);
kono
parents:
diff changeset
13 if (c == 486097858)
kono
parents:
diff changeset
14 ;
kono
parents:
diff changeset
15 else
kono
parents:
diff changeset
16 __builtin_abort ();
kono
parents:
diff changeset
17 return 0;
kono
parents:
diff changeset
18 }
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 __attribute__ ((noinline))
kono
parents:
diff changeset
21 int bar ()
kono
parents:
diff changeset
22 {
kono
parents:
diff changeset
23 int a = -1;
kono
parents:
diff changeset
24 volatile unsigned b = 1U;
kono
parents:
diff changeset
25 int c = 1;
kono
parents:
diff changeset
26 c = (a + 972195718) >> (b ? 2 : 3);
kono
parents:
diff changeset
27 if (c == 243048929)
kono
parents:
diff changeset
28 ;
kono
parents:
diff changeset
29 else
kono
parents:
diff changeset
30 __builtin_abort ();
kono
parents:
diff changeset
31 return 0;
kono
parents:
diff changeset
32 }
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 int main ()
kono
parents:
diff changeset
35 {
kono
parents:
diff changeset
36 foo ();
kono
parents:
diff changeset
37 bar ();
kono
parents:
diff changeset
38 }
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 /* Scan for c = 972195717) >> [0, 1] in function foo. */
kono
parents:
diff changeset
41 /* { dg-final { scan-tree-dump-times "486097858 : 972195717" 1 "vrp1" } } */
kono
parents:
diff changeset
42 /* Scan for c = 972195717) >> [2, 3] in function bar. */
kono
parents:
diff changeset
43 /* { dg-final { scan-tree-dump-times "243048929 : 121524464" 2 "vrp1" } } */
kono
parents:
diff changeset
44 /* { dg-final { scan-tree-dump-times "486097858" 0 "optimized" } } */