1//Original:/proj/frio/dv/testcases/core/c_dsp32alu_rrpmmp_sft/c_dsp32alu_rrpmmp_sft.dsp 2// Spec Reference: dsp32alu (dreg, dreg) = +/-, -/+ (dreg, dreg) >>, << 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 R0 = 0; 9 ASTAT = R0; 10 11 12 imm32 r0, 0x35678911; 13 imm32 r1, 0x2489ab1d; 14 imm32 r2, 0x34545515; 15 imm32 r3, 0x46667717; 16 imm32 r0, 0x5567891b; 17 imm32 r1, 0x67889b1d; 18 imm32 r2, 0x74445915; 19 imm32 r3, 0x86667797; 20 R0 = R0 +|- R0 , R7 = R0 -|+ R0 (ASR); 21 R1 = R0 +|- R1 , R6 = R0 -|+ R1 (ASR); 22 R2 = R0 +|- R2 , R5 = R0 -|+ R2 (ASR); 23 R3 = R0 +|- R3 , R4 = R0 -|+ R3 (ASR); 24 R4 = R0 +|- R4 , R3 = R0 -|+ R4 (ASR); 25 R5 = R0 +|- R5 , R2 = R0 -|+ R5 (ASR); 26 R6 = R0 +|- R6 , R1 = R0 -|+ R6 (ASR); 27 R7 = R0 +|- R7 , R0 = R0 -|+ R7 (ASR); 28 CHECKREG r0, 0x2AB3c48D; 29 CHECKREG r1, 0x2F3CE6C7; 30 CHECKREG r2, 0x326B1645; 31 CHECKREG r3, 0xf6F31DE5; 32 CHECKREG r4, 0x5E73E21A; 33 CHECKREG r5, 0x22FCE9BB; 34 CHECKREG r6, 0x262B1939; 35 CHECKREG r7, 0x2AB33B72; 36 37 imm32 r0, 0xe5678911; 38 imm32 r1, 0x2e89ab1d; 39 imm32 r2, 0x34e45515; 40 imm32 r3, 0x466e7717; 41 imm32 r0, 0x5567ee1b; 42 imm32 r1, 0x6789abed; 43 imm32 r2, 0x7444551e; 44 imm32 r3, 0x86e67777; 45 R0 = R1 +|- R0 , R7 = R1 -|+ R0 (ASR); 46 R1 = R1 +|- R1 , R6 = R1 -|+ R1 (ASR); 47 R2 = R1 +|- R2 , R5 = R1 -|+ R2 (ASR); 48 R3 = R1 +|- R3 , R4 = R1 -|+ R3 (ASR); 49 R4 = R1 +|- R4 , R3 = R1 -|+ R4 (ASR); 50 R5 = R1 +|- R5 , R2 = R1 -|+ R5 (ASR); 51 R6 = R1 +|- R6 , R1 = R1 -|+ R6 (ASR); 52 R7 = R1 +|- R7 , R0 = R1 -|+ R7 (ASR); 53 CHECKREG r0, 0x1559d17D; 54 CHECKREG r1, 0x33C4d5F6; 55 CHECKREG r2, 0x36F31547; 56 CHECKREG r3, 0xfB9C1DDD; 57 CHECKREG r4, 0x6BEDE222; 58 CHECKREG r5, 0x3095eAB8; 59 CHECKREG r6, 0x33C42A09; 60 CHECKREG r7, 0x1E6A0479; 61 62 imm32 r0, 0x15678911; 63 imm32 r1, 0x2789ab1d; 64 imm32 r2, 0x34445515; 65 imm32 r3, 0x46667717; 66 imm32 r0, 0x5567891b; 67 imm32 r1, 0x6789ab1d; 68 imm32 r2, 0x74445515; 69 imm32 r3, 0x86667777; 70 R0 = R2 +|- R0 , R7 = R2 -|+ R0 (ASR); 71 R1 = R2 +|- R1 , R6 = R2 -|+ R1 (ASR); 72 R2 = R2 +|- R2 , R5 = R2 -|+ R2 (ASR); 73 R3 = R2 +|- R3 , R4 = R2 -|+ R3 (ASR); 74 R4 = R2 +|- R4 , R3 = R2 -|+ R4 (ASR); 75 R5 = R2 +|- R5 , R2 = R2 -|+ R5 (ASR); 76 R6 = R2 +|- R6 , R1 = R2 -|+ R6 (ASR); 77 R7 = R2 +|- R7 , R0 = R2 -|+ R7 (ASR); 78 CHECKREG r0, 0x155A0CD1; 79 CHECKREG r1, 0x19E21551; 80 CHECKREG r2, 0x3A222A8A; 81 CHECKREG r3, 0xfEAA1DDD; 82 CHECKREG r4, 0x7599e222; 83 CHECKREG r5, 0x3A22d575; 84 CHECKREG r6, 0x203F1538; 85 CHECKREG r7, 0x24C81DB9; 86 87 imm32 r0, 0x85678911; 88 imm32 r1, 0x2889ab1d; 89 imm32 r2, 0x34445515; 90 imm32 r3, 0x46667717; 91 imm32 r0, 0x5587891b; 92 imm32 r1, 0x6788ab1d; 93 imm32 r2, 0x74448515; 94 imm32 r3, 0x86667877; 95 R0 = R3 +|- R0 , R7 = R3 -|+ R0 (ASR); 96 R1 = R3 +|- R1 , R6 = R3 -|+ R1 (ASR); 97 R2 = R3 +|- R2 , R5 = R3 -|+ R2 (ASR); 98 R3 = R3 +|- R3 , R4 = R3 -|+ R3 (ASR); 99 R4 = R3 +|- R4 , R3 = R3 -|+ R4 (ASR); 100 R5 = R3 +|- R5 , R2 = R3 -|+ R5 (ASR); 101 R6 = R3 +|- R6 , R1 = R3 -|+ R6 (ASR); 102 R7 = R3 +|- R7 , R0 = R3 -|+ R7 (ASR); 103 CHECKREG r0, 0x15621E82; 104 CHECKREG r1, 0x19E22702; 105 CHECKREG r2, 0x1D111D80; 106 CHECKREG r3, 0xc3333C3B; 107 CHECKREG r4, 0xc333c3C4; 108 CHECKREG r5, 0xa6221EBA; 109 CHECKREG r6, 0xa9511538; 110 CHECKREG r7, 0xaDD11DB9; 111 112 imm32 r0, 0x15678911; 113 imm32 r1, 0x2789ab1d; 114 imm32 r2, 0x34445515; 115 imm32 r3, 0x46667717; 116 imm32 r0, 0x5567891b; 117 imm32 r1, 0x6789ab1d; 118 imm32 r2, 0x74445515; 119 imm32 r3, 0x86667777; 120 R0 = R4 +|- R0 , R7 = R4 -|+ R0 (ASR); 121 R1 = R4 +|- R1 , R6 = R4 -|+ R1 (ASR); 122 R2 = R4 +|- R2 , R5 = R4 -|+ R2 (ASR); 123 R3 = R4 +|- R3 , R4 = R4 -|+ R3 (ASR); 124 R4 = R4 +|- R4 , R3 = R4 -|+ R4 (ASR); 125 R5 = R4 +|- R5 , R2 = R4 -|+ R5 (ASR); 126 R6 = R4 +|- R6 , R1 = R4 -|+ R6 (ASR); 127 R7 = R4 +|- R7 , R0 = R4 -|+ R7 (ASR); 128 CHECKREG r0, 0x33C0d337; 129 CHECKREG r1, 0x3848dBB8; 130 CHECKREG r2, 0x3B770636; 131 CHECKREG r3, 0x00001D9D; 132 CHECKREG r4, 0x1E660000; 133 CHECKREG r5, 0xe2EEf9CA; 134 CHECKREG r6, 0xe61D2448; 135 CHECKREG r7, 0xeAA62CC8; 136 137 imm32 r0, 0x95678911; 138 imm32 r1, 0x2789ab1d; 139 imm32 r2, 0x39445515; 140 imm32 r3, 0x46967717; 141 imm32 r0, 0x5567891b; 142 imm32 r1, 0x6789ab1d; 143 imm32 r2, 0x74495515; 144 imm32 r3, 0x86669777; 145 R0 = R5 +|- R0 , R7 = R5 -|+ R0 (ASR); 146 R1 = R5 +|- R1 , R6 = R5 -|+ R1 (ASL); 147 R2 = R5 +|- R2 , R5 = R5 -|+ R2 (ASR); 148 R3 = R5 +|- R3 , R4 = R5 -|+ R3 (ASL); 149 R4 = R5 +|- R4 , R3 = R5 -|+ R4 (ASR); 150 R5 = R5 +|- R5 , R2 = R5 -|+ R5 (ASR); 151 R6 = R5 +|- R6 , R1 = R5 -|+ R6 (ASR); 152 R7 = R5 +|- R7 , R0 = R5 -|+ R7 (ASL); 153 CHECKREG r0, 0xE11E82E4; 154 CHECKREG r1, 0xe04424E7; 155 CHECKREG r2, 0x0000276F; 156 CHECKREG r3, 0xaaBD529D; 157 CHECKREG r4, 0x0c95D4D1; 158 CHECKREG r5, 0xb7520000; 159 CHECKREG r6, 0xd70EdB19; 160 CHECKREG r7, 0xfC2A7D1C; 161 162 imm32 r0, 0x15678911; 163 imm32 r1, 0x2789ab1d; 164 imm32 r2, 0x34445515; 165 imm32 r3, 0x46667717; 166 imm32 r0, 0x5567891b; 167 imm32 r1, 0x6789ab1d; 168 imm32 r2, 0x74445515; 169 imm32 r3, 0x86667777; 170 R0 = R6 +|- R0 , R7 = R6 -|+ R0 (ASR); 171 R1 = R6 +|- R1 , R6 = R6 -|+ R1 (ASL); 172 R2 = R6 +|- R2 , R5 = R6 -|+ R2 (ASL); 173 R3 = R6 +|- R3 , R4 = R6 -|+ R3 (ASR); 174 R4 = R6 +|- R4 , R3 = R6 -|+ R4 (ASR); 175 R5 = R6 +|- R5 , R2 = R6 -|+ R5 (ASR); 176 R6 = R6 +|- R6 , R1 = R6 -|+ R6 (ASL); 177 R7 = R6 +|- R7 , R0 = R6 -|+ R7 (ASR); 178 CHECKREG r0, 0x5dAAd90D; 179 CHECKREG r1, 0x000031B0; 180 CHECKREG r2, 0x04BFe7B7; 181 CHECKREG r3, 0xd95C272E; 182 CHECKREG r4, 0x05AEe53D; 183 CHECKREG r5, 0xDa4B24B5; 184 CHECKREG r6, 0x7C280000; 185 CHECKREG r7, 0x1e7D26F3; 186 187 imm32 r0, 0x67898911; 188 imm32 r1, 0xb789ab1d; 189 imm32 r2, 0x3b445515; 190 imm32 r3, 0x46b67717; 191 imm32 r0, 0x5567891b; 192 imm32 r1, 0x678bab1d; 193 imm32 r2, 0x7444b515; 194 imm32 r3, 0x86667b77; 195 R0 = R7 +|- R0 , R7 = R7 -|+ R0 (ASR); 196 R1 = R7 +|- R1 , R6 = R7 -|+ R1 (ASR); 197 R2 = R7 +|- R2 , R5 = R7 -|+ R2 (ASL); 198 R3 = R7 +|- R3 , R4 = R7 -|+ R3 (ASR); 199 R4 = R7 +|- R4 , R3 = R7 -|+ R4 (ASL); 200 R5 = R7 +|- R5 , R2 = R7 -|+ R5 (ASL); 201 R6 = R7 +|- R6 , R1 = R7 -|+ R6 (ASL); 202 R7 = R7 +|- R7 , R0 = R7 -|+ R7 (ASR); 203 CHECKREG r0, 0x0000d807; 204 CHECKREG r1, 0x4c163332; 205 CHECKREG r2, 0x07FAe47E; 206 CHECKREG r3, 0x6aF2038C; 207 CHECKREG r4, 0x273A5c90; 208 CHECKREG r5, 0x8a327b9E; 209 CHECKREG r6, 0x46162cEA; 210 CHECKREG r7, 0xe48B0000; 211 212 imm32 r0, 0xe5678911; 213 imm32 r1, 0x2e89ab1d; 214 imm32 r2, 0x34ee5515; 215 imm32 r3, 0x4666e717; 216 imm32 r0, 0x5567891b; 217 imm32 r1, 0x6789ae1d; 218 imm32 r2, 0x744455e5; 219 imm32 r3, 0x8666777e; 220 R4 = R2 +|- R5 , R3 = R2 -|+ R5 (ASR); 221 R0 = R5 +|- R3 , R5 = R5 -|+ R3 (ASL); 222 R2 = R6 +|- R2 , R0 = R6 -|+ R2 (ASR); 223 R3 = R4 +|- R0 , R2 = R4 -|+ R0 (ASR); 224 R7 = R7 +|- R6 , R6 = R7 -|+ R6 (ASR); 225 R6 = R1 +|- R7 , R1 = R1 -|+ R7 (ASL); 226 R5 = R0 +|- R4 , R7 = R0 -|+ R4 (ASR); 227 R1 = R3 +|- R1 , R4 = R3 -|+ R1 (ASL); 228 CHECKREG r0, 0xE8e94167; 229 CHECKREG r1, 0x31084d1C; 230 CHECKREG r2, 0x0b291745; 231 CHECKREG r3, 0xF412d5de; 232 CHECKREG r4, 0x9f400a5C; 233 CHECKREG r5, 0xF4122a22; 234 CHECKREG r6, 0xf9B28924; 235 CHECKREG r7, 0xF4D71745; 236 237 imm32 r0, 0xff678911; 238 imm32 r1, 0x2789ab1d; 239 imm32 r2, 0x3f445515; 240 imm32 r3, 0x46f67717; 241 imm32 r0, 0x556f891b; 242 imm32 r1, 0x6789fb1d; 243 imm32 r2, 0x74445f15; 244 imm32 r3, 0x866677f7; 245 R4 = R3 +|- R3 , R5 = R3 -|+ R3 (ASR); 246 R1 = R6 +|- R1 , R6 = R6 -|+ R1 (ASL); 247 R6 = R1 +|- R4 , R4 = R1 -|+ R4 (ASR); 248 R7 = R4 +|- R2 , R0 = R4 -|+ R2 (ASL); 249 R2 = R2 +|- R6 , R1 = R2 -|+ R6 (ASR); 250 R3 = R5 +|- R5 , R7 = R5 -|+ R5 (ASL); 251 R5 = R7 +|- R7 , R3 = R7 -|+ R7 (ASR); 252 R0 = R0 +|- R0 , R2 = R0 -|+ R0 (ASR); 253 CHECKREG r0, 0x53880000; 254 CHECKREG r1, 0x67eb368e; 255 CHECKREG r2, 0x0000da38; 256 CHECKREG r3, 0x0000dfdc; 257 CHECKREG r4, 0x1e080e07; 258 CHECKREG r5, 0x00000000; 259 CHECKREG r6, 0xa46e0e07; 260 CHECKREG r7, 0x0000dfdc; 261 262 pass 263