1# frv testcase for mqcpxiu $GRi,$GRj,$GRk 2# mach: all 3 4 .include "testutils.inc" 5 6 start 7 8 .global mqcpxiu 9mqcpxiu: 10 set_fr_iimmed 4,2,fr8 ; multiply small numbers 11 set_fr_iimmed 3,5,fr10 12 set_fr_iimmed 1,2,fr9 ; multiply by 1 13 set_fr_iimmed 1,3,fr11 14 mqcpxiu fr8,fr10,acc0 15 test_accg_immed 0,accg0 16 test_acc_immed 26,acc0 17 test_accg_immed 0,accg1 18 test_acc_immed 5,acc1 19 20 set_fr_iimmed 0,2,fr8 ; multiply by 0 21 set_fr_iimmed 0,2,fr10 22 set_fr_iimmed 0x3fff,1,fr9 ; 15 bit result 23 set_fr_iimmed 0x0001,2,fr11 24 mqcpxiu fr8,fr10,acc0 25 test_accg_immed 0,accg0 26 test_acc_immed 0,acc0 27 test_accg_immed 0,accg1 28 test_acc_limmed 0x0000,0x7fff,acc1 29 30 set_fr_iimmed 0x4000,1,fr8 ; 16 bit result 31 set_fr_iimmed 0x0001,2,fr10 32 set_fr_iimmed 0x4000,1,fr9 ; 17 bit result 33 set_fr_iimmed 0x0001,4,fr11 34 mqcpxiu fr8,fr10,acc0 35 test_accg_immed 0,accg0 36 test_acc_limmed 0x0000,0x8001,acc0 37 test_accg_immed 0,accg1 38 test_acc_immed 0x0010001,acc1 39 40 set_fr_iimmed 0x7fff,0x0000,fr8 ; max positive result 41 set_fr_iimmed 0x7fff,0x7fff,fr10 42 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result 43 set_fr_iimmed 0x0000,0x8000,fr11 44 mqcpxiu fr8,fr10,acc0 45 test_accg_immed 0,accg0 46 test_acc_immed 0x3fff0001,acc0 47 test_accg_immed 0,accg1 48 test_acc_limmed 0x4000,0x0000,acc1 49 50 set_fr_iimmed 0xffff,0x0000,fr8 ; max positive result 51 set_fr_iimmed 0xffff,0xffff,fr10 52 set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result 53 set_fr_iimmed 0xffff,0xffff,fr11 54 mqcpxiu fr8,fr10,acc0 55 test_accg_immed 0,accg0 56 test_acc_limmed 0xfffe,0x0001,acc0 57 test_accg_immed 1,accg1 58 test_acc_immed 0xfffc0002,acc1 59 60 pass 61