1  /* PR tree-optimization/84436 */
       2  /* { dg-options "-O2 -fdump-tree-switchconv -fdump-tree-optimized" } */
       3  /* { dg-do run } */
       4  
       5  int
       6  __attribute__ ((noipa))
       7  foo (int how)
       8  {
       9    switch (how) {
      10      case 2: how = 205; break; /* how = 100 * index + 5 */
      11      case 3: how = 305; break;
      12      case 4: how = 405; break;
      13      case 5: how = 505; break;
      14      case 6: how = 605; break;
      15    }
      16    return how;
      17  }
      18  
      19  int main()
      20  {
      21    if (foo (2) != 205)
      22    __builtin_abort ();
      23  
      24    if (foo (6) != 605)
      25    __builtin_abort ();
      26  
      27    if (foo (123) != 123)
      28    __builtin_abort ();
      29  
      30    return 0;
      31  }
      32  
      33  
      34  /* { dg-final { scan-tree-dump-times "100 \\*" 1 "switchconv" } } */
      35  /* { dg-final { scan-tree-dump-times ".* \\+ 5" 1 "switchconv" } } */
      36  /* { dg-final { scan-tree-dump-not "switch" "optimized" } } */