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)7int smax1(int x) 8 { 9 return max(x,1); 10 } 11 smin1(int x)12int smin1(int x) 13 { 14 return min(x,1); 15 } 16 smaxm1(int x)17int smaxm1(int x) 18 { 19 return max(x,-1); 20 } 21 sminm1(int x)22int sminm1(int x) 23 { 24 return min(x,-1); 25 } 26 umax1(unsigned int x)27unsigned int umax1(unsigned int x) 28 { 29 return max(x,1); 30 } 31 umin1(unsigned int x)32unsigned 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