blob: cea97ad4fac2bdea0bb26b41e7669dd2eea5ebdf [file] [log] [blame]
//Original:/testcases/core/c_dagmodik_lnz_imgebl/c_dagmodik_lnz_imgebl.dsp
// Spec Reference: dagmodik l not zero & i+m >= b+l
# mach: bfin
.include "testutils.inc"
start
INIT_R_REGS 0;
imm32 i0, 0x00001000;
imm32 i1, 0x00001100;
imm32 i2, 0x00001010;
imm32 i3, 0x00001001;
imm32 b0, 0x00001000;
imm32 b1, 0x00001000;
imm32 b2, 0x00001000;
imm32 b3, 0x00001000;
imm32 l0, 0x00000001;
imm32 l1, 0x00000002;
imm32 l2, 0x00000003;
imm32 l3, 0x00000004;
imm32 m0, 0x00000015;
imm32 m1, 0x00000016;
imm32 m2, 0x00000017;
imm32 m3, 0x00000018;
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, 0x00001001;
CHECKREG r1, 0x00001100;
CHECKREG r2, 0x0000100F;
CHECKREG r3, 0x00001003;
CHECKREG r4, 0x00001002;
CHECKREG r5, 0x00001100;
CHECKREG r6, 0x0000100E;
CHECKREG r7, 0x00001001;
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, 0x00001000;
CHECKREG r1, 0x000010FE;
CHECKREG r2, 0x0000100C;
CHECKREG r3, 0x00001003;
CHECKREG r4, 0x00000FFF;
CHECKREG r5, 0x000010FC;
CHECKREG r6, 0x0000100A;
CHECKREG r7, 0x00001001;
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, 0x00001002;
CHECKREG r1, 0x000010FE;
CHECKREG r2, 0x0000100B;
CHECKREG r3, 0x00001001;
CHECKREG r4, 0x00001005;
CHECKREG r5, 0x00001100;
CHECKREG r6, 0x0000100C;
CHECKREG r7, 0x00001001;
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, 0x00000FFE;
CHECKREG r1, 0x000010F8;
CHECKREG r2, 0x00001004;
CHECKREG r3, 0x00001001;
CHECKREG r4, 0x00001005;
CHECKREG r5, 0x00001100;
CHECKREG r6, 0x0000100C;
CHECKREG r7, 0x00001001;
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, 0x00000FFE;
CHECKREG r1, 0x000010F8;
CHECKREG r2, 0x00001004;
CHECKREG r3, 0x00001001;
CHECKREG r4, 0x00000FF8;
CHECKREG r5, 0x000010F0;
CHECKREG r6, 0x00000FFF;
CHECKREG r7, 0x00001001;
// i+m = b+l
imm32 i0, 0x00001000;
imm32 i1, 0x00001100;
imm32 i2, 0x00001010;
imm32 i3, 0x00001001;
imm32 b0, 0x00001000;
imm32 b1, 0x00001100;
imm32 b2, 0x00001010;
imm32 b3, 0x00001001;
imm32 l0, 0x00000015;
imm32 l1, 0x00000016;
imm32 l2, 0x00000017;
imm32 l3, 0x00000018;
imm32 m0, 0x00000015;
imm32 m1, 0x00000016;
imm32 m2, 0x00000017;
imm32 m3, 0x00000018;
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, 0x00001002;
CHECKREG r1, 0x00001102;
CHECKREG r2, 0x00001012;
CHECKREG r3, 0x00001003;
CHECKREG r4, 0x00001000;
CHECKREG r5, 0x00001100;
CHECKREG r6, 0x00001010;
CHECKREG r7, 0x00001001;
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, 0x00001004;
CHECKREG r1, 0x00001104;
CHECKREG r2, 0x00001014;
CHECKREG r3, 0x00001005;
CHECKREG r4, 0x00001008;
CHECKREG r5, 0x00001108;
CHECKREG r6, 0x00001018;
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, 0x00001000;
CHECKREG r1, 0x00001100;
CHECKREG r2, 0x00001010;
CHECKREG r3, 0x00001001;
CHECKREG r4, 0x00001008;
CHECKREG r5, 0x00001108;
CHECKREG r6, 0x00001018;
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, 0x00001000;
CHECKREG r1, 0x00001100;
CHECKREG r2, 0x00001010;
CHECKREG r3, 0x00001001;
CHECKREG r4, 0x0000100D;
CHECKREG r5, 0x0000110E;
CHECKREG r6, 0x0000101F;
CHECKREG r7, 0x00001011;
pass