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