OSDN Git Service

Merge branch 'binutils' into tmp
[pf3gnuchains/pf3gnuchains4x.git] / sim / testsuite / sim / bfin / c_dsp32shift_lhh.s
diff --git a/sim/testsuite/sim/bfin/c_dsp32shift_lhh.s b/sim/testsuite/sim/bfin/c_dsp32shift_lhh.s
new file mode 100644 (file)
index 0000000..4722987
--- /dev/null
@@ -0,0 +1,311 @@
+//Original:/testcases/core/c_dsp32shift_lhh/c_dsp32shift_lhh.dsp
+// Spec Reference: dsp32shift lshift/lshift
+# mach: bfin
+
+.include "testutils.inc"
+       start
+
+
+
+// lshift/lshift : = (half reg)
+// d_reg = lshift/lshift (d BY d_lo)
+// Rx by RLx
+imm32 r0, 0x01230000;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R1 = LSHIFT R0 BY R0.L (V);
+R2 = LSHIFT R1 BY R0.L (V);
+R3 = LSHIFT R2 BY R0.L (V);
+R4 = LSHIFT R3 BY R0.L (V);
+R5 = LSHIFT R4 BY R0.L (V);
+R6 = LSHIFT R5 BY R0.L (V);
+R7 = LSHIFT R6 BY R0.L (V);
+R0 = LSHIFT R7 BY R0.L (V);
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R1.L = 5;
+R2 = LSHIFT R0 BY R1.L (V);
+R3 = LSHIFT R1 BY R1.L (V);
+R4 = LSHIFT R2 BY R1.L (V);
+R5 = LSHIFT R3 BY R1.L (V);
+R6 = LSHIFT R4 BY R1.L (V);
+R7 = LSHIFT R5 BY R1.L (V);
+R0 = LSHIFT R6 BY R1.L (V);
+R1 = LSHIFT R7 BY R1.L (V);
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R2 = 15;
+R3 = LSHIFT R0 BY R2.L (V);
+R4 = LSHIFT R1 BY R2.L (V);
+R5 = LSHIFT R2 BY R2.L (V);
+R6 = LSHIFT R3 BY R2.L (V);
+R7 = LSHIFT R4 BY R2.L (V);
+R0 = LSHIFT R5 BY R2.L (V);
+R1 = LSHIFT R6 BY R2.L (V);
+R2 = LSHIFT R7 BY R2.L (V);
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R3.L = 16;
+R4 = LSHIFT R0 BY R3.L (V);
+R5 = LSHIFT R1 BY R3.L (V);
+R6 = LSHIFT R2 BY R3.L (V);
+R7 = LSHIFT R3 BY R3.L (V);
+R0 = LSHIFT R4 BY R3.L (V);
+R1 = LSHIFT R5 BY R3.L (V);
+R2 = LSHIFT R6 BY R3.L (V);
+R3 = LSHIFT R7 BY R3.L (V);
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R4.L = -1;
+R0 = LSHIFT R0 BY R4.L (V);
+R1 = LSHIFT R1 BY R4.L (V);
+R2 = LSHIFT R2 BY R4.L (V);
+R3 = LSHIFT R3 BY R4.L (V);
+R4 = LSHIFT R4 BY R4.L (V);
+R5 = LSHIFT R5 BY R4.L (V);
+R6 = LSHIFT R6 BY R4.L (V);
+R7 = LSHIFT R7 BY R4.L (V);
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R5.L = -6;
+R6 = LSHIFT R0 BY R5.L (V);
+R7 = LSHIFT R1 BY R5.L (V);
+R0 = LSHIFT R2 BY R5.L (V);
+R1 = LSHIFT R3 BY R5.L (V);
+R2 = LSHIFT R4 BY R5.L (V);
+R3 = LSHIFT R5 BY R5.L (V);
+R4 = LSHIFT R6 BY R5.L (V);
+R5 = LSHIFT R7 BY R5.L (V);
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R6.L = -15;
+R7 = LSHIFT R0 BY R6.L (V);
+R0 = LSHIFT R1 BY R6.L (V);
+R1 = LSHIFT R2 BY R6.L (V);
+R2 = LSHIFT R3 BY R6.L (V);
+R3 = LSHIFT R4 BY R6.L (V);
+R4 = LSHIFT R5 BY R6.L (V);
+R5 = LSHIFT R6 BY R6.L (V);
+R6 = LSHIFT R7 BY R6.L (V);
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R7.L = -16;
+R0 = LSHIFT R0 BY R7.L (V);
+R1 = LSHIFT R1 BY R7.L (V);
+R2 = LSHIFT R2 BY R7.L (V);
+R3 = LSHIFT R3 BY R7.L (V);
+R4 = LSHIFT R4 BY R7.L (V);
+R5 = LSHIFT R5 BY R7.L (V);
+R6 = LSHIFT R6 BY R7.L (V);
+R7 = LSHIFT R7 BY R7.L (V);
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R0.L = 4;
+//r0 = lshift/lshift (r0 by rl0);
+R1 = LSHIFT R1 BY R0.L (V);
+R2 = LSHIFT R2 BY R0.L (V);
+R3 = LSHIFT R3 BY R0.L (V);
+R4 = LSHIFT R4 BY R0.L (V);
+R5 = LSHIFT R5 BY R0.L (V);
+R6 = LSHIFT R6 BY R0.L (V);
+R7 = LSHIFT R7 BY R0.L (V);
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R1.L = 6;
+R0 = LSHIFT R0 BY R1.L (V);
+//r1 = lshift/lshift (r1 by rl1);
+R2 = LSHIFT R2 BY R1.L (V);
+R3 = LSHIFT R3 BY R1.L (V);
+R4 = LSHIFT R4 BY R1.L (V);
+R5 = LSHIFT R5 BY R1.L (V);
+R6 = LSHIFT R6 BY R1.L (V);
+R7 = LSHIFT R7 BY R1.L (V);
+
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R2.L = 15;
+R0 = LSHIFT R0 BY R2.L (V);
+R1 = LSHIFT R1 BY R2.L (V);
+//r2 = lshift/lshift (r2 by rl2);
+R3 = LSHIFT R3 BY R2.L (V);
+R4 = LSHIFT R4 BY R2.L (V);
+R5 = LSHIFT R5 BY R2.L (V);
+R6 = LSHIFT R6 BY R2.L (V);
+R7 = LSHIFT R7 BY R2.L (V);
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R3.L = 16;
+R0 = LSHIFT R0 BY R3.L (V);
+R1 = LSHIFT R1 BY R3.L (V);
+R2 = LSHIFT R2 BY R3.L (V);
+//r3 = lshift/lshift (r3 by rl3);
+R4 = LSHIFT R4 BY R3.L (V);
+R5 = LSHIFT R5 BY R3.L (V);
+R6 = LSHIFT R6 BY R3.L (V);
+R7 = LSHIFT R7 BY R3.L (V);
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R4.L = -9;
+R0 = LSHIFT R0 BY R4.L (V);
+R1 = LSHIFT R1 BY R4.L (V);
+R2 = LSHIFT R2 BY R4.L (V);
+R3 = LSHIFT R3 BY R4.L (V);
+//r4 = lshift/lshift (r4 by rl4);
+R5 = LSHIFT R5 BY R4.L (V);
+R6 = LSHIFT R6 BY R4.L (V);
+R7 = LSHIFT R7 BY R4.L (V);
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R5.L = -14;
+R0 = LSHIFT R0 BY R5.L (V);
+R1 = LSHIFT R1 BY R5.L (V);
+R2 = LSHIFT R2 BY R5.L (V);
+R3 = LSHIFT R3 BY R5.L (V);
+R4 = LSHIFT R4 BY R5.L (V);
+//r5 = lshift/lshift (r5 by rl5);
+R6 = LSHIFT R6 BY R5.L (V);
+R7 = LSHIFT R7 BY R5.L (V);
+
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R6.L = -15;
+R0 = LSHIFT R0 BY R6.L (V);
+R1 = LSHIFT R1 BY R6.L (V);
+R2 = LSHIFT R2 BY R6.L (V);
+R3 = LSHIFT R3 BY R6.L (V);
+R4 = LSHIFT R4 BY R6.L (V);
+R5 = LSHIFT R5 BY R6.L (V);
+//r6 = lshift/lshift (r6 by rl6);
+R7 = LSHIFT R7 BY R6.L (V);
+
+imm32 r0, 0x01230002;
+imm32 r1, 0x12345678;
+imm32 r2, 0x23456789;
+imm32 r3, 0x3456789a;
+imm32 r4, 0x456789ab;
+imm32 r5, 0x56789abc;
+imm32 r6, 0x6789abcd;
+imm32 r7, 0x789abcde;
+R7.L = -16;
+R0 = LSHIFT R0 BY R7.L (V);
+R1 = LSHIFT R1 BY R7.L (V);
+R2 = LSHIFT R2 BY R7.L (V);
+R3 = LSHIFT R3 BY R7.L (V);
+R4 = LSHIFT R4 BY R7.L (V);
+R5 = LSHIFT R5 BY R7.L (V);
+R6 = LSHIFT R6 BY R7.L (V);
+R7 = LSHIFT R7 BY R7.L (V);
+CHECKREG r0, 0x00000000;
+CHECKREG r1, 0x00000000;
+CHECKREG r2, 0x00000000;
+CHECKREG r3, 0x00000000;
+CHECKREG r4, 0x00000000;
+CHECKREG r5, 0x00000000;
+CHECKREG r6, 0x00000000;
+CHECKREG r7, 0x00000000;
+CHECKREG r7, 0x00000000;
+
+pass