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

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 /* { dg-do compile { target {{ i?86-*-* x86_64-*-* } && lp64 } } } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 /* { dg-options "-O2 -fgimple -m64 -fdump-tree-ivopts-details" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 /* Exit tests 'i < N1' and 'p2 > p_limit2' can be replaced, so
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 * two ivs i and p2 can be eliminate. */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 long int __GIMPLE (startwith("fix_loops"))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 foo (long int * p, long int * p2, int N1, int N2)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 long int s;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 long int * p_limit2;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 int i;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 long unsigned int _1;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 long unsigned int _2;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 long int _3;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 bb_2:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 _1 = (long unsigned int) N2_9(D);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 _2 = _1 * 8ul;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 p_limit2_11 = p2_10(D) + _2;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 if (N1_13(D) > 0)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 goto bb_3;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 else
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 goto bb_13;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 bb_13:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 bb_9:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 goto bb_6;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 bb_3:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 p_22 = p_12(D) + 8ul;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 p2_23 = p2_10(D) + 8ul;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 if (p_limit2_11 < p2_23)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 goto bb_14;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 else
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 goto bb_7;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 bb_14:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 goto bb_9;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41 bb_7:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42 goto bb_5;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44 bb_4:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
45 p_14 = p_27 + 8ul;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
46 p2_15 = p2_28 + 8ul;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
47 i_16 = i_29 + 1;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
48 if (p_limit2_11 < p2_15)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
49 goto bb_11;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
50 else
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
51 goto bb_8;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
52
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
53 bb_11:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
54 goto bb_6;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
55
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
56 bb_8:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
57 ;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
58
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
59 bb_5:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
60 s_25 = __PHI (bb_7: 0l, bb_8: s_18);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
61 p_27 = __PHI (bb_7: p_22, bb_8: p_14);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
62 p2_28 = __PHI (bb_7: p2_23, bb_8: p2_15);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
63 i_29 = __PHI (bb_7: 1, bb_8: i_16);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
64 _3 = __MEM <long int> (p_27);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
65 s_18 = _3 + s_25;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
66 if (N1_13(D) > i_29)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
67 goto bb_4;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
68 else
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
69 goto bb_12;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
70
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
71 bb_12:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
72 ;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
73
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
74 bb_6:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
75 s_26 = __PHI (bb_12: s_18, bb_11: s_18, bb_9: 0l);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
76 return s_26;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
77 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
78
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
79 /* { dg-final { scan-tree-dump-times "Replacing" 2 "ivopts"} } */