xref: /qemu/tests/tcg/openrisc/test_lf_gts.c (revision d901eff3e6da96d34be33b307aa6cea75098c180)
1*d901eff3SJia Liu #include <stdio.h>
2*d901eff3SJia Liu 
main(void)3*d901eff3SJia Liu int main(void)
4*d901eff3SJia Liu {
5*d901eff3SJia Liu     int a, result;
6*d901eff3SJia Liu     float b, c;
7*d901eff3SJia Liu 
8*d901eff3SJia Liu     a = 0;
9*d901eff3SJia Liu     b = 122.5;
10*d901eff3SJia Liu     c = 123.5;
11*d901eff3SJia Liu     result = 0x1;
12*d901eff3SJia Liu     __asm
13*d901eff3SJia Liu     ("lfgts:\n\t"
14*d901eff3SJia Liu      "l.addi    %0, %0, 0x1\n\t"
15*d901eff3SJia Liu      "lf.sfgt.s %1, %2\n\t"
16*d901eff3SJia Liu      "l.bf      lfgts\n\t"
17*d901eff3SJia Liu      "l.nop\n\t"
18*d901eff3SJia Liu      : "+r"(a)
19*d901eff3SJia Liu      : "r"(b), "r"(c)
20*d901eff3SJia Liu     );
21*d901eff3SJia Liu     if (a != result) {
22*d901eff3SJia Liu         printf("lf.sfgt.s error\n");
23*d901eff3SJia Liu         return -1;
24*d901eff3SJia Liu     }
25*d901eff3SJia Liu 
26*d901eff3SJia Liu     b = 133.5;
27*d901eff3SJia Liu     c = 13.5;
28*d901eff3SJia Liu     result = 0x1;
29*d901eff3SJia Liu     __asm
30*d901eff3SJia Liu     ("lf.sfgt.s %1, %2\n\t"
31*d901eff3SJia Liu      "l.bf      1f\n\t"
32*d901eff3SJia Liu      "l.nop\n\t"
33*d901eff3SJia Liu      "l.addi    %0, %0, 0x1\n\t"
34*d901eff3SJia Liu      "l.addi    %0, %0, 0x1\n\t"
35*d901eff3SJia Liu      "1:\n\t"
36*d901eff3SJia Liu      : "+r"(a)
37*d901eff3SJia Liu      : "r"(b), "r"(c)
38*d901eff3SJia Liu     );
39*d901eff3SJia Liu     if (a != result) {
40*d901eff3SJia Liu         printf("lf.sfgt.s error\n");
41*d901eff3SJia Liu         return -1;
42*d901eff3SJia Liu     }
43*d901eff3SJia Liu 
44*d901eff3SJia Liu /*    int a, result;
45*d901eff3SJia Liu     double b, c;
46*d901eff3SJia Liu 
47*d901eff3SJia Liu     a = 0;
48*d901eff3SJia Liu     b = 122.5;
49*d901eff3SJia Liu     c = 123.5;
50*d901eff3SJia Liu     result = 0x1;
51*d901eff3SJia Liu     __asm
52*d901eff3SJia Liu     ("lfgtd:\n\t"
53*d901eff3SJia Liu      "l.addi    %0, %0, 0x1\n\t"
54*d901eff3SJia Liu      "lf.sfgt.d %1, %2\n\t"
55*d901eff3SJia Liu      "l.bf      lfgtd\n\t"
56*d901eff3SJia Liu      "l.nop\n\t"
57*d901eff3SJia Liu      : "+r"(a)
58*d901eff3SJia Liu      : "r"(b), "r"(c)
59*d901eff3SJia Liu     );
60*d901eff3SJia Liu     if (a != result) {
61*d901eff3SJia Liu         printf("lf.sfgt.d error\n");
62*d901eff3SJia Liu         return -1;
63*d901eff3SJia Liu     }
64*d901eff3SJia Liu 
65*d901eff3SJia Liu     b = 133.5;
66*d901eff3SJia Liu     c = 13.5;
67*d901eff3SJia Liu     result = 0x3;
68*d901eff3SJia Liu     __asm
69*d901eff3SJia Liu     ("l.addi    %0, %0, 0x1\n\t"
70*d901eff3SJia Liu      "l.addi    %0, %0, 0x1\n\t"
71*d901eff3SJia Liu      "lf.sfgt.d %1, %2\n\t"
72*d901eff3SJia Liu      "l.bf      1f\n\t"
73*d901eff3SJia Liu      "l.nop\n\t"
74*d901eff3SJia Liu      "l.addi    %0, %0, 0x1\n\t"
75*d901eff3SJia Liu      "l.addi    %0, %0, 0x1\n\t"
76*d901eff3SJia Liu      "1:\n\t"
77*d901eff3SJia Liu      : "+r"(a)
78*d901eff3SJia Liu      : "r"(b), "r"(c)
79*d901eff3SJia Liu     );
80*d901eff3SJia Liu     if (a != result) {
81*d901eff3SJia Liu         printf("lf.sfgt.d error, %x\n", a);
82*d901eff3SJia Liu         return -1;
83*d901eff3SJia Liu     }*/
84*d901eff3SJia Liu 
85*d901eff3SJia Liu     return 0;
86*d901eff3SJia Liu }
87