1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3 
4 #define max(a,b) (((a) > (b))? (a) : (b))
5 #define min(a,b) (((a) < (b))? (a) : (b))
6 
smax1(int x)7 int smax1(int x)
8 {
9   return max(x,1);
10 }
11 
smin1(int x)12 int smin1(int x)
13 {
14   return min(x,1);
15 }
16 
smaxm1(int x)17 int smaxm1(int x)
18 {
19   return max(x,-1);
20 }
21 
sminm1(int x)22 int sminm1(int x)
23 {
24   return min(x,-1);
25 }
26 
umax1(unsigned int x)27 unsigned int umax1(unsigned int x)
28 {
29   return max(x,1);
30 }
31 
umin1(unsigned int x)32 unsigned int umin1(unsigned int x)
33 {
34   return min(x,1);
35 }
36 
37 /* { dg-final { scan-assembler-times "test" 6 } } */
38 /* { dg-final { scan-assembler-not "cmp" } } */
39