265 lines
5.3 KiB
ArmAsm
265 lines
5.3 KiB
ArmAsm
//Original:/testcases/core/c_dsp32alu_rmp/c_dsp32alu_rmp.dsp
|
|
// Spec Reference: dsp32alu dreg = -/+ ( dreg, dreg)
|
|
# mach: bfin
|
|
|
|
.include "testutils.inc"
|
|
start
|
|
|
|
|
|
|
|
|
|
// ALU operations include parallel addition, subtraction
|
|
// and 32-bit data. If an operation use a single ALU only, it uses ALU0.
|
|
|
|
imm32 r0, 0x15678911;
|
|
imm32 r1, 0x2789ab1d;
|
|
imm32 r2, 0x34445515;
|
|
imm32 r3, 0x46667717;
|
|
imm32 r4, 0x5567891b;
|
|
imm32 r5, 0x6789ab1d;
|
|
imm32 r6, 0x74445515;
|
|
imm32 r7, 0x86667777;
|
|
R0 = R0 -|+ R0;
|
|
R1 = R0 -|+ R1;
|
|
R2 = R0 -|+ R2;
|
|
R3 = R0 -|+ R3;
|
|
R4 = R0 -|+ R4;
|
|
R5 = R0 -|+ R5;
|
|
R6 = R0 -|+ R6;
|
|
R7 = R0 -|+ R7;
|
|
CHECKREG r0, 0x00001222;
|
|
CHECKREG r1, 0xD877BD3F;
|
|
CHECKREG r2, 0xCBBC6737;
|
|
CHECKREG r3, 0xB99A8939;
|
|
CHECKREG r4, 0xAA999B3D;
|
|
CHECKREG r5, 0x9877BD3F;
|
|
CHECKREG r6, 0x8BBC6737;
|
|
CHECKREG r7, 0x799A8999;
|
|
|
|
imm32 r0, 0x9567892b;
|
|
imm32 r1, 0xa789ab2d;
|
|
imm32 r2, 0xb4445525;
|
|
imm32 r3, 0xc6667727;
|
|
imm32 r4, 0xd8889929;
|
|
imm32 r5, 0xeaaabb2b;
|
|
imm32 r6, 0xfcccdd2d;
|
|
imm32 r7, 0x0eeeffff;
|
|
R0 = R1 -|+ R0;
|
|
R1 = R1 -|+ R1;
|
|
R2 = R1 -|+ R2;
|
|
R3 = R1 -|+ R3;
|
|
R4 = R1 -|+ R4;
|
|
R5 = R1 -|+ R5;
|
|
R6 = R1 -|+ R6;
|
|
R7 = R1 -|+ R7;
|
|
CHECKREG r0, 0x12223458;
|
|
CHECKREG r1, 0x0000565A;
|
|
CHECKREG r2, 0x4BBCAB7F;
|
|
CHECKREG r3, 0x399ACD81;
|
|
CHECKREG r4, 0x2778EF83;
|
|
CHECKREG r5, 0x15561185;
|
|
CHECKREG r6, 0x03343387;
|
|
CHECKREG r7, 0xF1125659;
|
|
|
|
imm32 r0, 0x416789ab;
|
|
imm32 r1, 0x6289abcd;
|
|
imm32 r2, 0x43445555;
|
|
imm32 r3, 0x64667777;
|
|
imm32 r4, 0x456789ab;
|
|
imm32 r5, 0x6689abcd;
|
|
imm32 r6, 0x47445555;
|
|
imm32 r7, 0x68667777;
|
|
R0 = R2 -|+ R0;
|
|
R1 = R2 -|+ R1;
|
|
R2 = R2 -|+ R2;
|
|
R3 = R2 -|+ R3;
|
|
R4 = R2 -|+ R4;
|
|
R5 = R2 -|+ R5;
|
|
R6 = R2 -|+ R6;
|
|
R7 = R2 -|+ R7;
|
|
CHECKREG r0, 0x01DDDF00;
|
|
CHECKREG r1, 0xE0BB0122;
|
|
CHECKREG r2, 0x0000AAAA;
|
|
CHECKREG r3, 0x9B9A2221;
|
|
CHECKREG r4, 0xBA993455;
|
|
CHECKREG r5, 0x99775677;
|
|
CHECKREG r6, 0xB8BCFFFF;
|
|
CHECKREG r7, 0x979A2221;
|
|
|
|
imm32 r0, 0x9567892b;
|
|
imm32 r1, 0xa789ab2d;
|
|
imm32 r2, 0xb4445525;
|
|
imm32 r3, 0xc6667727;
|
|
imm32 r0, 0x9567892b;
|
|
imm32 r1, 0xa789ab2d;
|
|
imm32 r2, 0xb4445525;
|
|
imm32 r3, 0xc6667727;
|
|
R0 = R3 -|+ R0;
|
|
R1 = R3 -|+ R1;
|
|
R2 = R3 -|+ R2;
|
|
R3 = R3 -|+ R3;
|
|
R4 = R3 -|+ R4;
|
|
R5 = R3 -|+ R5;
|
|
R6 = R3 -|+ R6;
|
|
R7 = R3 -|+ R7;
|
|
CHECKREG r4, 0x456722A3;
|
|
CHECKREG r5, 0x668944C5;
|
|
CHECKREG r6, 0x4744EE4D;
|
|
CHECKREG r7, 0x6866106F;
|
|
CHECKREG r4, 0x456722A3;
|
|
CHECKREG r5, 0x668944C5;
|
|
CHECKREG r6, 0x4744EE4D;
|
|
CHECKREG r7, 0x6866106F;
|
|
|
|
imm32 r0, 0x4537891b;
|
|
imm32 r1, 0x6759ab2d;
|
|
imm32 r2, 0x44555535;
|
|
imm32 r3, 0x66665747;
|
|
imm32 r4, 0x88789565;
|
|
imm32 r5, 0xaa8abb5b;
|
|
imm32 r6, 0xcc9cdd85;
|
|
imm32 r7, 0xeeaeff9f;
|
|
R0 = R4 -|+ R0;
|
|
R1 = R4 -|+ R1;
|
|
R2 = R4 -|+ R2;
|
|
R3 = R4 -|+ R3;
|
|
R4 = R4 -|+ R4;
|
|
R5 = R4 -|+ R5;
|
|
R6 = R4 -|+ R6;
|
|
R7 = R4 -|+ R7;
|
|
CHECKREG r0, 0x43411E80;
|
|
CHECKREG r1, 0x211F4092;
|
|
CHECKREG r2, 0x4423EA9A;
|
|
CHECKREG r3, 0x2212ECAC;
|
|
CHECKREG r4, 0x00002ACA;
|
|
CHECKREG r5, 0x5576E625;
|
|
CHECKREG r6, 0x3364084F;
|
|
CHECKREG r7, 0x11522A69;
|
|
|
|
imm32 r0, 0x456b89ab;
|
|
imm32 r1, 0x69764bcd;
|
|
imm32 r2, 0x49736564;
|
|
imm32 r3, 0x61278394;
|
|
imm32 r4, 0x98876439;
|
|
imm32 r5, 0xaaaa0bbb;
|
|
imm32 r6, 0xcccc1ddd;
|
|
imm32 r7, 0x12346fff;
|
|
R0 = R5 -|+ R0;
|
|
R1 = R5 -|+ R1;
|
|
R2 = R5 -|+ R2;
|
|
R3 = R5 -|+ R3;
|
|
R4 = R5 -|+ R4;
|
|
R5 = R5 -|+ R5;
|
|
R6 = R5 -|+ R6;
|
|
R7 = R5 -|+ R7;
|
|
CHECKREG r0, 0x653F9566;
|
|
CHECKREG r1, 0x41345788;
|
|
CHECKREG r2, 0x6137711F;
|
|
CHECKREG r3, 0x49838F4F;
|
|
CHECKREG r4, 0x12236FF4;
|
|
CHECKREG r5, 0x00001776;
|
|
CHECKREG r6, 0x33343553;
|
|
CHECKREG r7, 0xEDCC8775;
|
|
|
|
imm32 r0, 0x456739ab;
|
|
imm32 r1, 0x67694bcd;
|
|
imm32 r2, 0x03456755;
|
|
imm32 r3, 0x66666777;
|
|
imm32 r4, 0x12345699;
|
|
imm32 r5, 0x45678b6b;
|
|
imm32 r6, 0x043290d6;
|
|
imm32 r7, 0x1234567f;
|
|
R0 = R6 -|+ R0;
|
|
R1 = R6 -|+ R1;
|
|
R2 = R6 -|+ R2;
|
|
R3 = R6 -|+ R3;
|
|
R4 = R6 -|+ R4;
|
|
R5 = R6 -|+ R5;
|
|
R6 = R6 -|+ R6;
|
|
R7 = R6 -|+ R7;
|
|
CHECKREG r0, 0xBECBCA81;
|
|
CHECKREG r1, 0x9CC9DCA3;
|
|
CHECKREG r2, 0x00EDF82B;
|
|
CHECKREG r3, 0x9DCCF84D;
|
|
CHECKREG r4, 0xF1FEE76F;
|
|
CHECKREG r5, 0xBECB1C41;
|
|
CHECKREG r6, 0x000021AC;
|
|
CHECKREG r7, 0xEDCC782B;
|
|
|
|
imm32 r0, 0x476789ab;
|
|
imm32 r1, 0x6779abcd;
|
|
imm32 r2, 0x23456755;
|
|
imm32 r3, 0x56789007;
|
|
imm32 r4, 0x789ab799;
|
|
imm32 r5, 0xaaaa0bbb;
|
|
imm32 r6, 0x89ab1d7d;
|
|
imm32 r7, 0xabcd2ff7;
|
|
R0 = R7 -|+ R0;
|
|
R1 = R7 -|+ R1;
|
|
R2 = R7 -|+ R2;
|
|
R3 = R7 -|+ R3;
|
|
R4 = R7 -|+ R4;
|
|
R5 = R7 -|+ R5;
|
|
R6 = R7 -|+ R6;
|
|
R7 = R7 -|+ R7;
|
|
CHECKREG r0, 0x6466B9A2;
|
|
CHECKREG r1, 0x4454DBC4;
|
|
CHECKREG r2, 0x8888974C;
|
|
CHECKREG r3, 0x5555BFFE;
|
|
CHECKREG r4, 0x3333E790;
|
|
CHECKREG r5, 0x01233BB2;
|
|
CHECKREG r6, 0x22224D74;
|
|
CHECKREG r7, 0x00005FEE;
|
|
|
|
imm32 r0, 0x456739ab;
|
|
imm32 r1, 0x67694bcd;
|
|
imm32 r2, 0x03456755;
|
|
imm32 r3, 0x66666777;
|
|
imm32 r4, 0x12345699;
|
|
imm32 r5, 0x45678b6b;
|
|
imm32 r6, 0x043290d6;
|
|
imm32 r7, 0x1234567f;
|
|
R4 = R4 -|+ R7 (S);
|
|
R5 = R5 -|+ R5 (CO);
|
|
R2 = R6 -|+ R3 (SCO);
|
|
R6 = R0 -|+ R4 (S);
|
|
R0 = R1 -|+ R6 (S);
|
|
R2 = R2 -|+ R1 (CO);
|
|
R1 = R3 -|+ R0 (CO);
|
|
R7 = R7 -|+ R4 (SCO);
|
|
CHECKREG r0, 0x22027FFF;
|
|
CHECKREG r1, 0xE7764464;
|
|
CHECKREG r2, 0xE99990E4;
|
|
CHECKREG r3, 0x66666777;
|
|
CHECKREG r4, 0x00007FFF;
|
|
CHECKREG r5, 0x16D60000;
|
|
CHECKREG r6, 0x45677FFF;
|
|
CHECKREG r7, 0x7FFF1234;
|
|
|
|
imm32 r0, 0x476789ab;
|
|
imm32 r1, 0x6779abcd;
|
|
imm32 r2, 0x23456755;
|
|
imm32 r3, 0x56789007;
|
|
imm32 r4, 0x789ab799;
|
|
imm32 r5, 0xaaaa0bbb;
|
|
imm32 r6, 0x89ab1d7d;
|
|
imm32 r7, 0xabcd2ff7;
|
|
R3 = R4 -|+ R0 (S);
|
|
R5 = R5 -|+ R1 (SCO);
|
|
R2 = R2 -|+ R2 (S);
|
|
R7 = R7 -|+ R3 (CO);
|
|
R4 = R3 -|+ R4 (CO);
|
|
R0 = R1 -|+ R5 (S);
|
|
R1 = R0 -|+ R6 (SCO);
|
|
R6 = R6 -|+ R7 (SCO);
|
|
CHECKREG r0, 0x7FFF8000;
|
|
CHECKREG r1, 0x9D7D7FFF;
|
|
CHECKREG r2, 0x00007FFF;
|
|
CHECKREG r3, 0x31338000;
|
|
CHECKREG r4, 0x3799B899;
|
|
CHECKREG r5, 0xB7888000;
|
|
CHECKREG r6, 0x7FFFD9B4;
|
|
CHECKREG r7, 0xAFF77A9A;
|
|
|
|
pass
|