Mercurial > hg > CbC > CbC_gcc
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2g.c Thu Oct 25 07:37:49 2018 +0900 @@ -0,0 +1,79 @@ +/* { dg-do compile { target {{ i?86-*-* x86_64-*-* } && lp64 } } } */ +/* { dg-options "-O2 -fgimple -m64 -fdump-tree-ivopts-details" } */ + +/* Exit tests 'i < N1' and 'p2 > p_limit2' can be replaced, so + * two ivs i and p2 can be eliminate. */ +long int __GIMPLE (startwith("fix_loops")) +foo (long int * p, long int * p2, int N1, int N2) +{ + long int s; + long int * p_limit2; + int i; + long unsigned int _1; + long unsigned int _2; + long int _3; + + bb_2: + _1 = (long unsigned int) N2_9(D); + _2 = _1 * 8ul; + p_limit2_11 = p2_10(D) + _2; + if (N1_13(D) > 0) + goto bb_3; + else + goto bb_13; + + bb_13: + + bb_9: + goto bb_6; + + bb_3: + p_22 = p_12(D) + 8ul; + p2_23 = p2_10(D) + 8ul; + if (p_limit2_11 < p2_23) + goto bb_14; + else + goto bb_7; + + bb_14: + goto bb_9; + + bb_7: + goto bb_5; + + bb_4: + p_14 = p_27 + 8ul; + p2_15 = p2_28 + 8ul; + i_16 = i_29 + 1; + if (p_limit2_11 < p2_15) + goto bb_11; + else + goto bb_8; + + bb_11: + goto bb_6; + + bb_8: + ; + + bb_5: + s_25 = __PHI (bb_7: 0l, bb_8: s_18); + p_27 = __PHI (bb_7: p_22, bb_8: p_14); + p2_28 = __PHI (bb_7: p2_23, bb_8: p2_15); + i_29 = __PHI (bb_7: 1, bb_8: i_16); + _3 = __MEM <long int> (p_27); + s_18 = _3 + s_25; + if (N1_13(D) > i_29) + goto bb_4; + else + goto bb_12; + + bb_12: + ; + + bb_6: + s_26 = __PHI (bb_12: s_18, bb_11: s_18, bb_9: 0l); + return s_26; +} + +/* { dg-final { scan-tree-dump-times "Replacing" 2 "ivopts"} } */