12 int mul1(int x, int y)
17 int mul2(int x, int y, int z)
22 int mul3(int x, int y, int z)
27 int sub0(int x, int y, int z)
32 int sub1(int x, int y)
34 return x - (y * CONST);
37 int sub2(int x, int y)
42 int sub3(int x, int y)
51 int addmul(int x, int y)
56 int cmp1(int x, int y) {
60 int cmp2(int x, int y) {
64 int cmp3(int x, int y) {
68 int cmp4(int x, int y) {
72 int cmp5(int x, int y, int z) {
73 return x + z == z + y;
76 int cmp6(int x, int y, int z) {
77 return x + z != y + z;
80 int cmp7(int x, int y, int z) {
81 return x - z == y - z;
84 int cmp8(int x, int y, int z) {
96 int cmp11(int x, int y) {
100 int cmp12(int x, int y) {
101 return x + y == x && y + x == y;
104 int and1(int a, int b) {
108 int and2(int a, int b) {
109 return (a|b) & ~(a&b);
140 int shrs1(unsigned x) {
144 int demorgan1(int a, int b) {
148 int demorgan2(int a, int b) {
152 int eor1(int a, int b) {
157 return (a << 3) == (5<<3);
161 return (a << 3) == 41;
164 int shr2(unsigned int a) {
165 return (a >> 3) == 5;
168 int shr3(unsigned int a) {
169 return (a >> 3) == (1 << 29);
173 return (a >> 3) == 5;
177 return (a >> 3) == -5;
181 return (a >> 3) == (1 << 29);
184 int conv1(signed char a) {
188 int conv2(unsigned char a) {
192 int conv3(signed char a) {
193 return (unsigned)a != 0;
217 return (a / b) + (a % b);
226 #define TU(func,x,expect) \
227 printf("%s(%d) = %d (should be %d)\n", #func, x, func(x), expect);
228 #define TB(func,x,y,expect) \
229 printf("%s(%d,%d) = %d (should be %d)\n", #func, x, y, func(x,y), expect);
230 #define TT(func,x,y,z,expect) \
231 printf("%s(%d,%d,%d) = %d (should be %d)\n", #func, x, y, z, func(x,y,z), expect);
235 TT(mul2, 9, 2, 5, 27);
236 TT(mul3, 5, 2, 9, 27);
237 TT(sub0, 42, 17, 59, 84);
238 TB(sub1, 23, 17, -691);
239 TB(sub2, 42, 17, 59);
240 TB(sub3, 42, 17, -59);
246 TT(cmp5, 42, 17, -4, 0);
247 TT(cmp6, 42, 17, -4, 1);
248 TT(cmp7, 42, 17, -4, 0);
249 TT(cmp8, 42, 17, -4, 1);
257 TB(and1, 42, 17, 42);
258 TB(and2, 42, 17, 42^17);
263 TB(demorgan1, 42, 17, ~(42|17));
264 TB(demorgan2, 42, 17, ~(42&17));
265 TB(eor1, 42, 44, 42&~44);