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