1# Verify sign extension behavior with simultaneous acc additions, and 2# verify that no ASTAT bits get changed as a result 3# mach: bfin 4#include "test.h" 5.include "testutils.inc" 6 7 start 8 9 dmm32 ASTAT, (0x60304880 | _AV1S | _AC0 | _AN | _AZ); 10 dmm32 A0.w, 0x589145b7; 11 dmm32 A0.x, 0xffffffee; 12 dmm32 A1.w, 0x0b247b05; 13 dmm32 A1.x, 0x0000005a; 14 imm32 R3, 0x1e414332; 15 imm32 R4, 0x351715b7; 16 R3 = A1.L + A1.H, R4 = A0.L + A0.H; 17 checkreg R3, 0x00008629; 18 checkreg R4, 0x00009e48; 19 checkreg ASTAT, (0x60304880 | _AV1S | _AC0 | _AN | _AZ); 20 21 dmm32 ASTAT, (0x40e0cc00 | _VS | _V | _AV1S | _AV0S | _AC0 | _CC | _V_COPY | _AC0_COPY); 22 dmm32 A0.w, 0xb2c58001; 23 dmm32 A0.x, 0x00000000; 24 dmm32 A1.w, 0xe999dc28; 25 dmm32 A1.x, 0xffffffff; 26 imm32 R0, 0xe58d5ffa; 27 imm32 R4, 0x7fff7fff; 28 R0 = A1.L + A1.H, R4 = A0.L + A0.H; 29 checkreg R0, 0xffffc5c1; 30 checkreg R4, 0xffff32c6; 31 checkreg ASTAT, (0x40e0cc00 | _VS | _V | _AV1S | _AV0S | _AC0 | _CC | _V_COPY | _AC0_COPY); 32 33 dmm32 ASTAT, (0x3420ca80 | _VS | _AV0S | _AC1 | _AC0 | _AQ | _CC); 34 dmm32 A0.w, 0xeff48350; 35 dmm32 A0.x, 0xffffffff; 36 dmm32 A1.w, 0x5a3f623a; 37 dmm32 A1.x, 0xffffffff; 38 imm32 R4, 0xffff152f; 39 imm32 R6, 0xdd13218a; 40 R4 = A1.L + A1.H, R6 = A0.L + A0.H; 41 checkreg R4, 0x0000bc79; 42 checkreg R6, 0xffff7344; 43 checkreg ASTAT, (0x3420ca80 | _VS | _AV0S | _AC1 | _AC0 | _AQ | _CC); 44 45 dmm32 ASTAT, (0x10204880 | _VS | _V | _AV1S | _AC1 | _AC0 | _AQ | _V_COPY | _AN); 46 dmm32 A0.w, 0x6da679bb; 47 dmm32 A0.x, 0xffffff96; 48 dmm32 A1.w, 0x1f5fb024; 49 dmm32 A1.x, 0x00000000; 50 imm32 R3, 0x3ebf8000; 51 imm32 R6, 0x025f2e8c; 52 R6 = A1.L + A1.H, R3 = A0.L + A0.H; 53 checkreg R3, 0x0000e761; 54 checkreg R6, 0xffffcf83; 55 checkreg ASTAT, (0x10204880 | _VS | _V | _AV1S | _AC1 | _AC0 | _AQ | _V_COPY | _AN); 56 57 dmm32 ASTAT, (0x6ca00c90 | _V | _AV1S | _AV1 | _AC0_COPY | _AN | _AZ); 58 dmm32 A0.w, 0x59abaa84; 59 dmm32 A0.x, 0xffffffe1; 60 dmm32 A1.w, 0x71541efe; 61 dmm32 A1.x, 0x00000009; 62 imm32 R0, 0x2c41e797; 63 imm32 R5, 0x7bfa5e8a; 64 R0 = A1.L + A1.H, R5 = A0.L + A0.H; 65 checkreg R0, 0x00009052; 66 checkreg R5, 0x0000042f; 67 checkreg ASTAT, (0x6ca00c90 | _V | _AV1S | _AV1 | _AC0_COPY | _AN | _AZ); 68 69 dmm32 ASTAT, (0x1c50c290 | _VS | _AV0S | _AV0 | _AC1 | _AC0 | _AQ | _AN); 70 dmm32 A0.w, 0xffffffff; 71 dmm32 A0.x, 0xffffffff; 72 dmm32 A1.w, 0xc49ca8db; 73 dmm32 A1.x, 0xffffffff; 74 imm32 R3, 0x0f62ffff; 75 imm32 R4, 0x09505188; 76 R4 = A1.L + A1.H, R3 = A0.L + A0.H; 77 checkreg R3, 0xfffffffe; 78 checkreg R4, 0xffff6d77; 79 checkreg ASTAT, (0x1c50c290 | _VS | _AV0S | _AV0 | _AC1 | _AC0 | _AQ | _AN); 80 81 dmm32 ASTAT, (0x70e04a90 | _VS | _AV0S | _AQ); 82 dmm32 A0.w, 0xd827823e; 83 dmm32 A0.x, 0xffffffff; 84 dmm32 A1.w, 0x303d11ba; 85 dmm32 A1.x, 0x00000000; 86 imm32 R1, 0x80007fff; 87 imm32 R6, 0xffc4feb3; 88 R6 = A1.L + A1.H, R1 = A0.L + A0.H; 89 checkreg R1, 0xffff5a65; 90 checkreg R6, 0x000041f7; 91 checkreg ASTAT, (0x70e04a90 | _VS | _AV0S | _AQ); 92 93 dmm32 ASTAT, (0x5c80c200 | _VS | _AV0S | _AQ | _AC0_COPY | _AN); 94 dmm32 A0.w, 0x97049850; 95 dmm32 A0.x, 0x00000000; 96 dmm32 A1.w, 0xffffa014; 97 dmm32 A1.x, 0xffffffff; 98 imm32 R0, 0x04828378; 99 imm32 R5, 0x3d9effff; 100 R0 = A1.L + A1.H, R5 = A0.L + A0.H; 101 checkreg R0, 0xffffa013; 102 checkreg R5, 0xffff2f54; 103 checkreg ASTAT, (0x5c80c200 | _VS | _AV0S | _AQ | _AC0_COPY | _AN); 104 105 dmm32 ASTAT, (0x6c604600 | _VS | _V | _AV0S | _AC1 | _AC0 | _AQ | _CC | _V_COPY | _AZ); 106 dmm32 A0.w, 0xac43c455; 107 dmm32 A0.x, 0x00000000; 108 dmm32 A1.w, 0x03de6f39; 109 dmm32 A1.x, 0x00000000; 110 imm32 R0, 0x5bbfd2d1; 111 imm32 R3, 0x22425ebc; 112 R3 = A1.L + A1.H, R0 = A0.L + A0.H; 113 checkreg R0, 0xffff7098; 114 checkreg R3, 0x00007317; 115 checkreg ASTAT, (0x6c604600 | _VS | _V | _AV0S | _AC1 | _AC0 | _AQ | _CC | _V_COPY | _AZ); 116 117 dmm32 ASTAT, (0x7cd04280 | _VS | _V | _AC1 | _AC0 | _AQ | _V_COPY | _AC0_COPY | _AN); 118 dmm32 A0.w, 0xb63ac8f5; 119 dmm32 A0.x, 0xffffffe0; 120 dmm32 A1.w, 0x358b94e8; 121 dmm32 A1.x, 0x00000000; 122 imm32 R1, 0x80007fff; 123 imm32 R6, 0x4f4a8883; 124 R6 = A1.L + A1.H, R1 = A0.L + A0.H; 125 checkreg R1, 0xffff7f2f; 126 checkreg R6, 0xffffca73; 127 checkreg ASTAT, (0x7cd04280 | _VS | _V | _AC1 | _AC0 | _AQ | _V_COPY | _AC0_COPY | _AN); 128 129 pass 130