blob: 7142682863dc137bac57a9571d7455258619f97f [file] [log] [blame]
//Original:/testcases/core/c_dagmodik_lnz_imltbl/c_dagmodik_lnz_imltbl.dsp
// Spec Reference: dagmodik l not zero & i+m < b
# mach: bfin
.include "testutils.inc"
start
INIT_R_REGS 0;
imm32 i0, 0x00001000;
imm32 i1, 0x00001100;
imm32 i2, 0x00001010;
imm32 i3, 0x00001001;
imm32 b0, 0x0000100e;
imm32 b1, 0x0000110c;
imm32 b2, 0x0000101a;
imm32 b3, 0x00001008;
imm32 l0, 0x000000a1;
imm32 l1, 0x000000b2;
imm32 l2, 0x000000c3;
imm32 l3, 0x000000d4;
imm32 m0, 0x00000005;
imm32 m1, 0x00000004;
imm32 m2, 0x00000003;
imm32 m3, 0x00000002;
I0 += 2;
I1 += 2;
I2 += 2;
I3 += 2;
R0 = I0;
R1 = I1;
R2 = I2;
R3 = I3;
I0 += 2;
I1 += 2;
I2 += 2;
I3 += 2;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0x00001002;
CHECKREG r1, 0x00001102;
CHECKREG r2, 0x00001012;
CHECKREG r3, 0x00001003;
CHECKREG r4, 0x00001004;
CHECKREG r5, 0x00001104;
CHECKREG r6, 0x00001014;
CHECKREG r7, 0x00001005;
I0 -= 2;
I1 -= 2;
I2 -= 2;
I3 -= 2;
R0 = I0;
R1 = I1;
R2 = I2;
R3 = I3;
I0 -= 2;
I1 -= 2;
I2 -= 2;
I3 -= 2;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0x000010A3;
CHECKREG r1, 0x000011B4;
CHECKREG r2, 0x000010D5;
CHECKREG r3, 0x000010D7;
CHECKREG r4, 0x000010A1;
CHECKREG r5, 0x000011B2;
CHECKREG r6, 0x000010D3;
CHECKREG r7, 0x000010D5;
I0 += 4;
I1 += 4;
I2 += 4;
I3 += 4;
R0 = I0;
R1 = I1;
R2 = I2;
R3 = I3;
I0 += 4;
I1 += 4;
I2 += 4;
I3 += 4;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0x000010A5;
CHECKREG r1, 0x000011B6;
CHECKREG r2, 0x000010D7;
CHECKREG r3, 0x000010D9;
CHECKREG r4, 0x000010A9;
CHECKREG r5, 0x000011BA;
CHECKREG r6, 0x000010DB;
CHECKREG r7, 0x00001009;
I0 -= 4;
I0 -= 4;
I1 -= 4;
I2 -= 4;
I3 -= 4;
I1 -= 4;
I2 -= 4;
I3 -= 4;
R0 = I0;
R1 = I1;
R2 = I2;
R3 = I3;
CHECKREG r0, 0x000010A1;
CHECKREG r1, 0x000011B2;
CHECKREG r2, 0x000010D3;
CHECKREG r3, 0x000010D5;
CHECKREG r4, 0x000010A9;
CHECKREG r5, 0x000011BA;
CHECKREG r6, 0x000010DB;
CHECKREG r7, 0x00001009;
I0 -= 4;
I1 -= 4;
I2 -= 4;
I3 -= 4;
I0 -= 4;
I1 -= 4;
I2 -= 4;
I3 -= 4;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0x000010A1;
CHECKREG r1, 0x000011B2;
CHECKREG r2, 0x000010D3;
CHECKREG r3, 0x000010D5;
CHECKREG r4, 0x00001099;
CHECKREG r5, 0x000011AA;
CHECKREG r6, 0x000010CB;
CHECKREG r7, 0x000010CD;
// i+m = b+l
imm32 i0, 0x00001000;
imm32 i1, 0x00001100;
imm32 i2, 0x00001010;
imm32 i3, 0x00001001;
imm32 b0, 0x0000100e;
imm32 b1, 0x0000110c;
imm32 b2, 0x0000101a;
imm32 b3, 0x00001008;
imm32 l0, 0x00000011;
imm32 l1, 0x00000012;
imm32 l2, 0x00000013;
imm32 l3, 0x00000014;
imm32 m0, 0x00000002;
imm32 m1, 0x00000003;
imm32 m2, 0x00000004;
imm32 m3, 0x00000005;
I0 += 2;
I1 += 2;
I2 += 2;
I3 += 2;
R0 = I0;
R1 = I1;
R2 = I2;
R3 = I3;
I0 += 2;
I1 += 2;
I2 += 2;
I3 += 2;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0x00001002;
CHECKREG r1, 0x00001102;
CHECKREG r2, 0x00001012;
CHECKREG r3, 0x00001003;
CHECKREG r4, 0x00001004;
CHECKREG r5, 0x00001104;
CHECKREG r6, 0x00001014;
CHECKREG r7, 0x00001005;
I0 -= 2;
I1 -= 2;
I2 -= 2;
I3 -= 2;
R0 = I0;
R1 = I1;
R2 = I2;
R3 = I3;
I0 -= 2;
I1 -= 2;
I2 -= 2;
I3 -= 2;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0x00001013;
CHECKREG r1, 0x00001114;
CHECKREG r2, 0x00001025;
CHECKREG r3, 0x00001017;
CHECKREG r4, 0x00001011;
CHECKREG r5, 0x00001112;
CHECKREG r6, 0x00001023;
CHECKREG r7, 0x00001015;
I0 += 4;
I1 += 4;
I2 += 4;
I3 += 4;
R0 = I0;
R1 = I1;
R2 = I2;
R3 = I3;
I0 += 4;
I1 += 4;
I2 += 4;
I3 += 4;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0x00001015;
CHECKREG r1, 0x00001116;
CHECKREG r2, 0x00001027;
CHECKREG r3, 0x00001019;
CHECKREG r4, 0x00001019;
CHECKREG r5, 0x0000111A;
CHECKREG r6, 0x0000102B;
CHECKREG r7, 0x00001009;
I0 -= 4;
I0 -= 4;
I1 -= 4;
I2 -= 4;
I3 -= 4;
I1 -= 4;
I2 -= 4;
I3 -= 4;
R0 = I0;
R1 = I1;
R2 = I2;
R3 = I3;
CHECKREG r0, 0x00001011;
CHECKREG r1, 0x00001112;
CHECKREG r2, 0x00001023;
CHECKREG r3, 0x00001015;
CHECKREG r4, 0x00001019;
CHECKREG r5, 0x0000111A;
CHECKREG r6, 0x0000102B;
CHECKREG r7, 0x00001009;
I0 -= 4;
I1 -= 4;
I2 -= 4;
I3 -= 4;
I0 -= 4;
I1 -= 4;
I2 -= 4;
I3 -= 4;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0x00001011;
CHECKREG r1, 0x00001112;
CHECKREG r2, 0x00001023;
CHECKREG r3, 0x00001015;
CHECKREG r4, 0x0000101A;
CHECKREG r5, 0x0000111C;
CHECKREG r6, 0x0000101B;
CHECKREG r7, 0x0000100D;
pass