aboutsummaryrefslogtreecommitdiff
path: root/sim/testsuite/bfin/c_dsp32alu_sgn.s
diff options
context:
space:
mode:
Diffstat (limited to 'sim/testsuite/bfin/c_dsp32alu_sgn.s')
-rw-r--r--sim/testsuite/bfin/c_dsp32alu_sgn.s39
1 files changed, 39 insertions, 0 deletions
diff --git a/sim/testsuite/bfin/c_dsp32alu_sgn.s b/sim/testsuite/bfin/c_dsp32alu_sgn.s
new file mode 100644
index 0000000..de36c20
--- /dev/null
+++ b/sim/testsuite/bfin/c_dsp32alu_sgn.s
@@ -0,0 +1,39 @@
+//Original:/testcases/core/c_dsp32alu_sgn/c_dsp32alu_sgn.dsp
+// Spec Reference: dsp32alu dreg_lo(hi) = rnd dregs
+# mach: bfin
+
+.include "testutils.inc"
+ start
+
+imm32 r0, 0x456789ab;
+imm32 r1, 0x6689abcd;
+imm32 r2, 0x47445555;
+imm32 r3, 0x68667777;
+R4.H = R4.L = SIGN(R2.H) * R0.H + SIGN(R2.L) * R0.L;
+R5.H = R5.L = SIGN(R2.H) * R1.H + SIGN(R2.L) * R1.L;
+R6.H = R6.L = SIGN(R2.H) * R2.H + SIGN(R2.L) * R2.L;
+R7.H = R7.L = SIGN(R2.H) * R3.H + SIGN(R2.L) * R3.L;
+CHECKREG r4, 0xCF12CF12;
+CHECKREG r5, 0x12561256;
+CHECKREG r6, 0x9C999C99;
+CHECKREG r7, 0xDFDDDFDD;
+
+imm32 r0, 0x496789ab;
+imm32 r1, 0x6489abcd;
+imm32 r2, 0x4b445555;
+imm32 r3, 0x6c647777;
+imm32 r4, 0x8d889999;
+imm32 r5, 0xaeaa4bbb;
+imm32 r6, 0xcfccd44d;
+imm32 r7, 0xe1eefff4;
+R0.H = R0.L = SIGN(R3.H) * R4.H + SIGN(R3.L) * R4.L;
+R1.H = R1.L = SIGN(R3.H) * R5.H + SIGN(R3.L) * R5.L;
+R2.H = R2.L = SIGN(R3.H) * R6.H + SIGN(R3.L) * R6.L;
+R3.H = R3.L = SIGN(R3.H) * R7.H + SIGN(R3.L) * R7.L;
+CHECKREG r0, 0x27212721;
+CHECKREG r1, 0xFA65FA65;
+CHECKREG r2, 0xA419A419;
+CHECKREG r3, 0xE1E2E1E2;
+
+
+pass