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" } } */
13 
14 int test_01_00 (int*, void*);
15 int
test_01(int * m,void * v)16 test_01 (int* m, void* v)
17 {
18   unsigned long n = (unsigned long)v - 1;
19 
20   if (!n)
21     return 50;
22 
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;
27 }
28