177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// Test logical and bitwise AND and OR
277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint test(int x, int y) {
477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    int v = x || y;
577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    return v;
677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint test2(int x, int y) {
977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if(x | y) {
1077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
1177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    } else {
1277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 0;
1377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    }
1477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
1577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint test3(int x, int y) {
1777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    int v = x && y;
1877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    return v;
1977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
2077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
2177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint test4(int x, int y) {
2277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if(x & y) {
2377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
2477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    } else {
2577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 0;
2677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    }
2777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
2877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
2977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint main(int index)
3077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao{
3177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    int x,y;
3277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("testing...\n");
3377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    int totalBad = 0;
3477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    for(y = 0; y < 2; y++) {
3577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        for(x = 0; x < 2; x++) {
3677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao            int a = test(x,y);
3777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao            int b = test2(x,y);
3877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao            if (a != b) {
3977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                printf("Results differ: OR x=%d y=%d a=%d b=%d\n", x, y, a, b);
4077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                totalBad++;
4177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao            }
4277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao            a = test3(x,y);
4377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao            b = test4(x,y);
4477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao            if (a != b) {
4577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                printf("Results differ: AND x=%d y=%d a=%d b=%d\n", x, y, a, b);
4677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                totalBad++;
4777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao            }
4877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        }
4977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    }
5077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("Total bad: %d\n", totalBad);
5177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    return 0;
5277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
5377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
54