PPC: Fix rldcl
[qemu/agraf.git] / tests / tcg / mips / mips64-dsp / dextr_s_h.c
blob1adb5549a989a3fe657f0bd0ad599170c402502e
1 #include "io.h"
3 int main(void)
5 long long rt, dsp;
6 long long achi, acli;
7 long long res, resdsp;
9 achi = 0x87654321;
10 acli = 0x12345678;
12 res = 0xffffffffffff8000;
13 resdsp = 0x1;
15 __asm
16 ("mthi %2, $ac1\n\t"
17 "mtlo %3, $ac1\n\t"
18 "dextr_s.h %0, $ac1, 0x8\n\t"
19 "rddsp %1\n\t"
20 : "=r"(rt), "=r"(dsp)
21 : "r"(achi), "r"(acli)
23 dsp = (dsp >> 23) & 0x1;
25 if ((dsp != resdsp) || (rt != res)) {
26 printf("1 dextr_s.h error\n");
27 return -1;
30 achi = 0x77654321;
31 acli = 0x12345678;
33 res = 0x7fff;
34 resdsp = 0x1;
36 __asm
37 ("mthi %2, $ac1\n\t"
38 "mtlo %3, $ac1\n\t"
39 "dextr_s.h %0, $ac1, 0x8\n\t"
40 "rddsp %1\n\t"
41 : "=r"(rt), "=r"(dsp)
42 : "r"(achi), "r"(acli)
44 dsp = (dsp >> 23) & 0x1;
46 if ((dsp != resdsp) || (rt != res)) {
47 printf("2 dextr_s.h error\n");
48 return -1;
51 achi = 0x00;
52 acli = 0x78;
54 res = 0x7;
55 resdsp = 0x1;
57 __asm
58 ("mthi %2, $ac1\n\t"
59 "mtlo %3, $ac1\n\t"
60 "dextr_s.h %0, $ac1, 0x4\n\t"
61 "rddsp %1\n\t"
62 : "=r"(rt), "=r"(dsp)
63 : "r"(achi), "r"(acli)
65 dsp = (dsp >> 23) & 0x1;
67 if ((dsp != resdsp) || (rt != res)) {
68 printf("3 dextr_s.h error\n");
69 return -1;
72 return 0;