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 cmp11(int x, int y) {
94 int cmp12(int x, int y) {
95 return x + y == x && y + x == y;
98 int and1(int a, int b) {
102 int and2(int a, int b) {
103 return (a|b) & ~(a&b);
134 int shrs1(unsigned x) {
138 int demorgan1(int a, int b) {
142 int demorgan2(int a, int b) {
146 int eor1(int a, int b) {
151 return (a << 3) == (5<<3);
155 return (a << 3) == 41;
158 int shr2(unsigned int a) {
159 return (a >> 3) == 5;
162 int shr3(unsigned int a) {
163 return (a >> 3) == (1 << 29);
167 return (a >> 3) == 5;
171 return (a >> 3) == -5;
175 return (a >> 3) == (1 << 29);
178 int conv1(signed char a) {
182 int conv2(unsigned char a) {
186 int conv3(signed char a) {
187 return (unsigned)a != 0;
198 #define TU(func,x,expect) \
199 printf("%s(%d) = %d (should be %d)\n", #func, x, func(x), expect);
200 #define TB(func,x,y,expect) \
201 printf("%s(%d,%d) = %d (should be %d)\n", #func, x, y, func(x,y), expect);
202 #define TT(func,x,y,z,expect) \
203 printf("%s(%d,%d,%d) = %d (should be %d)\n", #func, x, y, z, func(x,y,z), expect);
207 TT(mul2, 9, 2, 5, 27);
208 TT(mul3, 5, 2, 9, 27);
209 TT(sub0, 42, 17, 59, 84);
210 TB(sub1, 23, 17, -691);
211 TB(sub2, 42, 17, 59);
212 TB(sub3, 42, 17, -59);
218 TT(cmp5, 42, 17, -4, 0);
219 TT(cmp6, 42, 17, -4, 1);
220 TT(cmp7, 42, 17, -4, 0);
221 TT(cmp8, 42, 17, -4, 1);
229 TB(and1, 42, 17, 42);
230 TB(and2, 42, 17, 42^17);
235 TB(demorgan1, 42, 17, ~(42|17));
236 TB(demorgan2, 42, 17, ~(42&17));
237 TB(eor1, 42, 44, 42&~44);