Acceptance tests: show test report on GitLab CI
[qemu/ar7.git] / tests / tcg / xtensa / test_rem.S
blob0b96bb3390abde47906059178709a4eac307d831
1 #include "macros.inc"
3 test_suite rem
5 #if XCHAL_HAVE_DIV32
7 test remu_pp
8     movi    a2, 0x5a5a137f
9     mov     a3, a2
10     movi    a4, 0x137f5a5a
11     movi    a6, 0x0c5caa17
12     remu    a5, a2, a4
13     assert  eq, a5, a6
14     remu    a2, a2, a4
15     assert  eq, a2, a6
16     remu    a4, a3, a4
17     assert  eq, a4, a6
18 test_end
20 test remu_np
21     movi    a2, 0xa5a5137f
22     mov     a3, a2
23     movi    a4, 0x137f5a5a
24     movi    a6, 0x9aa40af
25     remu    a5, a2, a4
26     assert  eq, a5, a6
27     remu    a2, a2, a4
28     assert  eq, a2, a6
29     remu    a4, a3, a4
30     assert  eq, a4, a6
31 test_end
33 test remu_pn
34     movi    a2, 0x5a5a137f
35     mov     a3, a2
36     movi    a4, 0xf7315a5a
37     movi    a6, 0x5a5a137f
38     remu    a5, a2, a4
39     assert  eq, a5, a6
40     remu    a2, a2, a4
41     assert  eq, a2, a6
42     remu    a4, a3, a4
43     assert  eq, a4, a6
44 test_end
46 test remu_nn
47     movi    a2, 0xf7315a5a
48     mov     a3, a2
49     movi    a4, 0xa5a5137f
50     movi    a6, 0x518c46db
51     remu    a5, a2, a4
52     assert  eq, a5, a6
53     remu    a2, a2, a4
54     assert  eq, a2, a6
55     remu    a4, a3, a4
56     assert  eq, a4, a6
57 test_end
59 test remu_exc
60     set_vector kernel, 2f
61     movi    a2, 0xf7315a5a
62     movi    a4, 0x00000000
64     remu    a5, a2, a4
65     test_fail
67     rsr     a2, exccause
68     assert  eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */
69     rsr     a2, epc1
70     movi    a3, 1b
71     assert  eq, a2, a3
72 test_end
74 test rems_pp
75     movi    a2, 0x5a5a137f
76     mov     a3, a2
77     movi    a4, 0x137f5a5a
78     movi    a6, 0x0c5caa17
79     rems    a5, a2, a4
80     assert  eq, a5, a6
81     rems    a2, a2, a4
82     assert  eq, a2, a6
83     rems    a4, a3, a4
84     assert  eq, a4, a6
85 test_end
87 test rems_np
88     movi    a2, 0xa5a5137f
89     mov     a3, a2
90     movi    a4, 0x137f5a5a
91     movi    a6, 0xf3a27ce7
92     rems    a5, a2, a4
93     assert  eq, a5, a6
94     rems    a2, a2, a4
95     assert  eq, a2, a6
96     rems    a4, a3, a4
97     assert  eq, a4, a6
98 test_end
100 test rems_pn
101     movi    a2, 0x5a5a137f
102     mov     a3, a2
103     movi    a4, 0xf7315a5a
104     movi    a6, 0x02479b03
105     rems    a5, a2, a4
106     assert  eq, a5, a6
107     rems    a2, a2, a4
108     assert  eq, a2, a6
109     rems    a4, a3, a4
110     assert  eq, a4, a6
111 test_end
113 test rems_nn
114     movi    a2, 0xf7315a5a
115     mov     a3, a2
116     movi    a4, 0xa5a5137f
117     movi    a6, 0xf7315a5a
118     rems    a5, a2, a4
119     assert  eq, a5, a6
120     rems    a2, a2, a4
121     assert  eq, a2, a6
122     rems    a4, a3, a4
123     assert  eq, a4, a6
124 test_end
126 test rems_over
127     movi    a2, 0x80000000
128     movi    a4, 0xffffffff
129     movi    a6, 0
130     rems    a5, a2, a4
131     assert  eq, a5, a6
132 test_end
134 test rems_exc
135     set_vector kernel, 2f
136     movi    a2, 0xf7315a5a
137     movi    a4, 0x00000000
139     rems    a5, a2, a4
140     test_fail
142     rsr     a2, exccause
143     assert  eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */
144     rsr     a2, epc1
145     movi    a3, 1b
146     assert  eq, a2, a3
147 test_end
149 #endif
151 test_suite_end