10 int f2(short a, short b)
12 return a < b && b < a;
15 int f3(short a, short b)
17 return a < b && b > a;
20 int f4(short a, short b, short c)
22 return (a <= c) & (b <= c);
25 int g(unsigned a, unsigned b)
27 return ((a >> 12) | 5) & ((b >> 12) | 5);
30 int g2(unsigned a, unsigned b)
32 return (a & 5) | (b & 5);
35 int g3(int a, int b, int z)
37 return (a | z) & (b | z);
42 return (a ? 1 : 0) && !a;
47 return (a ? 1 : 0) || !a;
52 #define UOP(func,val,should_be) { printf("%s(%d) -> %d (should be %d)\n", #func, val, func(val), should_be); }
53 #define BOP(func,val1,val2,should_be) { printf("%s(%d,%d) -> %d (should be %d)\n", #func, val1, val2, func(val1,val2), should_be); }
54 #define TOP(func,val1,val2,val3,should_be) { printf("%s(%d,%d,%d) -> %d (should be %d)\n", #func, val1, val2, val3, func(val1,val2,val3), should_be); }
62 BOP(f, INT_MIN, INT_MIN, 1);
63 BOP(f, INT_MIN, -1, 1);
64 BOP(f, -1, INT_MIN, 1);
73 BOP(f2, SHRT_MIN, SHRT_MIN, 0);
74 BOP(f2, SHRT_MIN, -1, 0);
75 BOP(f2, -1, SHRT_MIN, 0);
84 BOP(f3, SHRT_MIN, SHRT_MIN, 0);
85 BOP(f3, SHRT_MIN, -1, 1);
86 BOP(f3, -1, SHRT_MIN, 0);
89 TOP(f4, -1, -2, -3, 0);
90 TOP(f4, SHRT_MIN, SHRT_MIN, -1, 1);
91 TOP(f4, SHRT_MIN, SHRT_MIN, SHRT_MIN, 1);
92 TOP(f4, SHRT_MAX, SHRT_MIN, SHRT_MAX, 1);
93 TOP(f4, SHRT_MIN, SHRT_MIN, SHRT_MAX, 1);
94 TOP(f4, 13, 42, SHRT_MAX, 1);
98 BOP(g, UINT_MAX, UINT_MAX, 1048575);
100 BOP(g, 12345, 54321, 5);
102 BOP(g2, UINT_MAX, UINT_MAX, 5);
104 BOP(g2, 12345, 54321, 1);
107 TOP(g3, -1, -2, -3, -1);
108 TOP(g3, INT_MIN, INT_MIN, -1, -1);
109 TOP(g3, INT_MIN, INT_MIN, INT_MIN, INT_MIN);
110 TOP(g3, INT_MAX, INT_MIN, INT_MAX, INT_MAX);
111 TOP(g3, INT_MIN, INT_MIN, INT_MAX, -1);
112 TOP(g3, 13, 42, INT_MAX, INT_MAX);