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;
192 #define TU(func,x,expect) \
193 printf("%s(%d) = %d (should be %d)\n", #func, x, func(x), expect);
194 #define TB(func,x,y,expect) \
195 printf("%s(%d,%d) = %d (should be %d)\n", #func, x, y, func(x,y), expect);
196 #define TT(func,x,y,z,expect) \
197 printf("%s(%d,%d,%d) = %d (should be %d)\n", #func, x, y, z, func(x,y,z), expect);
201 TT(mul2, 9, 2, 5, 27);
202 TT(mul3, 5, 2, 9, 27);
203 TT(sub0, 42, 17, 59, 84);
204 TB(sub1, 23, 17, -691);
205 TB(sub2, 42, 17, 59);
206 TB(sub3, 42, 17, -59);
212 TT(cmp5, 42, 17, -4, 0);
213 TT(cmp6, 42, 17, -4, 1);
214 TT(cmp7, 42, 17, -4, 0);
215 TT(cmp8, 42, 17, -4, 1);
223 TB(and1, 42, 17, 42);
224 TB(and2, 42, 17, 42^17);
229 TB(demorgan1, 42, 17, ~(42|17));
230 TB(demorgan2, 42, 17, ~(42&17));
231 TB(eor1, 42, 44, 42&~44);