1 /* Check that a comparison 'unsigned int <= 0x7FFFFFFF' results in code
2    utilizing the cmp/pz instruction.  */
3 /* { dg-do compile { target "sh*-*-*" } } */
4 /* { dg-options "-O1" } */
5 /* { dg-skip-if "" { "sh*-*-*" } { "-m5*"} { "" } }  */
6 /* { dg-final { scan-assembler-not "not\[ \t\]" } } */
7 /* { dg-final { scan-assembler-times "cmp/pz" 7 } } */
8 /* { dg-final { scan-assembler-times "shll" 1 } } */
9 /* { dg-final { scan-assembler-times "movt" 4 } } */
10 
11 int
test_00(unsigned int a)12 test_00 (unsigned int a)
13 {
14   return !(a > 0x7FFFFFFF);
15 }
16 
17 int
test_01(unsigned int a)18 test_01 (unsigned int a)
19 {
20   return !(a > 0x7FFFFFFF) ? -5 : 10;
21 }
22 
23 int
test_02(unsigned int a)24 test_02 (unsigned int a)
25 {
26   /* 1x shll, 1x movt  */
27   return a >= 0x80000000;
28 }
29 
30 int
test_03(unsigned int a)31 test_03 (unsigned int a)
32 {
33   return a >= 0x80000000 ? -5 : 10;
34 }
35 
36 int
test_04(unsigned int a)37 test_04 (unsigned int a)
38 {
39   return a <= 0x7FFFFFFF;
40 }
41 
42 int
test_05(unsigned int a)43 test_05 (unsigned int a)
44 {
45   return a <= 0x7FFFFFFF ? -5 : 10;
46 }
47 
48 int
test_06(unsigned int a)49 test_06 (unsigned int a)
50 {
51   return a < 0x80000000;
52 }
53 
54 int
test_07(unsigned int a)55 test_07 (unsigned int a)
56 {
57   return a < 0x80000000 ? -5 : 10;
58 }
59