ssa-chrec-41.c   [plain text]


/* APPLE LOCAL file lno */
/* { dg-do compile } */ 
/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */


int main ()
{
  int a = 2;
  int b = 4;
  int c = 2;
  
  while (a)
    {
      a *= 3;
      for (c = -10; c < 0; c++)
	{
	  /* Exercises the build_exponential_evolution_in_loop function in the following context:
	     (multiply_evolution 
	       loop_num = 2
	       chrec_before = {2, *, 3}_1
	       to_mult = {4, *, 5}_1
	       res = {{2, *, 3}_1, *, {4, *, 5}_1}_2
	     )
	     
	     Then it exerces the chrec_apply in the following context:
	     (chrec_apply 
	       var = 2
	       chrec = {0, +, {4, *, 5}_1}_2
	       x = 10
	       res = {40, *, 5}_1
	     )
	     
	     Finally it tests the 
	     (add_to_evolution 
	       loop_num = 1
	       chrec_before = {{2, *, 3}_1, *, {4, *, 5}_1}_2
	       to_add = {40, *, 5}_1
	       res = {{2, *, {120, *, 5}_1}_1, *, {4, *, 5}_1}_2
	     )
	  */
	  a *= b;
	}
      b *= 5;
    }
}

/* 
   c  ->  {-10, +, 1}_2
   b  ->  {4, *, 5}_1
   a  ->  {{2, *, {120, *, 5}_1}_1, *, {4, *, 5}_1}_2
*/

/* FIXME. */