[RS6000] Tests that use int128_t and -m32
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / safe-indirect-jump-2.c
blobd6fc6a3e0b74b084320aa8e94446c10737288e68
1 /* { dg-do compile } */
2 /* { dg-options "-mno-speculate-indirect-jumps" } */
3 /* { dg-warning "'-mno-speculate-indirect-jumps' is deprecated" "" { target *-*-* } 0 } */
5 /* Test for deliberate misprediction of computed goto. */
7 int bar (int);
8 int baz (int);
9 int spaz (int);
11 int foo (int x)
13 static void *labptr[] = { &&lab0, &&lab1, &&lab2 };
15 if (x < 0 || x > 2)
16 return -1;
18 goto *labptr[x];
20 lab0:
21 return bar (x);
23 lab1:
24 return baz (x) + 1;
26 lab2:
27 return spaz (x) / 2;
30 /* { dg-final { scan-assembler "crset" } } */
31 /* { dg-final { scan-assembler "beqctr-" } } */
32 /* { dg-final { scan-assembler {b \$} } } */