Add qemu 2.4.0
[kvmfornfv.git] / qemu / tests / tcg / mips / mips64-dsp / muleq_s_pw_qhr.c
1 #include "io.h"
2
3 int main(void)
4 {
5     long long rd, rs, rt;
6     long long result;
7
8     rd = 0;
9     rs = 0x1234567845BCFFFF;
10     rt = 0x8765432198529AD2;
11     result = 0x52fbec7035a2ca5c;
12
13     __asm
14         ("muleq_s.pw.qhr %0, %1, %2\n\t"
15          : "=r"(rd)
16          : "r"(rs), "r"(rt)
17         );
18
19     if (result != rd) {
20         printf("1 muleq_s.pw.qhr error\n");
21
22         return -1;
23     }
24
25     rd = 0;
26     rs = 0x1234567845BC8000;
27     rt = 0x8765432198528000;
28     result = 0x52fbec707FFFFFFF;
29
30     __asm
31         ("muleq_s.pw.qhr %0, %1, %2\n\t"
32          : "=r"(rd)
33          : "r"(rs), "r"(rt)
34         );
35
36     if (result != rd) {
37         printf("2 muleq_s.pw.qhr error\n");
38
39         return -1;
40     }
41
42     rd = 0;
43     __asm
44         ("rddsp %0\n\t"
45          : "=r"(rd)
46         );
47     rd = rd >> 21;
48     rd = rd & 0x1;
49
50     if (rd != 1) {
51         printf("3 muleq_s.pw.qhr error\n");
52
53         return -1;
54     }
55
56     return 0;
57 }