PPC: Fix rldcl
[qemu/agraf.git] / tests / tcg / mips / mips64-dsp / maq_sa_w_qhrr.c
blobf02173736a41253c6266a2b78dd6317a5d8f5e88
1 #include "io.h"
3 int main(void)
5 long long rt, rs, dsp;
6 long long achi, acli;
7 long long acho, aclo;
8 long long resulth, resultl;
10 achi = 0x05;
11 acli = 0x05;
13 rs = 0x1234123412341234;
14 rt = 0x9876987698769876;
16 resulth = 0x0;
17 resultl = 0x15ae87f5;
19 __asm
20 ("mthi %3, $ac1\n\t"
21 "mtlo %4, $ac1\n\t"
22 "maq_sa.w.qhrr $ac1, %5, %6\n\t"
23 "mfhi %0, $ac1\n\t"
24 "mflo %1, $ac1\n\t"
25 "rddsp %2\n\t"
26 : "=r"(acho), "=r"(aclo), "=r"(dsp)
27 : "r"(achi), "r"(acli), "r"(rs), "r"(rt)
30 dsp = (dsp >> 17) & 0x1;
31 if ((dsp != 0x0) || (resulth != acho) || (resultl != aclo)) {
32 printf("1 maq_sa.w.qhrr wrong\n");
34 return -1;
38 achi = 0x04;
39 acli = 0x06;
40 rs = 0x8000800080008000;
41 rt = 0x8000800080008000;
43 resulth = 0x00;
44 resultl = 0x7fffffff;
46 __asm
47 ("mthi %3, $ac1\n\t"
48 "mtlo %4, $ac1\n\t"
49 "maq_sa.w.qhrr $ac1, %5, %6\n\t"
50 "mfhi %0, $ac1\n\t"
51 "mflo %1, $ac1\n\t"
52 "rddsp %2\n\t"
53 : "=r"(acho), "=r"(aclo), "=r"(dsp)
54 : "r"(achi), "r"(acli), "r"(rs), "r"(rt)
57 dsp = (dsp >> 17) & 0x1;
58 if ((dsp != 0x1) || (resulth != acho) || (resultl != aclo)) {
59 printf("2 maq_sa.w.qhrr wrong\n");
61 return -1;
63 return 0;