Add qemu 2.4.0
[kvmfornfv.git] / qemu / tests / tcg / mips / mips64-dspr2 / dpa_w_ph.c
1 #include"io.h"
2
3 int main(void)
4 {
5     long long rs, rt;
6     long long ach = 5, acl = 5;
7     long long resulth, resultl;
8
9     rs = 0x00FF00FF;
10     rt = 0x00010002;
11     resulth = 0x05;
12     resultl = 0x0302;
13     __asm
14         ("mthi  %0, $ac1\n\t"
15          "mtlo  %1, $ac1\n\t"
16          "dpa.w.ph $ac1, %2, %3\n\t"
17          "mfhi  %0, $ac1\n\t"
18          "mflo  %1, $ac1\n\t"
19          : "+r"(ach), "+r"(acl)
20          : "r"(rs), "r"(rt)
21         );
22     if ((ach != resulth) || (acl != resultl)) {
23         printf("1 dpa.w.ph error\n");
24         return -1;
25     }
26
27     ach = 6, acl = 7;
28     rs = 0xFFFF00FF;
29     rt = 0xFFFF0002;
30     resulth = 0x05;
31     resultl = 0xfffffffffffe0206;
32     __asm
33         ("mthi  %0, $ac1\n\t"
34          "mtlo  %1, $ac1\n\t"
35          "dpa.w.ph $ac1, %2, %3\n\t"
36          "mfhi  %0, $ac1\n\t"
37          "mflo  %1, $ac1\n\t"
38          : "+r"(ach), "+r"(acl)
39          : "r"(rs), "r"(rt)
40         );
41     if ((ach != resulth) || (acl != resultl)) {
42         printf("2 dpa.w.ph error\n");
43         return -1;
44     }
45
46     return 0;
47 }