blob: f0fc09155644cee61856512227b354c3767bb00d [file] [log] [blame]
//Original:/testcases/core/c_alu2op_divs/c_alu2op_divs.dsp
// Spec Reference: alu2op divide s
# mach: bfin
.include "testutils.inc"
start
imm32 r0, 0x00000000;
imm32 r1, 0x12345678;
imm32 r2, 0x23456789;
imm32 r3, 0x3456789a;
imm32 r4, 0x856789ab;
imm32 r5, 0x96789abc;
imm32 r6, 0xa789abcd;
imm32 r7, 0xb89abcde;
R0.L = 1;
DIVS ( R1 , R0 );
DIVS ( R2 , R0 );
DIVS ( R3 , R0 );
DIVS ( R4 , R0 );
DIVS ( R5 , R0 );
DIVS ( R6 , R0 );
DIVS ( R7 , R0 );
DIVS ( R4 , R0 );
DIVS ( R0 , R0 );
CHECKREG r1, 0x2468ACF0;
CHECKREG r2, 0x468ACF12;
CHECKREG r3, 0x68ACF134;
CHECKREG r4, 0x159E26AE;
CHECKREG r5, 0x2CF13579;
CHECKREG r6, 0x4F13579B;
CHECKREG r7, 0x713579BD;
CHECKREG r0, 0x00000002;
imm32 r0, 0x01230002;
imm32 r1, 0x00000000;
imm32 r2, 0x93456789;
imm32 r3, 0xa456789a;
imm32 r4, 0xb56789ab;
imm32 r5, 0xc6789abc;
imm32 r6, 0xd789abcd;
imm32 r7, 0xe89abcde;
R1.L = -1;
DIVS ( R0 , R1 );
DIVS ( R2 , R1 );
DIVS ( R3 , R1 );
DIVS ( R4 , R1 );
DIVS ( R5 , R1 );
DIVS ( R6 , R1 );
DIVS ( R7 , R1 );
DIVS ( R1 , R1 );
CHECKREG r0, 0x02460005;
CHECKREG r1, 0x0001FFFF;
CHECKREG r2, 0x268ACF12;
CHECKREG r3, 0x48ACF134;
CHECKREG r4, 0x6ACF1356;
CHECKREG r5, 0x8CF13578;
CHECKREG r6, 0xAF13579A;
CHECKREG r7, 0xD13579BC;
imm32 r0, 0x51230002;
imm32 r1, 0x12345678;
imm32 r2, 0x00000000;
imm32 r3, 0x3456789a;
imm32 r4, 0x956789ab;
imm32 r5, 0x86789abc;
imm32 r6, 0x6789abcd;
imm32 r7, 0x789abcde;
R2.L = 31;
DIVS ( R0 , R2 );
DIVS ( R1 , R2 );
DIVS ( R3 , R2 );
DIVS ( R4 , R2 );
DIVS ( R5 , R2 );
DIVS ( R6 , R2 );
DIVS ( R7 , R2 );
DIVS ( R2 , R2 );
CHECKREG r0, 0xA2460004;
CHECKREG r1, 0x2468ACF0;
CHECKREG r2, 0x0000003E;
CHECKREG r3, 0x68ACF134;
CHECKREG r4, 0x2ACF1357;
CHECKREG r5, 0x0CF13579;
CHECKREG r6, 0xCF13579A;
CHECKREG r7, 0xF13579BC;
imm32 r0, 0x01230002;
imm32 r1, 0x82345678;
imm32 r2, 0x93456789;
imm32 r3, 0x00000000;
imm32 r4, 0xb56789ab;
imm32 r5, 0xc6789abc;
imm32 r6, 0xd789abcd;
imm32 r7, 0xe89abcde;
R3.L = -31;
DIVS ( R0 , R3 );
DIVS ( R1 , R3 );
DIVS ( R2 , R3 );
DIVS ( R4 , R3 );
DIVS ( R5 , R3 );
DIVS ( R6 , R3 );
DIVS ( R7 , R3 );
DIVS ( R3 , R3 );
CHECKREG r0, 0x02460005;
CHECKREG r1, 0x0468ACF0;
CHECKREG r2, 0x268ACF12;
CHECKREG r3, 0x0001FFC3;
CHECKREG r4, 0x6ACF1356;
CHECKREG r5, 0x8CF13578;
CHECKREG r6, 0xAF13579A;
CHECKREG r7, 0xD13579BC;
imm32 r0, 0x00000001;
imm32 r1, 0x12345678;
imm32 r2, 0x23456789;
imm32 r3, 0x3456789a;
imm32 r4, 0x00000000;
imm32 r5, 0x96789abc;
imm32 r6, 0xa789abcd;
imm32 r7, 0xb89abcde;
R4.L = 15;
DIVS ( R1 , R4 );
DIVS ( R2 , R4 );
DIVS ( R3 , R4 );
DIVS ( R0 , R4 );
DIVS ( R5 , R4 );
DIVS ( R6 , R4 );
DIVS ( R7 , R4 );
DIVS ( R4 , R4 );
CHECKREG r0, 0x00000002;
CHECKREG r1, 0x2468ACF0;
CHECKREG r2, 0x468ACF12;
CHECKREG r3, 0x68ACF134;
CHECKREG r4, 0x0000001E;
CHECKREG r5, 0x2CF13579;
CHECKREG r6, 0x4F13579B;
CHECKREG r7, 0x713579BD;
imm32 r0, 0x01230002;
imm32 r1, 0x00000000;
imm32 r2, 0x93456789;
imm32 r3, 0xa456789a;
imm32 r4, 0xb56789ab;
imm32 r5, 0x00000000;
imm32 r6, 0xd789abcd;
imm32 r7, 0xe89abcde;
R5.L = -15;
DIVS ( R0 , R5 );
DIVS ( R1 , R5 );
DIVS ( R2 , R5 );
DIVS ( R3 , R5 );
DIVS ( R4 , R5 );
DIVS ( R6 , R5 );
DIVS ( R7 , R5 );
DIVS ( R5 , R5 );
CHECKREG r0, 0x02460005;
CHECKREG r1, 0x00000001;
CHECKREG r2, 0x268ACF12;
CHECKREG r3, 0x48ACF134;
CHECKREG r4, 0x6ACF1356;
CHECKREG r5, 0x0001FFE3;
CHECKREG r6, 0xAF13579A;
CHECKREG r7, 0xD13579BC;
imm32 r0, 0x51230002;
imm32 r1, 0x12345678;
imm32 r2, 0xb1256790;
imm32 r3, 0x3456789a;
imm32 r4, 0x956789ab;
imm32 r5, 0x86789abc;
imm32 r6, 0x00000000;
imm32 r7, 0x789abcde;
R6.L = 24;
DIVS ( R0 , R6 );
DIVS ( R1 , R6 );
DIVS ( R2 , R6 );
DIVS ( R3 , R6 );
DIVS ( R4 , R6 );
DIVS ( R5 , R6 );
DIVS ( R7 , R6 );
DIVS ( R6 , R6 );
CHECKREG r0, 0xA2460004;
CHECKREG r1, 0x2468ACF0;
CHECKREG r2, 0x624ACF21;
CHECKREG r3, 0x68ACF134;
CHECKREG r4, 0x2ACF1357;
CHECKREG r5, 0x0CF13579;
CHECKREG r6, 0x00000030;
CHECKREG r7, 0xF13579BC;
imm32 r0, 0x01230002;
imm32 r1, 0x82345678;
imm32 r2, 0x93456789;
imm32 r3, 0xa456789a;
imm32 r4, 0xb56789ab;
imm32 r5, 0xc6789abc;
imm32 r6, 0xd789abcd;
imm32 r7, 0x00000000;
R7.L = -24;
DIVS ( R0 , R7 );
DIVS ( R1 , R7 );
DIVS ( R2 , R7 );
DIVS ( R3 , R7 );
DIVS ( R4 , R7 );
DIVS ( R5 , R7 );
DIVS ( R6 , R7 );
DIVS ( R7 , R7 );
CHECKREG r0, 0x02460005;
CHECKREG r1, 0x0468ACF0;
CHECKREG r2, 0x268ACF12;
CHECKREG r3, 0x48ACF134;
CHECKREG r4, 0x6ACF1356;
CHECKREG r5, 0x8CF13578;
CHECKREG r6, 0xAF13579A;
CHECKREG r7, 0x0001FFD1;
pass