]> git.proxmox.com Git - mirror_qemu.git/blame - tests/tcg/mips/mips32-dsp/shilov.c
Merge remote-tracking branch 'aneesh/for-upstream' into staging
[mirror_qemu.git] / tests / tcg / mips / mips32-dsp / shilov.c
CommitLineData
d70080c4
JL
1#include<stdio.h>
2#include<assert.h>
3
4int main()
5{
6 int rs, ach, acl;
7 int resulth, resultl;
8
9 rs = 0x0F;
10 ach = 0xBBAACCFF;
11 acl = 0x1C3B001D;
12
13 resulth = 0x17755;
14 resultl = 0x99fe3876;
15
16 __asm
17 ("mthi %0, $ac1\n\t"
18 "mtlo %1, $ac1\n\t"
19 "shilov $ac1, %2\n\t"
20 "mfhi %0, $ac1\n\t"
21 "mflo %1, $ac1\n\t"
22 : "+r"(ach), "+r"(acl)
23 : "r"(rs)
24 );
25 assert(ach == resulth);
26 assert(acl == resultl);
27
19e6c50d
PJ
28
29 rs = 0xffffffff;
30 ach = 0x1;
31 acl = 0x80000000;
32
33 resulth = 0x3;
34 resultl = 0x0;
35
36 __asm
37 ("mthi %0, $ac1\n\t"
38 "mtlo %1, $ac1\n\t"
39 "shilov $ac1, %2\n\t"
40 "mfhi %0, $ac1\n\t"
41 "mflo %1, $ac1\n\t"
42 : "+r"(ach), "+r"(acl)
43 : "r"(rs)
44 );
45 assert(ach == resulth);
46 assert(acl == resultl);
47
d70080c4
JL
48 return 0;
49}