1  /* { dg-do compile } */
       2  /* { dg-options "-O1 -funswitch-loops -fdump-tree-unswitch-details -fdump-tree-optimized" } */
       3  
       4  int ch;
       5  int a[100];
       6  
       7  void xxx(void)
       8  {
       9    int i;
      10  
      11    for (i = 0; i < 100; i++)
      12      {
      13        if (ch)
      14  	a[i] = ch;
      15        else
      16  	a[i] = i;
      17      }
      18  }
      19  
      20  /* Loop should be unswitched.  */
      21  
      22  /* { dg-final { scan-tree-dump-times "unswitching loop" 1 "unswitch" } } */
      23  
      24  /* In effect there should be exactly three conditional jumps in the final program.  */
      25  
      26  /* { dg-final { scan-tree-dump-times "else" 3 "optimized" } } */