Index: sim/testsuite/sim/bfin/random_0036.S |
diff --git a/sim/testsuite/sim/bfin/random_0036.S b/sim/testsuite/sim/bfin/random_0036.S |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7e75da905da42a73d3023680468a7e54cf30437d |
--- /dev/null |
+++ b/sim/testsuite/sim/bfin/random_0036.S |
@@ -0,0 +1,309 @@ |
+# mach: bfin |
+#include "test.h" |
+.include "testutils.inc" |
+ |
+ start |
+ |
+ dmm32 ASTAT, (0x3ce04490 | _VS | _AV1S | _AV0S | _AC1 | _AC0 | _AQ | _AC0_COPY); |
+ dmm32 A0.w, 0x7d8d8272; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xe0004138; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0x7d8e7fff; |
+ imm32 R2, 0xffff8001; |
+ A1 -= R2.L * R0.L (M), A0 += R2.H * R0.L (FU); |
+ checkreg A0.w, 0xfd8c0273; |
+ checkreg A0.x, 0x00000000; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x3ce04490 | _VS | _AV1S | _AV1 | _AV0S | _AC1 | _AC0 | _AQ | _AC0_COPY); |
+ |
+ dmm32 ASTAT, (0x70b0c800 | _VS | _V | _AV1S | _AV0S | _AC1 | _AC0 | _V_COPY | _AC0_COPY); |
+ dmm32 A0.w, 0x53931540; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xf07795da; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R2, 0x8931da0a; |
+ imm32 R4, 0xffff41eb; |
+ imm32 R5, 0x7fff41eb; |
+ A1 += R5.L * R4.H (M), R2 = (A0 -= R5.L * R4.H) (FU); |
+ checkreg R2, 0x11a8572b; |
+ checkreg A0.w, 0x11a8572b; |
+ checkreg A0.x, 0x00000000; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x70b0c800 | _VS | _AV1S | _AV1 | _AV0S | _AC1 | _AC0 | _AC0_COPY); |
+ |
+ dmm32 ASTAT, (0x58100410 | _VS | _V | _AV1S | _AC0 | _CC | _V_COPY | _AC0_COPY); |
+ dmm32 A0.w, 0xaeba0d61; |
+ dmm32 A0.x, 0x00000041; |
+ dmm32 A1.w, 0xbb313d2f; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R4, 0x1ea2588d; |
+ imm32 R7, 0xffffffff; |
+ A1 += R4.L * R7.H (M), A0 += R4.L * R7.L (FU); |
+ checkreg A0.w, 0x0746b4d4; |
+ checkreg A0.x, 0x00000042; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x58100410 | _VS | _V | _AV1S | _AV1 | _AC0 | _CC | _V_COPY | _AC0_COPY); |
+ |
+ dmm32 ASTAT, (0x58704200 | _VS | _AV1S | _AV0S); |
+ dmm32 A0.w, 0xb7ab4854; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xe0002429; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0xb7ac8000; |
+ imm32 R2, 0x80008001; |
+ A1 -= R2.L * R0.L (M), A0 += R2.H * R0.L (FU); |
+ checkreg A0.w, 0xf7ab4854; |
+ checkreg A0.x, 0x00000000; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x58704200 | _VS | _AV1S | _AV1 | _AV0S); |
+ |
+ dmm32 ASTAT, (0x38d0c800 | _VS | _AV1S | _AV0S); |
+ dmm32 A0.w, 0xfffe0001; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xffff4001; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0xffffffff; |
+ imm32 R2, 0xffffffff; |
+ A1 -= R2.L * R0.L (M), A0 += R2.H * R0.L (FU); |
+ checkreg A0.w, 0xfffc0002; |
+ checkreg A0.x, 0x00000001; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x38d0c800 | _VS | _AV1S | _AV1 | _AV0S); |
+ |
+ dmm32 ASTAT, (0x24e0ca80 | _VS | _V | _AV0S | _AC0 | _AQ | _V_COPY); |
+ dmm32 A0.w, 0x0000000a; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xff5439dc; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0x3ea961c5; |
+ imm32 R6, 0xffff0510; |
+ A1 += R0.L * R6.H (M), A0 -= R0.H * R6.H (FU); |
+ checkreg A0.w, 0x00000000; |
+ checkreg A0.x, 0x00000000; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x24e0ca80 | _VS | _V | _AV1S | _AV1 | _AV0S | _AV0 | _AC0 | _AQ | _V_COPY); |
+ |
+ dmm32 ASTAT, (0x7800cc80 | _VS | _AC1 | _AC0 | _CC | _AC0_COPY); |
+ dmm32 A0.w, 0xfffe0001; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xffff4001; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0xffffffff; |
+ imm32 R2, 0x0000ffff; |
+ A1 -= R2.L * R0.L (M), A0 += R2.H * R0.L (FU); |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x7800cc80 | _VS | _AV1S | _AV1 | _AC1 | _AC0 | _CC | _AC0_COPY); |
+ |
+ dmm32 ASTAT, (0x50200800 | _VS | _AV1S | _AV0S | _AC1 | _AC0 | _AC0_COPY); |
+ dmm32 A0.w, 0x6970968f; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xe0004b47; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0x69717fff; |
+ imm32 R2, 0xffff8001; |
+ A1 -= R2.L * R0.L (M), A0 += R2.H * R0.L (FU); |
+ checkreg A0.w, 0xe96f1690; |
+ checkreg A0.x, 0x00000000; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x50200800 | _VS | _AV1S | _AV1 | _AV0S | _AC1 | _AC0 | _AC0_COPY); |
+ |
+ dmm32 ASTAT, (0x34704080 | _VS | _AV1S | _AV1 | _AV0S | _AQ | _CC | _AC0_COPY); |
+ dmm32 A0.w, 0x0839a708; |
+ dmm32 A0.x, 0xffffff80; |
+ dmm32 A1.w, 0xffffffff; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0x0c8c109a; |
+ imm32 R2, 0x109a0c8c; |
+ imm32 R5, 0x006dd6ac; |
+ A1 -= R5.L * R0.L (M), R2.L = (A0 += R5.H * R0.L) (FU); |
+ checkreg R2, 0x109affff; |
+ checkreg A0.w, 0x0840b89a; |
+ checkreg A0.x, 0xffffff80; |
+ checkreg ASTAT, (0x34704080 | _VS | _V | _AV1S | _AV1 | _AV0S | _AQ | _CC | _V_COPY | _AC0_COPY); |
+ |
+ dmm32 ASTAT, (0x78108090 | _VS | _AV1S | _AV0S | _AC0 | _AQ | _AC0_COPY); |
+ dmm32 A0.w, 0x21edde12; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xe0006f08; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0x21ee7fff; |
+ imm32 R2, 0xffff8001; |
+ A1 -= R2.L * R0.L (M), A0 += R2.H * R0.L (FU); |
+ checkreg A0.w, 0xa1ec5e13; |
+ checkreg A0.x, 0x00000000; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x78108090 | _VS | _AV1S | _AV1 | _AV0S | _AC0 | _AQ | _AC0_COPY); |
+ |
+ dmm32 ASTAT, (0x50b08a10 | _VS | _V | _AV1S | _AV0S | _AC1 | _AC0 | _V_COPY | _AC0_COPY); |
+ dmm32 A0.w, 0x00000007; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xf8b109fc; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0x27827703; |
+ imm32 R6, 0xffff03ca; |
+ A1 += R0.L * R6.H (M), A0 -= R0.H * R6.H (FU); |
+ checkreg A0.w, 0x00000000; |
+ checkreg A0.x, 0x00000000; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x50b08a10 | _VS | _V | _AV1S | _AV1 | _AV0S | _AV0 | _AC1 | _AC0 | _V_COPY | _AC0_COPY); |
+ |
+ dmm32 ASTAT, (0x34e0c800 | _VS | _V | _AV1S | _AV0S | _AQ | _V_COPY); |
+ dmm32 A0.w, 0xffffffff; |
+ dmm32 A0.x, 0xffffffff; |
+ dmm32 A1.w, 0xefc2be42; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0x53574850; |
+ imm32 R6, 0xffff1400; |
+ A1 += R0.L * R6.H (M), A0 -= R0.H * R6.H (FU); |
+ checkreg A0.w, 0xaca95356; |
+ checkreg A0.x, 0xffffffff; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x34e0c800 | _VS | _V | _AV1S | _AV1 | _AV0S | _AQ | _V_COPY); |
+ |
+ dmm32 ASTAT, (0x24608c80 | _VS | _AV1S | _AV0S | _AC0 | _AQ | _AC0_COPY); |
+ dmm32 A0.w, 0x0f03f0fc; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xe000787d; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0x0f04ffff; |
+ imm32 R2, 0xffff8001; |
+ A1 -= R2.L * R0.L (M), A0 += R2.H * R0.L (FU); |
+ checkreg A0.w, 0x0f01f0fd; |
+ checkreg A0.x, 0x00000001; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x24608c80 | _VS | _AV1S | _AV1 | _AV0S | _AC0 | _AQ | _AC0_COPY); |
+ |
+ dmm32 ASTAT, (0x58404690 | _VS | _AV0S | _AC0 | _AQ | _CC | _AC0_COPY); |
+ dmm32 A0.w, 0x1e65e19a; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xe00070cc; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0x1e66ffff; |
+ imm32 R2, 0xffff8001; |
+ A1 -= R2.L * R0.L (M), A0 += R2.H * R0.L (FU); |
+ checkreg A0.w, 0x1e63e19b; |
+ checkreg A0.x, 0x00000001; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x58404690 | _VS | _AV1S | _AV1 | _AV0S | _AC0 | _AQ | _CC | _AC0_COPY); |
+ |
+ dmm32 ASTAT, (0x08004a10 | _VS | _AV1S | _AV1 | _AC0 | _CC | _AC0_COPY); |
+ dmm32 A1.w, 0xffffffff; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0x293a8000; |
+ imm32 R3, 0xd0e6382b; |
+ A1 += R3.L * R0.H (M, FU); |
+ checkreg ASTAT, (0x08004a10 | _VS | _AV1S | _AV1 | _AC0 | _CC | _AC0_COPY); |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg R0, 0x293a8000; |
+ checkreg R3, 0xd0e6382b; |
+ |
+ dmm32 ASTAT, (0x28e00e00 | _VS | _AV1S | _AV0S | _AC0 | _AQ | _AC0_COPY); |
+ dmm32 A0.w, 0xfffe0001; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xffff4001; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0xffffffff; |
+ imm32 R2, 0x0000ffff; |
+ A1 -= R2.L * R0.L (M), A0 += R2.H * R0.L (FU); |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x28e00e00 | _VS | _AV1S | _AV1 | _AV0S | _AC0 | _AQ | _AC0_COPY); |
+ |
+ dmm32 ASTAT, (0x14004690 | _VS | _AV1S | _AV1 | _AV0S | _AC1 | _AC0 | _AQ | _AC0_COPY | _AN); |
+ dmm32 A1.w, 0xffffffff; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0x369a8000; |
+ imm32 R3, 0xf023457e; |
+ A1 += R3.L * R0.H (M, FU); |
+ checkreg ASTAT, (0x14004690 | _VS | _AV1S | _AV1 | _AV0S | _AC1 | _AC0 | _AQ | _AC0_COPY | _AN); |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg R0, 0x369a8000; |
+ checkreg R3, 0xf023457e; |
+ |
+ dmm32 ASTAT, (0x5c600680 | _VS | _AV1S | _AQ | _CC); |
+ dmm32 A0.w, 0xfffe0001; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xffff4001; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0xffffffff; |
+ imm32 R2, 0xffffffff; |
+ A1 -= R2.L * R0.L (M), A0 += R2.H * R0.L (FU); |
+ checkreg A0.w, 0xfffc0002; |
+ checkreg A0.x, 0x00000001; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x5c600680 | _VS | _AV1S | _AV1 | _AQ | _CC); |
+ |
+ dmm32 ASTAT, (0x7cd00800 | _VS | _AV1S | _AV0S | _AC1 | _AC0 | _AC0_COPY); |
+ dmm32 A0.w, 0xfffe0001; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xffff4001; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0xffffffff; |
+ imm32 R2, 0x0000ffff; |
+ A1 -= R2.L * R0.L (M), A0 += R2.H * R0.L (FU); |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x7cd00800 | _VS | _AV1S | _AV1 | _AV0S | _AC1 | _AC0 | _AC0_COPY); |
+ |
+ dmm32 ASTAT, (0x78e0cc10 | _VS | _AV1S | _AV0S | _AC1); |
+ dmm32 A0.w, 0xfffe0001; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xffff4001; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0xffffffff; |
+ imm32 R2, 0xffffffff; |
+ A1 -= R2.L * R0.L (M), A0 += R2.H * R0.L (FU); |
+ checkreg A0.w, 0xfffc0002; |
+ checkreg A0.x, 0x00000001; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x78e0cc10 | _VS | _AV1S | _AV1 | _AV0S | _AC1); |
+ |
+ dmm32 ASTAT, (0x1cd04c80 | _VS | _V | _AV0S | _AC1 | _V_COPY | _AC0_COPY); |
+ dmm32 A0.w, 0x00000015; |
+ dmm32 A0.x, 0x00000000; |
+ dmm32 A1.w, 0xfeeaa91d; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0x50246875; |
+ imm32 R6, 0xffff0aab; |
+ A1 += R0.L * R6.H (M), A0 -= R0.H * R6.H (FU); |
+ checkreg A0.w, 0x00000000; |
+ checkreg A0.x, 0x00000000; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x1cd04c80 | _VS | _V | _AV1S | _AV1 | _AV0S | _AV0 | _AC1 | _V_COPY | _AC0_COPY); |
+ |
+ dmm32 ASTAT, (0x18304890 | _VS | _AV1S | _AV0S | _AC0 | _AQ | _CC | _AC0_COPY); |
+ dmm32 A0.w, 0xfffffffe; |
+ dmm32 A0.x, 0xffffffff; |
+ dmm32 A1.w, 0xffffca85; |
+ dmm32 A1.x, 0x0000007f; |
+ imm32 R0, 0xffffffff; |
+ imm32 R3, 0xffffdc58; |
+ imm32 R7, 0xffff950a; |
+ A1 -= R7.L * R0.H (M), R3.L = (A0 -= R7.L * R0.H) (FU); |
+ checkreg R3, 0xffffffff; |
+ checkreg A0.w, 0x6af69508; |
+ checkreg A0.x, 0xffffffff; |
+ checkreg A1.w, 0xffffffff; |
+ checkreg A1.x, 0x0000007f; |
+ checkreg ASTAT, (0x18304890 | _VS | _V | _AV1S | _AV1 | _AV0S | _AC0 | _AQ | _CC | _V_COPY | _AC0_COPY); |
+ |
+ pass |