xref: /openbmc/qemu/tests/tcg/openrisc/test_sfgts.c (revision ddbb0d09)
1 #include <stdio.h>
2 
3 int main(void)
4 {
5     int a, b, c;
6     int result;
7 
8     a = 0;
9     b = 3;
10     result = 1;
11     __asm
12     ("1:\n\t"
13      "l.addi   %0, %0, 1\n\t"
14      "l.sfgts  %0, %1\n\t"
15      "l.bf 1b\n\t"
16      "l.nop\n\t"
17      : "+r"(a)
18      : "r"(b)
19     );
20     if (a != result) {
21         printf("sfgts error\n");
22         return -1;
23     }
24 
25 
26     a = 0xff;
27     b = 3;
28     c = 1;
29     result = 3;
30     __asm
31     ("1:\n\t"
32      "l.sub    %0, %0, %2\n\t"
33      "l.sfgts  %0, %1\n\t"
34      "l.bf 1b\n\t"
35      "l.nop\n\t"
36      : "+r"(a)
37      : "r"(b), "r"(c)
38     );
39     if (a != result) {
40         printf("sfgts error\n");
41         return -1;
42     }
43 
44     return 0;
45 }
46