Home | History | Annotate | Line # | Download | only in fr550
      1 # frv testcase for cmcpxru $GRi,$GRj,$GRk,$CCi,$cond
      2 # mach: all
      3 
      4 	.include "../testutils.inc"
      5 
      6 	start
      7 
      8 	.global cmcpxru
      9 cmcpxru:
     10 	set_spr_immed	0x1b1b,cccr
     11 
     12 	set_fr_iimmed  	4,2,fr7		; multiply small numbers
     13 	set_fr_iimmed  	5,3,fr8
     14 	cmcpxru      	fr7,fr8,acc0,cc0,1
     15 	test_accg_immed 	0,accg0
     16 	test_acc_immed 	14,acc0
     17 
     18 	set_fr_iimmed  	1,2,fr7		; multiply by 1
     19 	set_fr_iimmed  	3,1,fr8
     20 	cmcpxru      	fr7,fr8,acc0,cc0,1
     21 	test_accg_immed 	0,accg0
     22 	test_acc_immed 	1,acc0
     23 
     24 	set_fr_iimmed  	0,2,fr7		; multiply by 0
     25 	set_fr_iimmed  	2,0,fr8
     26 	cmcpxru      	fr7,fr8,acc0,cc0,1
     27 	test_accg_immed 	0,accg0
     28 	test_acc_immed 	0,acc0
     29 
     30 	set_fr_iimmed 	0x3fff,1,fr7	; 15 bit result
     31 	set_fr_iimmed  	2,0x0001,fr8
     32 	cmcpxru      	fr7,fr8,acc0,cc0,1
     33 	test_accg_immed 	0,accg0
     34 	test_acc_limmed	0x0000,0x7ffd,acc0
     35 
     36 	set_fr_iimmed  	0x4000,1,fr7	; 16 bit result
     37 	set_fr_iimmed  	4,0x0001,fr8
     38 	cmcpxru      	fr7,fr8,acc0,cc0,1
     39 	test_accg_immed 	0,accg0
     40 	test_acc_limmed	0x0000,0xffff,acc0
     41 
     42 	set_fr_iimmed  	0x8000,1,fr7	; 17 bit result
     43 	set_fr_iimmed  	4,0x0001,fr8
     44 	cmcpxru      	fr7,fr8,acc0,cc0,1
     45 	test_accg_immed 	0,accg0
     46 	test_acc_immed 	0x0001ffff,acc0
     47 
     48 	set_fr_iimmed  	0x7fff,0x0000,fr7	; max positive result
     49 	set_fr_iimmed  	0x7fff,0x7fff,fr8
     50 	cmcpxru      	fr7,fr8,acc0,cc4,1
     51 	test_accg_immed 	0,accg0
     52 	test_acc_immed 	0x3fff0001,acc0
     53 
     54 	set_fr_iimmed  	0x8000,0x8000,fr7	; max positive result
     55 	set_fr_iimmed  	0x8000,0x0000,fr8
     56 	cmcpxru      	fr7,fr8,acc0,cc4,1
     57 	test_accg_immed 	0,accg0
     58 	test_acc_limmed	0x4000,0x0000,acc0
     59 
     60 	set_fr_iimmed  	0xffff,0x0000,fr7	; max positive result
     61 	set_fr_iimmed  	0xffff,0xffff,fr8
     62 	cmcpxru      	fr7,fr8,acc0,cc4,1
     63 	test_accg_immed 	0,accg0
     64 	test_acc_limmed	0xfffe,0x0001,acc0
     65 
     66 	set_fr_iimmed  	0x0000,0x0001,fr7	; saturation
     67 	set_fr_iimmed  	0xffff,0x0001,fr8
     68 	cmcpxru      	fr7,fr8,acc0,cc4,1
     69 	test_spr_bits	0x3c,2,0x8,msr0		; msr0.sie is set
     70 	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
     71 	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
     72 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
     73 	test_accg_immed 	0,accg0
     74 	test_acc_immed	0,acc0
     75 
     76 	set_fr_iimmed  	0x0000,0xffff,fr7	; saturation
     77 	set_fr_iimmed  	0xffff,0xffff,fr8
     78 	cmcpxru      	fr7,fr8,acc0,cc4,1
     79 	test_spr_bits	0x3c,2,0x8,msr0		; msr0.sie is set
     80 	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
     81 	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
     82 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
     83 	test_accg_immed 	0,accg0
     84 	test_acc_immed	0,acc0
     85 
     86 	set_fr_iimmed  	0xfffe,0xffff,fr7	; saturation
     87 	set_fr_iimmed  	0xffff,0xffff,fr8
     88 	cmcpxru      	fr7,fr8,acc0,cc4,1
     89 	test_spr_bits	0x3c,2,0x8,msr0		; msr0.sie is set
     90 	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
     91 	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
     92 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
     93 	test_accg_immed 	0,accg0
     94 	test_acc_immed	0,acc0
     95 
     96 	set_fr_iimmed  	4,2,fr7		; multiply small numbers
     97 	set_fr_iimmed  	5,3,fr8
     98 	cmcpxru      	fr7,fr8,acc0,cc1,0
     99 	test_accg_immed 	0,accg0
    100 	test_acc_immed 	14,acc0
    101 
    102 	set_fr_iimmed  	1,2,fr7		; multiply by 1
    103 	set_fr_iimmed  	3,1,fr8
    104 	cmcpxru      	fr7,fr8,acc0,cc1,0
    105 	test_accg_immed 	0,accg0
    106 	test_acc_immed 	1,acc0
    107 
    108 	set_fr_iimmed  	0,2,fr7		; multiply by 0
    109 	set_fr_iimmed  	2,0,fr8
    110 	cmcpxru      	fr7,fr8,acc0,cc1,0
    111 	test_accg_immed 	0,accg0
    112 	test_acc_immed 	0,acc0
    113 
    114 	set_fr_iimmed 	0x3fff,1,fr7	; 15 bit result
    115 	set_fr_iimmed  	2,0x0001,fr8
    116 	cmcpxru      	fr7,fr8,acc0,cc1,0
    117 	test_accg_immed 	0,accg0
    118 	test_acc_limmed	0x0000,0x7ffd,acc0
    119 
    120 	set_fr_iimmed  	0x4000,1,fr7	; 16 bit result
    121 	set_fr_iimmed  	4,0x0001,fr8
    122 	cmcpxru      	fr7,fr8,acc0,cc1,0
    123 	test_accg_immed 	0,accg0
    124 	test_acc_limmed	0x0000,0xffff,acc0
    125 
    126 	set_fr_iimmed  	0x8000,1,fr7	; 17 bit result
    127 	set_fr_iimmed  	4,0x0001,fr8
    128 	cmcpxru      	fr7,fr8,acc0,cc1,0
    129 	test_accg_immed 	0,accg0
    130 	test_acc_immed 	0x0001ffff,acc0
    131 
    132 	set_fr_iimmed  	0x7fff,0x0000,fr7	; max positive result
    133 	set_fr_iimmed  	0x7fff,0x7fff,fr8
    134 	cmcpxru      	fr7,fr8,acc0,cc5,0
    135 	test_accg_immed 	0,accg0
    136 	test_acc_immed 	0x3fff0001,acc0
    137 
    138 	set_fr_iimmed  	0x8000,0x8000,fr7	; max positive result
    139 	set_fr_iimmed  	0x8000,0x0000,fr8
    140 	cmcpxru      	fr7,fr8,acc0,cc5,0
    141 	test_accg_immed 	0,accg0
    142 	test_acc_limmed	0x4000,0x0000,acc0
    143 
    144 	set_fr_iimmed  	0xffff,0x0000,fr7	; max positive result
    145 	set_fr_iimmed  	0xffff,0xffff,fr8
    146 	cmcpxru      	fr7,fr8,acc0,cc5,0
    147 	test_accg_immed 	0,accg0
    148 	test_acc_limmed	0xfffe,0x0001,acc0
    149 
    150 	set_fr_iimmed  	0x0000,0x0001,fr7	; saturation
    151 	set_fr_iimmed  	0xffff,0x0001,fr8
    152 	cmcpxru      	fr7,fr8,acc0,cc5,0
    153 	test_spr_bits	0x3c,2,0x8,msr0		; msr0.sie is set
    154 	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
    155 	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
    156 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
    157 	test_accg_immed 	0,accg0
    158 	test_acc_immed	0,acc0
    159 
    160 	set_fr_iimmed  	0x0000,0xffff,fr7	; saturation
    161 	set_fr_iimmed  	0xffff,0xffff,fr8
    162 	cmcpxru      	fr7,fr8,acc0,cc5,0
    163 	test_spr_bits	0x3c,2,0x8,msr0		; msr0.sie is set
    164 	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
    165 	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
    166 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
    167 	test_accg_immed 	0,accg0
    168 	test_acc_immed	0,acc0
    169 
    170 	set_fr_iimmed  	0xfffe,0xffff,fr7	; saturation
    171 	set_fr_iimmed  	0xffff,0xffff,fr8
    172 	cmcpxru      	fr7,fr8,acc0,cc5,0
    173 	test_spr_bits	0x3c,2,0x8,msr0		; msr0.sie is set
    174 	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
    175 	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
    176 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
    177 	test_accg_immed 	0,accg0
    178 	test_acc_immed	0,acc0
    179 
    180 	set_spr_immed	0,msr0
    181 	set_accg_immed 	0x00000011,accg0
    182 	set_acc_immed 	0x11111111,acc0
    183 	set_fr_iimmed  	4,2,fr7		; multiply small numbers
    184 	set_fr_iimmed  	5,3,fr8
    185 	cmcpxru      	fr7,fr8,acc0,cc0,0
    186 	test_accg_immed 	0x00000011,accg0
    187 	test_acc_immed 	0x11111111,acc0
    188 
    189 	set_fr_iimmed  	1,2,fr7		; multiply by 1
    190 	set_fr_iimmed  	3,1,fr8
    191 	cmcpxru      	fr7,fr8,acc0,cc0,0
    192 	test_accg_immed 	0x00000011,accg0
    193 	test_acc_immed 	0x11111111,acc0
    194 
    195 	set_fr_iimmed  	0,2,fr7		; multiply by 0
    196 	set_fr_iimmed  	2,0,fr8
    197 	cmcpxru      	fr7,fr8,acc0,cc0,0
    198 	test_accg_immed 	0x00000011,accg0
    199 	test_acc_immed 	0x11111111,acc0
    200 
    201 	set_fr_iimmed 	0x3fff,1,fr7	; 15 bit result
    202 	set_fr_iimmed  	2,0x0001,fr8
    203 	cmcpxru      	fr7,fr8,acc0,cc0,0
    204 	test_accg_immed 	0x00000011,accg0
    205 	test_acc_immed 	0x11111111,acc0
    206 
    207 	set_fr_iimmed  	0x4000,1,fr7	; 16 bit result
    208 	set_fr_iimmed  	4,0x0001,fr8
    209 	cmcpxru      	fr7,fr8,acc0,cc0,0
    210 	test_accg_immed 	0x00000011,accg0
    211 	test_acc_immed 	0x11111111,acc0
    212 
    213 	set_fr_iimmed  	0x8000,1,fr7	; 17 bit result
    214 	set_fr_iimmed  	4,0x0001,fr8
    215 	cmcpxru      	fr7,fr8,acc0,cc0,0
    216 	test_accg_immed 	0x00000011,accg0
    217 	test_acc_immed 	0x11111111,acc0
    218 
    219 	set_fr_iimmed  	0x7fff,0x0000,fr7	; max positive result
    220 	set_fr_iimmed  	0x7fff,0x7fff,fr8
    221 	cmcpxru      	fr7,fr8,acc0,cc4,0
    222 	test_accg_immed 	0x00000011,accg0
    223 	test_acc_immed 	0x11111111,acc0
    224 
    225 	set_fr_iimmed  	0x8000,0x8000,fr7	; max positive result
    226 	set_fr_iimmed  	0x8000,0x0000,fr8
    227 	cmcpxru      	fr7,fr8,acc0,cc4,0
    228 	test_accg_immed 	0x00000011,accg0
    229 	test_acc_immed 	0x11111111,acc0
    230 
    231 	set_fr_iimmed  	0xffff,0x0000,fr7	; max positive result
    232 	set_fr_iimmed  	0xffff,0xffff,fr8
    233 	cmcpxru      	fr7,fr8,acc0,cc4,0
    234 	test_accg_immed 	0x00000011,accg0
    235 	test_acc_immed 	0x11111111,acc0
    236 
    237 	set_fr_iimmed  	0x0000,0x0001,fr7	; saturation
    238 	set_fr_iimmed  	0xffff,0x0001,fr8
    239 	cmcpxru      	fr7,fr8,acc0,cc4,0
    240 	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
    241 	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
    242 	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
    243 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is always set
    244 	test_accg_immed 	0x00000011,accg0
    245 	test_acc_immed 	0x11111111,acc0
    246 
    247 	set_fr_iimmed  	0x0000,0xffff,fr7	; saturation
    248 	set_fr_iimmed  	0xffff,0xffff,fr8
    249 	cmcpxru      	fr7,fr8,acc0,cc4,0
    250 	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
    251 	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
    252 	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
    253 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is always set
    254 	test_accg_immed 	0x00000011,accg0
    255 	test_acc_immed 	0x11111111,acc0
    256 
    257 	set_fr_iimmed  	0xfffe,0xffff,fr7	; saturation
    258 	set_fr_iimmed  	0xffff,0xffff,fr8
    259 	cmcpxru      	fr7,fr8,acc0,cc4,0
    260 	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
    261 	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
    262 	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
    263 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is always set
    264 	test_accg_immed 	0x00000011,accg0
    265 	test_acc_immed 	0x11111111,acc0
    266 
    267 	set_spr_immed	0,msr0
    268 	set_accg_immed 	0x00000011,accg0
    269 	set_acc_immed 	0x11111111,acc0
    270 	set_fr_iimmed  	4,2,fr7		; multiply small numbers
    271 	set_fr_iimmed  	5,3,fr8
    272 	cmcpxru      	fr7,fr8,acc0,cc1,1
    273 	test_accg_immed 	0x00000011,accg0
    274 	test_acc_immed 	0x11111111,acc0
    275 
    276 	set_fr_iimmed  	1,2,fr7		; multiply by 1
    277 	set_fr_iimmed  	3,1,fr8
    278 	cmcpxru      	fr7,fr8,acc0,cc1,1
    279 	test_accg_immed 	0x00000011,accg0
    280 	test_acc_immed 	0x11111111,acc0
    281 
    282 	set_fr_iimmed  	0,2,fr7		; multiply by 0
    283 	set_fr_iimmed  	2,0,fr8
    284 	cmcpxru      	fr7,fr8,acc0,cc1,1
    285 	test_accg_immed 	0x00000011,accg0
    286 	test_acc_immed 	0x11111111,acc0
    287 
    288 	set_fr_iimmed 	0x3fff,1,fr7	; 15 bit result
    289 	set_fr_iimmed  	2,0x0001,fr8
    290 	cmcpxru      	fr7,fr8,acc0,cc1,1
    291 	test_accg_immed 	0x00000011,accg0
    292 	test_acc_immed 	0x11111111,acc0
    293 
    294 	set_fr_iimmed  	0x4000,1,fr7	; 16 bit result
    295 	set_fr_iimmed  	4,0x0001,fr8
    296 	cmcpxru      	fr7,fr8,acc0,cc1,1
    297 	test_accg_immed 	0x00000011,accg0
    298 	test_acc_immed 	0x11111111,acc0
    299 
    300 	set_fr_iimmed  	0x8000,1,fr7	; 17 bit result
    301 	set_fr_iimmed  	4,0x0001,fr8
    302 	cmcpxru      	fr7,fr8,acc0,cc1,1
    303 	test_accg_immed 	0x00000011,accg0
    304 	test_acc_immed 	0x11111111,acc0
    305 
    306 	set_fr_iimmed  	0x7fff,0x0000,fr7	; max positive result
    307 	set_fr_iimmed  	0x7fff,0x7fff,fr8
    308 	cmcpxru      	fr7,fr8,acc0,cc5,1
    309 	test_accg_immed 	0x00000011,accg0
    310 	test_acc_immed 	0x11111111,acc0
    311 
    312 	set_fr_iimmed  	0x8000,0x8000,fr7	; max positive result
    313 	set_fr_iimmed  	0x8000,0x0000,fr8
    314 	cmcpxru      	fr7,fr8,acc0,cc5,1
    315 	test_accg_immed 	0x00000011,accg0
    316 	test_acc_immed 	0x11111111,acc0
    317 
    318 	set_fr_iimmed  	0xffff,0x0000,fr7	; max positive result
    319 	set_fr_iimmed  	0xffff,0xffff,fr8
    320 	cmcpxru      	fr7,fr8,acc0,cc5,1
    321 	test_accg_immed 	0x00000011,accg0
    322 	test_acc_immed 	0x11111111,acc0
    323 
    324 	set_fr_iimmed  	0x0000,0x0001,fr7	; saturation
    325 	set_fr_iimmed  	0xffff,0x0001,fr8
    326 	cmcpxru      	fr7,fr8,acc0,cc5,1
    327 	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
    328 	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
    329 	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
    330 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is always set
    331 	test_accg_immed 	0x00000011,accg0
    332 	test_acc_immed 	0x11111111,acc0
    333 
    334 	set_fr_iimmed  	0x0000,0xffff,fr7	; saturation
    335 	set_fr_iimmed  	0xffff,0xffff,fr8
    336 	cmcpxru      	fr7,fr8,acc0,cc5,1
    337 	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
    338 	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
    339 	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
    340 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is always set
    341 	test_accg_immed 	0x00000011,accg0
    342 	test_acc_immed 	0x11111111,acc0
    343 
    344 	set_fr_iimmed  	0xfffe,0xffff,fr7	; saturation
    345 	set_fr_iimmed  	0xffff,0xffff,fr8
    346 	cmcpxru      	fr7,fr8,acc0,cc5,1
    347 	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
    348 	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
    349 	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
    350 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is always set
    351 	test_accg_immed 	0x00000011,accg0
    352 	test_acc_immed 	0x11111111,acc0
    353 
    354 	set_spr_immed	0,msr0
    355 	set_accg_immed 	0x00000011,accg0
    356 	set_acc_immed 	0x11111111,acc0
    357 	set_fr_iimmed  	4,2,fr7		; multiply small numbers
    358 	set_fr_iimmed  	5,3,fr8
    359 	cmcpxru      	fr7,fr8,acc0,cc2,1
    360 	test_accg_immed 	0x00000011,accg0
    361 	test_acc_immed 	0x11111111,acc0
    362 
    363 	set_fr_iimmed  	1,2,fr7		; multiply by 1
    364 	set_fr_iimmed  	3,1,fr8
    365 	cmcpxru      	fr7,fr8,acc0,cc2,1
    366 	test_accg_immed 	0x00000011,accg0
    367 	test_acc_immed 	0x11111111,acc0
    368 
    369 	set_fr_iimmed  	0,2,fr7		; multiply by 0
    370 	set_fr_iimmed  	2,0,fr8
    371 	cmcpxru      	fr7,fr8,acc0,cc2,1
    372 	test_accg_immed 	0x00000011,accg0
    373 	test_acc_immed 	0x11111111,acc0
    374 
    375 	set_fr_iimmed 	0x3fff,1,fr7	; 15 bit result
    376 	set_fr_iimmed  	2,0x0001,fr8
    377 	cmcpxru      	fr7,fr8,acc0,cc2,1
    378 	test_accg_immed 	0x00000011,accg0
    379 	test_acc_immed 	0x11111111,acc0
    380 
    381 	set_fr_iimmed  	0x4000,1,fr7	; 16 bit result
    382 	set_fr_iimmed  	4,0x0001,fr8
    383 	cmcpxru      	fr7,fr8,acc0,cc2,1
    384 	test_accg_immed 	0x00000011,accg0
    385 	test_acc_immed 	0x11111111,acc0
    386 
    387 	set_fr_iimmed  	0x8000,1,fr7	; 17 bit result
    388 	set_fr_iimmed  	4,0x0001,fr8
    389 	cmcpxru      	fr7,fr8,acc0,cc2,1
    390 	test_accg_immed 	0x00000011,accg0
    391 	test_acc_immed 	0x11111111,acc0
    392 
    393 	set_fr_iimmed  	0x7fff,0x0000,fr7	; max positive result
    394 	set_fr_iimmed  	0x7fff,0x7fff,fr8
    395 	cmcpxru      	fr7,fr8,acc0,cc6,1
    396 	test_accg_immed 	0x00000011,accg0
    397 	test_acc_immed 	0x11111111,acc0
    398 
    399 	set_fr_iimmed  	0x8000,0x8000,fr7	; max positive result
    400 	set_fr_iimmed  	0x8000,0x0000,fr8
    401 	cmcpxru      	fr7,fr8,acc0,cc6,1
    402 	test_accg_immed 	0x00000011,accg0
    403 	test_acc_immed 	0x11111111,acc0
    404 
    405 	set_fr_iimmed  	0xffff,0x0000,fr7	; max positive result
    406 	set_fr_iimmed  	0xffff,0xffff,fr8
    407 	cmcpxru      	fr7,fr8,acc0,cc6,1
    408 	test_accg_immed 	0x00000011,accg0
    409 	test_acc_immed 	0x11111111,acc0
    410 
    411 	set_fr_iimmed  	0x0000,0x0001,fr7	; saturation
    412 	set_fr_iimmed  	0xffff,0x0001,fr8
    413 	cmcpxru      	fr7,fr8,acc0,cc6,1
    414 	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
    415 	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
    416 	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
    417 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is always set
    418 	test_accg_immed 	0x00000011,accg0
    419 	test_acc_immed 	0x11111111,acc0
    420 
    421 	set_fr_iimmed  	0x0000,0xffff,fr7	; saturation
    422 	set_fr_iimmed  	0xffff,0xffff,fr8
    423 	cmcpxru      	fr7,fr8,acc0,cc6,1
    424 	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
    425 	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
    426 	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
    427 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is always set
    428 	test_accg_immed 	0x00000011,accg0
    429 	test_acc_immed 	0x11111111,acc0
    430 
    431 	set_fr_iimmed  	0xfffe,0xffff,fr7	; saturation
    432 	set_fr_iimmed  	0xffff,0xffff,fr8
    433 	cmcpxru      	fr7,fr8,acc0,cc6,1
    434 	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
    435 	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
    436 	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
    437 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is always set
    438 	test_accg_immed 	0x00000011,accg0
    439 	test_acc_immed 	0x11111111,acc0
    440 ;
    441 	set_spr_immed	0,msr0
    442 	set_accg_immed 	0x00000011,accg0
    443 	set_acc_immed 	0x11111111,acc0
    444 	set_fr_iimmed  	4,2,fr7		; multiply small numbers
    445 	set_fr_iimmed  	5,3,fr8
    446 	cmcpxru      	fr7,fr8,acc0,cc3,1
    447 	test_accg_immed 	0x00000011,accg0
    448 	test_acc_immed 	0x11111111,acc0
    449 
    450 	set_fr_iimmed  	1,2,fr7		; multiply by 1
    451 	set_fr_iimmed  	3,1,fr8
    452 	cmcpxru      	fr7,fr8,acc0,cc3,1
    453 	test_accg_immed 	0x00000011,accg0
    454 	test_acc_immed 	0x11111111,acc0
    455 
    456 	set_fr_iimmed  	0,2,fr7		; multiply by 0
    457 	set_fr_iimmed  	2,0,fr8
    458 	cmcpxru      	fr7,fr8,acc0,cc3,1
    459 	test_accg_immed 	0x00000011,accg0
    460 	test_acc_immed 	0x11111111,acc0
    461 
    462 	set_fr_iimmed 	0x3fff,1,fr7	; 15 bit result
    463 	set_fr_iimmed  	2,0x0001,fr8
    464 	cmcpxru      	fr7,fr8,acc0,cc3,1
    465 	test_accg_immed 	0x00000011,accg0
    466 	test_acc_immed 	0x11111111,acc0
    467 
    468 	set_fr_iimmed  	0x4000,1,fr7	; 16 bit result
    469 	set_fr_iimmed  	4,0x0001,fr8
    470 	cmcpxru      	fr7,fr8,acc0,cc3,1
    471 	test_accg_immed 	0x00000011,accg0
    472 	test_acc_immed 	0x11111111,acc0
    473 
    474 	set_fr_iimmed  	0x8000,1,fr7	; 17 bit result
    475 	set_fr_iimmed  	4,0x0001,fr8
    476 	cmcpxru      	fr7,fr8,acc0,cc3,1
    477 	test_accg_immed 	0x00000011,accg0
    478 	test_acc_immed 	0x11111111,acc0
    479 
    480 	set_fr_iimmed  	0x7fff,0x0000,fr7	; max positive result
    481 	set_fr_iimmed  	0x7fff,0x7fff,fr8
    482 	cmcpxru      	fr7,fr8,acc0,cc7,1
    483 	test_accg_immed 	0x00000011,accg0
    484 	test_acc_immed 	0x11111111,acc0
    485 
    486 	set_fr_iimmed  	0x8000,0x8000,fr7	; max positive result
    487 	set_fr_iimmed  	0x8000,0x0000,fr8
    488 	cmcpxru      	fr7,fr8,acc0,cc7,1
    489 	test_accg_immed 	0x00000011,accg0
    490 	test_acc_immed 	0x11111111,acc0
    491 
    492 	set_fr_iimmed  	0xffff,0x0000,fr7	; max positive result
    493 	set_fr_iimmed  	0xffff,0xffff,fr8
    494 	cmcpxru      	fr7,fr8,acc0,cc7,1
    495 	test_accg_immed 	0x00000011,accg0
    496 	test_acc_immed 	0x11111111,acc0
    497 
    498 	set_fr_iimmed  	0x0000,0x0001,fr7	; saturation
    499 	set_fr_iimmed  	0xffff,0x0001,fr8
    500 	cmcpxru      	fr7,fr8,acc0,cc7,1
    501 	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
    502 	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
    503 	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
    504 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is always set
    505 	test_accg_immed 	0x00000011,accg0
    506 	test_acc_immed 	0x11111111,acc0
    507 
    508 	set_fr_iimmed  	0x0000,0xffff,fr7	; saturation
    509 	set_fr_iimmed  	0xffff,0xffff,fr8
    510 	cmcpxru      	fr7,fr8,acc0,cc7,1
    511 	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
    512 	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
    513 	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
    514 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is always set
    515 	test_accg_immed 	0x00000011,accg0
    516 	test_acc_immed 	0x11111111,acc0
    517 
    518 	set_fr_iimmed  	0xfffe,0xffff,fr7	; saturation
    519 	set_fr_iimmed  	0xffff,0xffff,fr8
    520 	cmcpxru      	fr7,fr8,acc0,cc7,1
    521 	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
    522 	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
    523 	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
    524 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is always set
    525 	test_accg_immed 	0x00000011,accg0
    526 	test_acc_immed 	0x11111111,acc0
    527 
    528 	pass
    529