/* { dg-do compile { target { powerpc*-*-linux* } } } */ /* { dg-options "-O2 -fjump-tables --param case-values-threshold=1" } */ /* Verify we created a jump table. */ /* { dg-final { scan-assembler-times "mtctr " 1 } } */ /* { dg-final { scan-assembler-times "bctr" 1 } } */ /* Verify we eliminated the range check. */ /* { dg-final { scan-assembler-not "cmpldi" } } */ /* { dg-final { scan-assembler-not "cmplwi" } } */ long bug (long cond, long v0, long v1, long v2) { switch (cond) { case 0: return v0; case 1: return v1; case 2: return v2; default: __builtin_unreachable (); } __builtin_abort (); }