libqtest: Inline g_assert_no_errno()
[qemu/armbru.git] / tests / tcg / mips / mips64-dspr2 / mul_ph.c
blob5a3d05cb290bb9f6a08f1ba2a3821039312a2fd5
1 #include"io.h"
3 int main(void)
5 long long rd, rs, rt, dsp;
6 long long result, resultdsp;
8 rs = 0x03FB1234;
9 rt = 0x0BCC4321;
10 result = 0xFFFFFFFFF504F4B4;
11 resultdsp = 1;
13 __asm
14 ("mul.ph %0, %2, %3\n\t"
15 "rddsp %1\n\t"
16 : "=r"(rd), "=r"(dsp)
17 : "r"(rs), "r"(rt)
19 dsp = (dsp >> 21) & 0x01;
20 if (rd != result || dsp != resultdsp) {
21 printf("mul.ph wrong\n");
22 return -1;
25 dsp = 0;
26 __asm
27 ("wrdsp %0\n\t"
29 : "r"(dsp)
32 rs = 0x00210010;
33 rt = 0x00110005;
34 result = 0x2310050;
35 resultdsp = 0;
37 __asm
38 ("mul.ph %0, %2, %3\n\t"
39 "rddsp %1\n\t"
40 : "=r"(rd), "=r"(dsp)
41 : "r"(rs), "r"(rt)
43 dsp = (dsp >> 21) & 0x01;
44 if (rd != result || dsp != resultdsp) {
45 printf("mul.ph wrong\n");
46 return -1;
49 return 0;