11 int mul1(int x, int y)
16 int mul2(int x, int y, int z)
21 int mul3(int x, int y, int z)
26 int sub0(int x, int y, int z)
31 int sub1(int x, int y)
33 return x - (y * CONST);
36 int sub2(int x, int y)
41 int sub3(int x, int y)
50 int cmp1(int x, int y) {
54 int cmp2(int x, int y) {
58 int cmp3(int x, int y) {
62 int cmp4(int x, int y) {
66 int cmp5(int x, int y, int z) {
67 return x + z == z + y;
70 int cmp6(int x, int y, int z) {
71 return x + z != y + z;
74 int cmp7(int x, int y, int z) {
75 return x - z == y - z;
78 int cmp8(int x, int y, int z) {
90 int and1(int a, int b) {
94 int and2(int a, int b) {
95 return (a|b) & ~(a&b);
110 int shrs1(unsigned x) {
114 int demorgan1(int a, int b) {
118 int demorgan2(int a, int b) {
122 int eor1(int a, int b) {
127 return (a << 3) == (5<<3);
131 return (a << 3) == 41;
134 int shr2(unsigned int a) {
135 return (a >> 3) == 5;
138 int shr3(unsigned int a) {
139 return (a >> 3) == (1 << 29);
143 return (a >> 3) == 5;
147 return (a >> 3) == -5;
151 return (a >> 3) == (1 << 29);
156 #define TU(func,x,expect) \
157 printf("%s(%d) = %d (should be %d)\n", #func, x, func(x), expect);
158 #define TB(func,x,y,expect) \
159 printf("%s(%d,%d) = %d (should be %d)\n", #func, x, y, func(x,y), expect);
160 #define TT(func,x,y,z,expect) \
161 printf("%s(%d,%d,%d) = %d (should be %d)\n", #func, x, y, z, func(x,y,z), expect);
165 TT(mul2, 9, 2, 5, 27);
166 TT(mul3, 5, 2, 9, 27);
167 TT(sub0, 42, 17, 59, 84);
168 TB(sub1, 23, 17, -691);
169 TB(sub2, 42, 17, 59);
170 TB(sub3, 42, 17, -59);
176 TT(cmp5, 42, 17, -4, 0);
177 TT(cmp6, 42, 17, -4, 1);
178 TT(cmp7, 42, 17, -4, 0);
179 TT(cmp8, 42, 17, -4, 1);
182 TB(and1, 42, 17, 42);
183 TB(and2, 42, 17, 42^17);
188 TB(demorgan1, 42, 17, ~(42|17));
189 TB(demorgan2, 42, 17, ~(42&17));
190 TB(eor1, 42, 44, 42&~44);