Merge pull request #389 from notaz/master
[pcsx_rearmed.git] / deps / lightning / check / alu_rsb.tst
1 #include "alu.inc"
2
3 .code
4         prolog
5
6 #define RSB(N, I0, I1, V)       ALU(N, , rsb, I0, I1, V)
7
8         RSB(0,  1,          0x7fffffff, 0x7ffffffe)
9         RSB(2,  1,          0x80000000, 0x7fffffff)
10         RSB(3,  0x7fffffff, 0x80000000, 1)
11         RSB(4,  0xffffffff, 0xffffffff, 0)
12         RSB(5,  0x7fffffff, 0xffffffff, 0x80000000)
13         RSB(6,  0, 0x7fffffff,          0x7fffffff)
14 #if __WORDSIZE == 32
15         RSB(7,  0x7fffffff,          1, 0x80000002)
16         RSB(8,  0x80000000,          1, 0x80000001)
17         RSB(9,  0x80000000, 0x7fffffff, 0xffffffff)
18         RSB(10, 0xffffffff, 0x7fffffff, 0x80000000)
19         RSB(11, 0x7fffffff,          0, 0x80000001)
20 #else
21         RSB(7,          0x7fffffff,                 1,  0xffffffff80000002)
22         RSB(8,  0xffffffff80000000,                 1,          0x80000001)
23         RSB(9,  0xffffffff80000000,        0x7fffffff,          0xffffffff)
24         RSB(10, 0xffffffffffffffff, 0xffffffff7fffffff, 0xffffffff80000000)
25         RSB(11,         0x7fffffff,                  0, 0xffffffff80000001)
26         RSB(12, 1,                  0x7fffffffffffffff, 0x7ffffffffffffffe)
27         RSB(13, 0x7fffffffffffffff,                  1, 0x8000000000000002)
28         RSB(14,                  1, 0x8000000000000000, 0x7fffffffffffffff)
29         RSB(15, 0x8000000000000000,                  1, 0x8000000000000001)
30         RSB(16, 0x8000000000000000, 0x7fffffffffffffff, 0xffffffffffffffff)
31         RSB(17, 0x7fffffffffffffff, 0x8000000000000000, 1)
32         RSB(18, 0xffffffffffffffff, 0x7fffffffffffffff, 0x8000000000000000)
33         RSB(19, 0x7fffffffffffffff, 0xffffffffffffffff, 0x8000000000000000)
34         RSB(20, 0xffffffffffffffff, 0xffffffffffffffff, 0)
35 #endif
36
37 #undef RSB
38 #define RSB(N, T, I0, I1, V)    FOP(N, T, rsb, I0, I1, V)
39         RSB(0, _f,          0.5,        -0.5,   -1.0)
40         RSB(1, _f,          0.75,        0.25,  -0.5)
41         RSB(0, _d,          0.5,        -0.5,   -1.0)
42         RSB(1, _d,          0.75,        0.25,  -0.5)
43
44         prepare
45                 pushargi ok
46                 ellipsis
47         finishi @printf
48         ret
49         epilog