1 #include<stdio.h>
2 #include<assert.h>
3 
4 
main()5 int main()
6 {
7     int rd, rs, rt;
8     int result;
9 
10     rt     = 0x10017EFD;
11     rs     = 0x11111111;
12     result = 0x2112900e;
13 
14     __asm
15         ("addq_s.w %0, %1, %2\n\t"
16          : "=r"(rd)
17          : "r"(rs), "r"(rt)
18         );
19     assert(rd == result);
20 
21     rt     = 0x80017EFD;
22     rs     = 0x81111111;
23     result = 0x80000000;
24 
25     __asm
26         ("addq_s.w %0, %1, %2\n\t"
27          : "=r"(rd)
28          : "r"(rs), "r"(rt)
29         );
30     assert(rd == result);
31 
32     rt     = 0x7fffffff;
33     rs     = 0x01111111;
34     result = 0x7fffffff;
35 
36     __asm
37         ("addq_s.w %0, %1, %2\n\t"
38          : "=r"(rd)
39          : "r"(rs), "r"(rt)
40         );
41     assert(rd == result);
42 
43     return 0;
44 }
45