Rebase.
[official-gcc.git] / gcc / testsuite / gcc.target / sh / pr51244-8.c
blobd8c1269bb3127e821c9a972eb9bfc6c512c5c6e2
1 /* Check that compare-branch is inverted properly.
2 Example:
3 mov #1,r0 -> tst r8,r8
4 neg r8,r1 bt .L47
5 shad r1,r0
6 tst #1,r0
7 bf .L47
8 */
9 /* { dg-do compile } */
10 /* { dg-options "-O2" } */
11 /* { dg-skip-if "" { "sh*-*-*" } { "-m5*" } { "" } } */
12 /* { dg-final { scan-assembler-not "shad|neg" } } */
14 int test_01_00 (int*, void*);
15 int
16 test_01 (int* m, void* v)
18 unsigned long n = (unsigned long)v - 1;
20 if (!n)
21 return 50;
23 if (1 & (1 << n)) /* if n == 0: 1 & (1 << 0) -> true */
24 return 60;
25 else /* if n != 0: 1 & (1 << n) -> false */
26 return -8;