1 # frv testcase for smul $GRi,$GRj,$GRk
4 .include "testutils.inc"
11 set_gr_immed 3,gr7 ; multiply small numbers
17 set_gr_immed 1,gr7 ; multiply by 1
23 set_gr_immed 2,gr7 ; multiply by 1
29 set_gr_immed 0,gr7 ; multiply by 0
35 set_gr_immed 2,gr7 ; multiply by 0
41 set_gr_limmed 0x3fff,0xffff,gr7 ; 31 bit result
45 test_gr_limmed 0x7fff,0xfffe,gr9
47 set_gr_limmed 0x4000,0x0000,gr7 ; 32 bit result
51 test_gr_limmed 0x8000,0x0000,gr9
53 set_gr_limmed 0x4000,0x0000,gr7 ; 33 bit result
57 test_gr_limmed 0x0000,0x0000,gr9
59 set_gr_limmed 0x7fff,0xffff,gr7 ; max positive result
60 set_gr_limmed 0x7fff,0xffff,gr8
62 test_gr_limmed 0x3fff,0xffff,gr8
63 test_gr_immed 0x00000001,gr9
66 set_gr_immed -3,gr7 ; multiply small numbers
72 set_gr_immed 3,gr7 ; multiply small numbers
78 set_gr_immed 1,gr7 ; multiply by 1
84 set_gr_immed -2,gr7 ; multiply by 1
90 set_gr_immed 0,gr7 ; multiply by 0
96 set_gr_immed -2,gr7 ; multiply by 0
102 set_gr_limmed 0x2000,0x0001,gr7 ; 31 bit result
105 test_gr_limmed 0xffff,0xffff,gr8
106 test_gr_limmed 0xbfff,0xfffe,gr9
108 set_gr_limmed 0x4000,0x0000,gr7 ; 32 bit result
111 test_gr_limmed 0xffff,0xffff,gr8
112 test_gr_limmed 0x8000,0x0000,gr9
114 set_gr_limmed 0x4000,0x0001,gr7 ; 32 bit result
117 test_gr_limmed 0xffff,0xffff,gr8
118 test_gr_limmed 0x7fff,0xfffe,gr9
120 set_gr_limmed 0x4000,0x0000,gr7 ; 33 bit result
123 test_gr_limmed 0xffff,0xffff,gr8
124 test_gr_limmed 0x0000,0x0000,gr9
126 set_gr_limmed 0x7fff,0xffff,gr7 ; max negative result
127 set_gr_limmed 0x8000,0x0000,gr8
129 test_gr_limmed 0xc000,0x0000,gr8
130 test_gr_limmed 0x8000,0x0000,gr9
133 set_gr_immed -3,gr7 ; multiply small numbers
139 set_gr_immed -1,gr7 ; multiply by 1
145 set_gr_immed -2,gr7 ; multiply by 1
151 set_gr_limmed 0xc000,0x0001,gr7 ; 31 bit result
155 test_gr_limmed 0x7fff,0xfffe,gr9
157 set_gr_limmed 0xc000,0x0000,gr7 ; 32 bit result
161 test_gr_limmed 0x8000,0x0000,gr9
163 set_gr_limmed 0xc000,0x0000,gr7 ; 33 bit result
167 test_gr_immed 0x00000000,gr9
169 set_gr_limmed 0x8000,0x0001,gr7 ; almost max positive result
170 set_gr_limmed 0x8000,0x0001,gr8
172 test_gr_limmed 0x3fff,0xffff,gr8
173 test_gr_immed 0x00000001,gr9
176 set_gr_limmed 0x8000,0x0000,gr7 ; max positive result
177 set_gr_limmed 0x8000,0x0000,gr8
179 test_gr_limmed 0x4000,0x0000,gr8
180 test_gr_immed 0x00000000,gr9