Statistics
| Branch: | Revision:

root / tests / tcg / openrisc / test_sfgeui.c @ e4b42e6e

History | View | Annotate | Download (613 Bytes)

1 d901eff3 Jia Liu
#include <stdio.h>
2 d901eff3 Jia Liu
3 d901eff3 Jia Liu
int main(void)
4 d901eff3 Jia Liu
{
5 d901eff3 Jia Liu
    int a, b;
6 d901eff3 Jia Liu
    int result;
7 d901eff3 Jia Liu
8 d901eff3 Jia Liu
    a = 0;
9 d901eff3 Jia Liu
    result = 1;
10 d901eff3 Jia Liu
    __asm
11 d901eff3 Jia Liu
    ("1:\n\t"
12 d901eff3 Jia Liu
     "l.addi   %0, %0, 1\n\t"
13 d901eff3 Jia Liu
     "l.sfgeui %0, 0x3\n\t"
14 d901eff3 Jia Liu
     "l.bf 1b\n\t"
15 d901eff3 Jia Liu
     "l.nop\n\t"
16 d901eff3 Jia Liu
     : "+r"(a)
17 d901eff3 Jia Liu
    );
18 d901eff3 Jia Liu
    if (a != result) {
19 d901eff3 Jia Liu
        printf("sfgeui error\n");
20 d901eff3 Jia Liu
        return -1;
21 d901eff3 Jia Liu
    }
22 d901eff3 Jia Liu
23 d901eff3 Jia Liu
    a = 0xff;
24 d901eff3 Jia Liu
    b = 1;
25 d901eff3 Jia Liu
    result = 2;
26 d901eff3 Jia Liu
    __asm
27 d901eff3 Jia Liu
    ("1:\n\t"
28 d901eff3 Jia Liu
     "l.sub    %0, %0, %1\n\t"
29 d901eff3 Jia Liu
     "l.sfgeui %0, 0x3\n\t"
30 d901eff3 Jia Liu
     "l.bf 1b\n\t"
31 d901eff3 Jia Liu
     "l.nop\n\t"
32 d901eff3 Jia Liu
     : "+r"(a)
33 d901eff3 Jia Liu
     : "r"(b)
34 d901eff3 Jia Liu
    );
35 d901eff3 Jia Liu
    if (a != result) {
36 d901eff3 Jia Liu
        printf("sfgeui error\n");
37 d901eff3 Jia Liu
        return -1;
38 d901eff3 Jia Liu
    }
39 d901eff3 Jia Liu
40 d901eff3 Jia Liu
    return 0;
41 d901eff3 Jia Liu
}