blob: 30ecd6186e76fc422f1a4b87f6fd92dc56ad4f2a [file] [log] [blame]
//Original:/testcases/core/c_dsp32shift_expadj_h/c_dsp32shift_expadj_h.dsp
// Spec Reference: dsp32shift expadj rh
# mach: bfin
.include "testutils.inc"
start
imm32 r0, 0x80000008;
imm32 r1, 0x80010008;
imm32 r2, 0x80020008;
imm32 r3, 0x80030008;
imm32 r4, 0x80040008;
imm32 r5, 0x80050008;
imm32 r6, 0x80060008;
imm32 r7, 0x80070008;
R1.L = EXPADJ( R1.H , R0.L );
R2.L = EXPADJ( R2.H , R0.L );
R3.L = EXPADJ( R3.H , R0.L );
R4.L = EXPADJ( R4.H , R0.L );
R5.L = EXPADJ( R5.H , R0.L );
R6.L = EXPADJ( R6.H , R0.L );
R7.L = EXPADJ( R7.H , R0.L );
R0.L = EXPADJ( R0.H , R0.L );
CHECKREG r0, 0x80000000;
CHECKREG r1, 0x80010000;
CHECKREG r2, 0x80020000;
CHECKREG r3, 0x80030000;
CHECKREG r4, 0x80040000;
CHECKREG r5, 0x80050000;
CHECKREG r6, 0x80060000;
CHECKREG r7, 0x80070000;
imm32 r0, 0x90010009;
imm32 r1, 0x00010009;
imm32 r2, 0x90020009;
imm32 r3, 0x90030009;
imm32 r4, 0x90040009;
imm32 r5, 0x90050009;
imm32 r6, 0x90060009;
imm32 r7, 0x90070009;
R0.L = EXPADJ( R0.H , R1.L );
R2.L = EXPADJ( R2.H , R1.L );
R3.L = EXPADJ( R3.H , R1.L );
R4.L = EXPADJ( R4.H , R1.L );
R5.L = EXPADJ( R5.H , R1.L );
R6.L = EXPADJ( R6.H , R1.L );
R7.L = EXPADJ( R7.H , R1.L );
R1.L = EXPADJ( R1.H , R1.L );
CHECKREG r0, 0x90010000;
CHECKREG r1, 0x00010009;
CHECKREG r2, 0x90020000;
CHECKREG r3, 0x90030000;
CHECKREG r4, 0x90040000;
CHECKREG r5, 0x90050000;
CHECKREG r6, 0x90060000;
CHECKREG r7, 0x90070000;
imm32 r0, 0xa001000a;
imm32 r1, 0xa001000a;
imm32 r2, 0xa002000a;
imm32 r3, 0xa003000a;
imm32 r4, 0xa004000a;
imm32 r5, 0xa005000a;
imm32 r6, 0xa006000a;
imm32 r7, 0xa007000a;
R0.L = EXPADJ( R0.H , R2.L );
R1.L = EXPADJ( R1.H , R2.L );
R3.L = EXPADJ( R3.H , R2.L );
R4.L = EXPADJ( R4.H , R2.L );
R5.L = EXPADJ( R5.H , R2.L );
R6.L = EXPADJ( R6.H , R2.L );
R7.L = EXPADJ( R7.H , R2.L );
R2.L = EXPADJ( R2.H , R2.L );
CHECKREG r0, 0xA0010000;
CHECKREG r1, 0xA0010000;
CHECKREG r2, 0xA0020000;
CHECKREG r3, 0xA0030000;
CHECKREG r4, 0xA0040000;
CHECKREG r5, 0xA0050000;
CHECKREG r6, 0xA0060000;
CHECKREG r7, 0xA0070000;
imm32 r0, 0xc001000c;
imm32 r1, 0xc001000c;
imm32 r2, 0xc002000c;
imm32 r3, 0xc003001c;
imm32 r4, 0xc004000c;
imm32 r5, 0xc005000c;
imm32 r6, 0xc006000c;
imm32 r7, 0xc007000c;
R0.L = EXPADJ( R0.H , R3.L );
R1.L = EXPADJ( R1.H , R3.L );
R2.L = EXPADJ( R2.H , R3.L );
R4.L = EXPADJ( R4.H , R3.L );
R5.L = EXPADJ( R5.H , R3.L );
R6.L = EXPADJ( R6.H , R3.L );
R7.L = EXPADJ( R7.H , R3.L );
R3.L = EXPADJ( R3.H , R3.L );
CHECKREG r0, 0xC0010001;
CHECKREG r1, 0xC0010001;
CHECKREG r2, 0xC0020001;
CHECKREG r3, 0xC0030001;
CHECKREG r4, 0xC0040001;
CHECKREG r5, 0xC0050001;
CHECKREG r6, 0xC0060001;
CHECKREG r7, 0xC0070001;
imm32 r0, 0xb0000008;
imm32 r1, 0xb0010008;
imm32 r2, 0xb0020008;
imm32 r3, 0xb0030008;
imm32 r4, 0xb0040008;
imm32 r5, 0xb0050008;
imm32 r6, 0xb0060008;
imm32 r7, 0xb0070008;
R0.L = EXPADJ( R1.H , R4.L );
R1.L = EXPADJ( R2.H , R4.L );
R2.L = EXPADJ( R3.H , R4.L );
R3.L = EXPADJ( R4.H , R4.L );
R5.L = EXPADJ( R5.H , R4.L );
R6.L = EXPADJ( R6.H , R4.L );
R7.L = EXPADJ( R7.H , R4.L );
R4.L = EXPADJ( R0.H , R4.L );
CHECKREG r0, 0xB0000000;
CHECKREG r1, 0xB0010000;
CHECKREG r2, 0xB0020000;
CHECKREG r3, 0xB0030000;
CHECKREG r4, 0xB0040000;
CHECKREG r5, 0xB0050000;
CHECKREG r6, 0xB0060000;
CHECKREG r7, 0xB0070000;
imm32 r0, 0xc0010009;
imm32 r1, 0xc0010009;
imm32 r2, 0xc0020009;
imm32 r3, 0xc0030009;
imm32 r4, 0xc0040009;
imm32 r5, 0xc0050009;
imm32 r6, 0xc0060009;
imm32 r7, 0xc0070009;
R0.L = EXPADJ( R0.H , R5.L );
R1.L = EXPADJ( R2.H , R5.L );
R2.L = EXPADJ( R3.H , R5.L );
R3.L = EXPADJ( R4.H , R5.L );
R4.L = EXPADJ( R5.H , R5.L );
R6.L = EXPADJ( R6.H , R5.L );
R7.L = EXPADJ( R7.H , R5.L );
R5.L = EXPADJ( R1.H , R5.L );
CHECKREG r0, 0xC0010001;
CHECKREG r1, 0xC0010001;
CHECKREG r2, 0xC0020001;
CHECKREG r3, 0xC0030001;
CHECKREG r4, 0xC0040001;
CHECKREG r5, 0xC0050001;
CHECKREG r6, 0xC0060001;
CHECKREG r7, 0xC0070001;
imm32 r0, 0xe001000a;
imm32 r1, 0xe001000a;
imm32 r2, 0xe002000a;
imm32 r3, 0xe003000a;
imm32 r4, 0xe004000a;
imm32 r5, 0xe005000a;
imm32 r6, 0xe006000a;
imm32 r7, 0xe007000a;
R0.L = EXPADJ( R0.H , R6.L );
R1.L = EXPADJ( R1.H , R6.L );
R2.L = EXPADJ( R3.H , R6.L );
R3.L = EXPADJ( R4.H , R6.L );
R4.L = EXPADJ( R5.H , R6.L );
R5.L = EXPADJ( R6.H , R6.L );
R6.L = EXPADJ( R7.H , R6.L );
R7.L = EXPADJ( R2.H , R6.L );
CHECKREG r0, 0xE0010002;
CHECKREG r1, 0xE0010002;
CHECKREG r2, 0xE0020002;
CHECKREG r3, 0xE0030002;
CHECKREG r4, 0xE0040002;
CHECKREG r5, 0xE0050002;
CHECKREG r6, 0xE0060002;
CHECKREG r7, 0xE0070002;
imm32 r0, 0xd001000c;
imm32 r1, 0xd001000c;
imm32 r2, 0xd002000c;
imm32 r3, 0xd003001c;
imm32 r4, 0xd004000c;
imm32 r5, 0xd005000c;
imm32 r6, 0xd006000c;
imm32 r7, 0xd007000c;
R0.L = EXPADJ( R0.H , R7.L );
R1.L = EXPADJ( R1.H , R7.L );
R2.L = EXPADJ( R2.H , R7.L );
R3.L = EXPADJ( R4.H , R7.L );
R4.L = EXPADJ( R5.H , R7.L );
R5.L = EXPADJ( R6.H , R7.L );
R6.L = EXPADJ( R7.H , R7.L );
R7.L = EXPADJ( R3.H , R7.L );
CHECKREG r0, 0xD0010001;
CHECKREG r1, 0xD0010001;
CHECKREG r2, 0xD0020001;
CHECKREG r3, 0xD0030001;
CHECKREG r4, 0xD0040001;
CHECKREG r5, 0xD0050001;
CHECKREG r6, 0xD0060001;
CHECKREG r7, 0xD0070001;
pass