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);
126 int shrs1(unsigned x) {
130 int demorgan1(int a, int b) {
134 int demorgan2(int a, int b) {
138 int eor1(int a, int b) {
143 return (a << 3) == (5<<3);
147 return (a << 3) == 41;
150 int shr2(unsigned int a) {
151 return (a >> 3) == 5;
154 int shr3(unsigned int a) {
155 return (a >> 3) == (1 << 29);
159 return (a >> 3) == 5;
163 return (a >> 3) == -5;
167 return (a >> 3) == (1 << 29);
170 int conv1(signed char a) {
174 int conv2(unsigned char a) {
178 int conv3(signed char a) {
179 return (unsigned)a != 0;
184 #define TU(func,x,expect) \
185 printf("%s(%d) = %d (should be %d)\n", #func, x, func(x), expect);
186 #define TB(func,x,y,expect) \
187 printf("%s(%d,%d) = %d (should be %d)\n", #func, x, y, func(x,y), expect);
188 #define TT(func,x,y,z,expect) \
189 printf("%s(%d,%d,%d) = %d (should be %d)\n", #func, x, y, z, func(x,y,z), expect);
193 TT(mul2, 9, 2, 5, 27);
194 TT(mul3, 5, 2, 9, 27);
195 TT(sub0, 42, 17, 59, 84);
196 TB(sub1, 23, 17, -691);
197 TB(sub2, 42, 17, 59);
198 TB(sub3, 42, 17, -59);
204 TT(cmp5, 42, 17, -4, 0);
205 TT(cmp6, 42, 17, -4, 1);
206 TT(cmp7, 42, 17, -4, 0);
207 TT(cmp8, 42, 17, -4, 1);
210 TB(and1, 42, 17, 42);
211 TB(and2, 42, 17, 42^17);
216 TB(demorgan1, 42, 17, ~(42|17));
217 TB(demorgan2, 42, 17, ~(42&17));
218 TB(eor1, 42, 44, 42&~44);