1  /* { dg-do compile { target { powerpc*-*-* } } } */
       2  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
       3  /* { dg-options "-O2 --param case-values-threshold=2" } */
       4  /* { dg-final { scan-assembler "mtctr" } } */
       5  /* { dg-final { scan-assembler "bctr" } } */
       6  
       7  /* Force using a dispatch table even though by default we would generate
       8     ifs.  */
       9  
      10  extern long call (long);
      11  
      12  long
      13  test_switch (long a, long b)
      14  {
      15    long c;
      16  
      17    switch (a)
      18      {
      19      case 0:  c = -b;	break;
      20      case 1:  c = ~b;	break;
      21      case 2:  c = b+1;	break;
      22      default: c = b & 9;	break;
      23      }
      24  
      25    return call (c) + 1;
      26  }