blob: eb379a0f67d4c9fdf1bb33b6617a741faa3ddf87 [file] [log] [blame]
/* { dg-do compile { target { powerpc*-*-* } } } */
/* { dg-skip-if "" { powerpc*-*-darwin* } } */
/* { dg-options "-O2 --param case-values-threshold=2" } */
/* { dg-final { scan-assembler "mtctr" } } */
/* { dg-final { scan-assembler "bctr" } } */
/* Force using a dispatch table even though by default we would generate
ifs. */
extern long call (long);
long
test_switch (long a, long b)
{
long c;
switch (a)
{
case 0: c = -b; break;
case 1: c = ~b; break;
case 2: c = b+1; break;
default: c = b & 9; break;
}
return call (c) + 1;
}