1# Test a few (W32) corner cases 2# mach: bfin 3#include "test.h" 4.include "testutils.inc" 5 6 start 7 8 dmm32 ASTAT, (0x68b0ca90 | _VS | _AV1S | _AV0S | _CC | _AC0_COPY | _AN | _AZ); 9 dmm32 A1.w, 0x70da33ff; 10 dmm32 A1.x, 0x0000000f; 11 imm32 R0, 0x5e29f819; 12 imm32 R1, 0x3f59520b; 13 A1 += R0.L * R1.L (M, W32); 14 checkreg A1.w, 0x7fffffff; 15 checkreg A1.x, 0x00000000; 16 checkreg ASTAT, (0x68b0ca90 | _VS | _AV1S | _AV1 | _AV0S | _CC | _AC0_COPY | _AN | _AZ); 17 18 dmm32 ASTAT, (0x18300c10 | _VS | _AV1S | _AN); 19 dmm32 A0.w, 0x1096b1c1; 20 dmm32 A0.x, 0xfffffff1; 21 imm32 R6, 0x3a0178ee; 22 imm32 R7, 0x17c95e45; 23 A0 -= R6.L * R7.L (W32); 24 checkreg A0.w, 0x80000000; 25 checkreg A0.x, 0xffffffff; 26 checkreg ASTAT, (0x18300c10 | _VS | _AV1S | _AV0S | _AV0 | _AN); 27 28 dmm32 ASTAT, (0x68508800 | _VS | _AV1S | _AV0S | _CC | _AZ); 29 dmm32 A0.w, 0x30c8f917; 30 dmm32 A0.x, 0xffffffc8; 31 imm32 R3, 0x7ad1091c; 32 imm32 R4, 0x80002874; 33 A0 -= R3.L * R4.L (W32); 34 checkreg A0.w, 0x80000000; 35 checkreg A0.x, 0xffffffff; 36 checkreg ASTAT, (0x68508800 | _VS | _AV1S | _AV0S | _AV0 | _CC | _AZ); 37 38 dmm32 ASTAT, (0x58708e90 | _VS | _AV0 | _AC1 | _AC0 | _AQ | _AC0_COPY); 39 dmm32 A0.w, 0x13de4c3d; 40 dmm32 A0.x, 0xffffffa5; 41 imm32 R0, 0xf70f956f; 42 imm32 R2, 0xf837e08c; 43 A0 -= R0.L * R2.H (W32); 44 checkreg A0.w, 0x80000000; 45 checkreg A0.x, 0xffffffff; 46 checkreg ASTAT, (0x58708e90 | _VS | _AV0S | _AV0 | _AC1 | _AC0 | _AQ | _AC0_COPY); 47 48 dmm32 ASTAT, (0x70800280 | _VS | _AV1S | _AC1 | _AQ | _CC | _AC0_COPY); 49 dmm32 A0.w, 0x80140410; 50 dmm32 A0.x, 0x00000000; 51 imm32 R1, 0x028b09a4; 52 imm32 R4, 0x00007ffc; 53 A0 += R4.L * R1.H (W32); 54 checkreg A0.w, 0x7fffffff; 55 checkreg A0.x, 0x00000000; 56 checkreg ASTAT, (0x70800280 | _VS | _AV1S | _AV0S | _AV0 | _AC1 | _AQ | _CC | _AC0_COPY); 57 58 dmm32 ASTAT, (0x0060c610 | _VS | _AC1 | _AC0 | _AC0_COPY | _AN | _AZ); 59 dmm32 A1.w, 0x1794b937; 60 dmm32 A1.x, 0xfffffff5; 61 imm32 R6, 0x008e1c0d; 62 A1 -= R6.L * R6.L (W32); 63 checkreg A1.w, 0x80000000; 64 checkreg A1.x, 0xffffffff; 65 checkreg ASTAT, (0x0060c610 | _VS | _AV1S | _AV1 | _AC1 | _AC0 | _AC0_COPY | _AN | _AZ); 66 67 dmm32 ASTAT, (0x2c600410 | _VS | _AV0S | _AC1 | _CC | _AN); 68 dmm32 A1.w, 0x2d03ef79; 69 dmm32 A1.x, 0x00000079; 70 imm32 R5, 0x15d1b500; 71 imm32 R6, 0xf7962b39; 72 A1 += R6.L * R5.H (W32); 73 checkreg A1.w, 0x7fffffff; 74 checkreg A1.x, 0x00000000; 75 checkreg ASTAT, (0x2c600410 | _VS | _AV1S | _AV1 | _AV0S | _AC1 | _CC | _AN); 76 77 dmm32 ASTAT, (0x5cf04e10 | _VS | _AV0S | _AC1 | _CC | _AC0_COPY); 78 dmm32 A0.w, 0x4d50b3f0; 79 dmm32 A0.x, 0xfffffffc; 80 imm32 R4, 0x6671002a; 81 imm32 R7, 0x00288000; 82 A0 += R4.L * R7.L (W32); 83 checkreg A0.w, 0x80000000; 84 checkreg A0.x, 0xffffffff; 85 checkreg ASTAT, (0x5cf04e10 | _VS | _AV0S | _AV0 | _AC1 | _CC | _AC0_COPY); 86 87 88 dmm32 ASTAT, (0x28908000 | _VS | _V | _AV1S | _AV0S | _AQ | _V_COPY | _AN); 89 dmm32 A1.w, 0xc94e99f1; 90 dmm32 A1.x, 0x00000021; 91 imm32 R4, 0x7fff52b7; 92 imm32 R7, 0x3ebb26c6; 93 A1 += R7.L * R4.L (M, W32); 94 checkreg A1.w, 0x7fffffff; 95 checkreg A1.x, 0x00000000; 96 checkreg ASTAT, (0x28908000 | _VS | _V | _AV1S | _AV1 | _AV0S | _AQ | _V_COPY | _AN); 97 98 dmm32 ASTAT, (0x34708a00 | _VS | _AV0S | _AQ | _CC | _AC0_COPY); 99 dmm32 A1.w, 0xf61f316d; 100 dmm32 A1.x, 0x00000061; 101 imm32 R1, 0x86f0ffff; 102 imm32 R3, 0x791048c5; 103 A1 += R1.L * R3.L (M, W32); 104 checkreg A1.w, 0x7fffffff; 105 checkreg A1.x, 0x00000000; 106 checkreg ASTAT, (0x34708a00 | _VS | _AV1S | _AV1 | _AV0S | _AQ | _CC | _AC0_COPY); 107 108 dmm32 ASTAT, (0x5020c280 | _VS | _V | _AC1 | _AC0 | _V_COPY); 109 dmm32 A1.w, 0x8700591f; 110 dmm32 A1.x, 0x00000007; 111 imm32 R2, 0x145b00b1; 112 imm32 R3, 0x7fffffff; 113 A1 -= R3.L * R2.H (M, W32); 114 checkreg A1.w, 0x7fffffff; 115 checkreg A1.x, 0x00000000; 116 checkreg ASTAT, (0x5020c280 | _VS | _V | _AV1S | _AV1 | _AC1 | _AC0 | _V_COPY); 117 118 dmm32 ASTAT, (0x00000290 | _VS | _V | _AV1S | _AV0S | _AC1 | _AQ | _CC | _V_COPY); 119 dmm32 A0.w, 0xfe84e1ec; 120 dmm32 A0.x, 0xffffffff; 121 imm32 R1, 0x07e73e7b; 122 imm32 R3, 0x00033e7b; 123 A0 -= R3.L * R1.H (W32); 124 checkreg A0.w, 0xfaa965f2; 125 checkreg A0.x, 0xffffffff; 126 checkreg ASTAT, (0x00000290 | _VS | _V | _AV1S | _AV0S | _AC1 | _AQ | _CC | _V_COPY); 127 128 dmm32 ASTAT, (0x78204a80 | _VS | _AV1S | _CC | _AN); 129 dmm32 A0.w, 0xca398210; 130 dmm32 A0.x, 0xffffffff; 131 imm32 R3, 0xffff0000; 132 imm32 R7, 0x00000000; 133 A0 += R7.L * R3.L (W32); 134 checkreg ASTAT, (0x78204a80 | _VS | _AV1S | _CC | _AN); 135 136 dmm32 ASTAT, (0x04208890 | _VS | _AC1 | _AC0_COPY); 137 dmm32 A0.w, 0x224cbaee; 138 dmm32 A0.x, 0x00000000; 139 imm32 R3, 0x3db86584; 140 imm32 R6, 0xdb505ed8; 141 A0 -= R6.L * R3.H (W32); 142 checkreg A0.w, 0xf491746e; 143 checkreg A0.x, 0xffffffff; 144 checkreg ASTAT, (0x04208890 | _VS | _AC1 | _AC0_COPY); 145 146 dmm32 ASTAT, (0x3c908600 | _VS | _AV1S | _AV0S | _AC0 | _AQ | _AC0_COPY); 147 dmm32 A0.w, 0x03f7c0ec; 148 dmm32 A0.x, 0x00000000; 149 imm32 R1, 0x1c25c7b4; 150 imm32 R5, 0x3f7da612; 151 A0 -= R5.L * R1.L (W32); 152 checkreg A0.w, 0xdc6a3b9c; 153 checkreg A0.x, 0xffffffff; 154 checkreg ASTAT, (0x3c908600 | _VS | _AV1S | _AV0S | _AC0 | _AQ | _AC0_COPY); 155 156 dmm32 ASTAT, (0x7cb08680 | _VS | _AQ | _CC | _AN); 157 dmm32 A0.w, 0xdc7c243c; 158 dmm32 A0.x, 0xffffffff; 159 imm32 R0, 0xe2ccef4c; 160 imm32 R5, 0x7fff8000; 161 A0 += R5.L * R0.L (W32); 162 checkreg A0.w, 0xed30243c; 163 checkreg A0.x, 0xffffffff; 164 checkreg ASTAT, (0x7cb08680 | _VS | _AQ | _CC | _AN); 165 166 dmm32 ASTAT, (0x78f00080 | _VS | _V | _AV1S | _AC1 | _AQ | _V_COPY | _AN); 167 dmm32 A0.w, 0x39180f38; 168 dmm32 A0.x, 0x00000000; 169 imm32 R4, 0x01308ac1; 170 imm32 R6, 0x7ffff8fd; 171 A0 = R6.L * R4.H (W32); 172 checkreg A0.w, 0xffef58e0; 173 checkreg A0.x, 0xffffffff; 174 checkreg ASTAT, (0x78f00080 | _VS | _V | _AV1S | _AC1 | _AQ | _V_COPY | _AN); 175 176 dmm32 ASTAT, (0x7050c090 | _VS | _V | _AV1S | _AV0S | _AC0 | _V_COPY | _AC0_COPY | _AN); 177 dmm32 A1.w, 0x010909b0; 178 dmm32 A1.x, 0x00000000; 179 imm32 R0, 0x80000000; 180 imm32 R6, 0x6ad06150; 181 A1 = R6.L * R0.H (W32); 182 checkreg A1.w, 0x9eb00000; 183 checkreg A1.x, 0xffffffff; 184 checkreg ASTAT, (0x7050c090 | _VS | _V | _AV1S | _AV0S | _AC0 | _V_COPY | _AC0_COPY | _AN); 185 186 dmm32 ASTAT, (0x68c04c10 | _VS | _V | _AV0S | _AC0 | _AQ | _V_COPY | _AN); 187 dmm32 A0.w, 0x43687862; 188 dmm32 A0.x, 0x00000000; 189 imm32 R2, 0xff278000; 190 imm32 R4, 0x0000436a; 191 A0 += R2.L * R4.L (W32); 192 checkreg A0.w, 0xfffe7862; 193 checkreg A0.x, 0xffffffff; 194 checkreg ASTAT, (0x68c04c10 | _VS | _V | _AV0S | _AC0 | _AQ | _V_COPY | _AN); 195 196 dmm32 ASTAT, (0x74a00200 | _AV1 | _AV0S | _AV0 | _AC1 | _V_COPY | _AC0_COPY | _AN | _AZ); 197 dmm32 A1.w, 0x64c15e6b; 198 dmm32 A1.x, 0xffffff87; 199 imm32 R4, 0x30b3e20d; 200 imm32 R7, 0x4a562069; 201 A1 = R4.L * R7.H (M, W32); 202 checkreg A1.w, 0xf74db25e; 203 checkreg A1.x, 0xffffffff; 204 checkreg ASTAT, (0x74a00200 | _AV0S | _AV0 | _AC1 | _V_COPY | _AC0_COPY | _AN | _AZ); 205 206 dmm32 ASTAT, (0x70f08410 | _AV0 | _AC1 | _AC0_COPY | _AN | _AZ); 207 dmm32 A0.w, 0x5f011b0d; 208 dmm32 A0.x, 0xffffff86; 209 imm32 R3, 0x21f93a90; 210 imm32 R4, 0x1c82d429; 211 A0 = R3.H * R4.L (W32); 212 checkreg A0.w, 0xf45d49c2; 213 checkreg A0.x, 0xffffffff; 214 checkreg ASTAT, (0x70f08410 | _AC1 | _AC0_COPY | _AN | _AZ); 215 216 pass 217