xref: /openbmc/qemu/tests/tcg/xtensa/test_mul16.S (revision 4179575898fcc17c5e67306a357b8dfe64122e8e)
1a2e67072SMax Filippov#include "macros.inc"
2c09015ddSAnthony Liguori
3c09015ddSAnthony Liguoritest_suite mul16
4c09015ddSAnthony Liguori
5*50f0171aSMax Filippov#if XCHAL_HAVE_MUL16
6*50f0171aSMax Filippov
7c09015ddSAnthony Liguoritest mul16u_pp
8c09015ddSAnthony Liguori    movi    a2, 0x137f5a5a
9c09015ddSAnthony Liguori    mov     a3, a2
10c09015ddSAnthony Liguori    movi    a4, 0xa5a5137f
11c09015ddSAnthony Liguori    movi    a6, 0x06e180a6
12c09015ddSAnthony Liguori    mul16u  a5, a2, a4
13c09015ddSAnthony Liguori    assert  eq, a5, a6
14c09015ddSAnthony Liguori    mul16u  a2, a2, a4
15c09015ddSAnthony Liguori    assert  eq, a2, a6
16c09015ddSAnthony Liguori    mul16u  a3, a4, a3
17c09015ddSAnthony Liguori    assert  eq, a3, a6
18c09015ddSAnthony Liguoritest_end
19c09015ddSAnthony Liguori
20c09015ddSAnthony Liguoritest mul16u_np
21c09015ddSAnthony Liguori    movi    a2, 0x137fa5a5
22c09015ddSAnthony Liguori    mov     a3, a2
23c09015ddSAnthony Liguori    movi    a4, 0xa5a5137f
24c09015ddSAnthony Liguori    movi    a6, 0x0c9d6bdb
25c09015ddSAnthony Liguori    mul16u  a5, a2, a4
26c09015ddSAnthony Liguori    assert  eq, a5, a6
27c09015ddSAnthony Liguori    mul16u  a2, a2, a4
28c09015ddSAnthony Liguori    assert  eq, a2, a6
29c09015ddSAnthony Liguori    mul16u  a3, a4, a3
30c09015ddSAnthony Liguori    assert  eq, a3, a6
31c09015ddSAnthony Liguoritest_end
32c09015ddSAnthony Liguori
33c09015ddSAnthony Liguoritest mul16u_nn
34c09015ddSAnthony Liguori    movi    a2, 0x137fa5a5
35c09015ddSAnthony Liguori    mov     a3, a2
36c09015ddSAnthony Liguori    movi    a4, 0xa5a5f731
37c09015ddSAnthony Liguori    movi    a6, 0x9ff1e795
38c09015ddSAnthony Liguori    mul16u  a5, a2, a4
39c09015ddSAnthony Liguori    assert  eq, a5, a6
40c09015ddSAnthony Liguori    mul16u  a2, a2, a4
41c09015ddSAnthony Liguori    assert  eq, a2, a6
42c09015ddSAnthony Liguori    mul16u  a3, a4, a3
43c09015ddSAnthony Liguori    assert  eq, a3, a6
44c09015ddSAnthony Liguoritest_end
45c09015ddSAnthony Liguori
46c09015ddSAnthony Liguoritest mul16s_pp
47c09015ddSAnthony Liguori    movi    a2, 0x137f5a5a
48c09015ddSAnthony Liguori    mov     a3, a2
49c09015ddSAnthony Liguori    movi    a4, 0xa5a5137f
50c09015ddSAnthony Liguori    movi    a6, 0x06e180a6
51c09015ddSAnthony Liguori    mul16s  a5, a2, a4
52c09015ddSAnthony Liguori    assert  eq, a5, a6
53c09015ddSAnthony Liguori    mul16s  a2, a2, a4
54c09015ddSAnthony Liguori    assert  eq, a2, a6
55c09015ddSAnthony Liguori    mul16s  a3, a4, a3
56c09015ddSAnthony Liguori    assert  eq, a3, a6
57c09015ddSAnthony Liguoritest_end
58c09015ddSAnthony Liguori
59c09015ddSAnthony Liguoritest mul16s_np
60c09015ddSAnthony Liguori    movi    a2, 0x137fa5a5
61c09015ddSAnthony Liguori    mov     a3, a2
62c09015ddSAnthony Liguori    movi    a4, 0xa5a5137f
63c09015ddSAnthony Liguori    movi    a6, 0xf91e6bdb
64c09015ddSAnthony Liguori    mul16s  a5, a2, a4
65c09015ddSAnthony Liguori    assert  eq, a5, a6
66c09015ddSAnthony Liguori    mul16s  a2, a2, a4
67c09015ddSAnthony Liguori    assert  eq, a2, a6
68c09015ddSAnthony Liguori    mul16s  a3, a4, a3
69c09015ddSAnthony Liguori    assert  eq, a3, a6
70c09015ddSAnthony Liguoritest_end
71c09015ddSAnthony Liguori
72c09015ddSAnthony Liguoritest mul16s_nn
73c09015ddSAnthony Liguori    movi    a2, 0x137fa5a5
74c09015ddSAnthony Liguori    mov     a3, a2
75c09015ddSAnthony Liguori    movi    a4, 0xa5a5f731
76c09015ddSAnthony Liguori    movi    a6, 0x031be795
77c09015ddSAnthony Liguori    mul16s  a5, a2, a4
78c09015ddSAnthony Liguori    assert  eq, a5, a6
79c09015ddSAnthony Liguori    mul16s  a2, a2, a4
80c09015ddSAnthony Liguori    assert  eq, a2, a6
81c09015ddSAnthony Liguori    mul16s  a3, a4, a3
82c09015ddSAnthony Liguori    assert  eq, a3, a6
83c09015ddSAnthony Liguoritest_end
84c09015ddSAnthony Liguori
85*50f0171aSMax Filippov#endif
86*50f0171aSMax Filippov
87c09015ddSAnthony Liguoritest_suite_end
88