1//Original:/testcases/core/c_dsp32alu_rrpmmp/c_dsp32alu_rrpmmp.dsp 2// Spec Reference: dsp32alu (dreg, dreg) = +/-, -/+ (dreg, dreg) amod0 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 9 10 11imm32 r0, 0x35678911; 12imm32 r1, 0x2489ab1d; 13imm32 r2, 0x34545515; 14imm32 r3, 0x46667717; 15imm32 r0, 0x5567891b; 16imm32 r1, 0x67889b1d; 17imm32 r2, 0x74445915; 18imm32 r3, 0x86667797; 19R0 = R0 +|- R0 , R7 = R0 -|+ R0; 20R1 = R0 +|- R1 , R6 = R0 -|+ R1; 21R2 = R0 +|- R2 , R5 = R0 -|+ R2; 22R3 = R0 +|- R3 , R4 = R0 -|+ R3; 23R4 = R0 +|- R4 , R3 = R0 -|+ R4; 24R5 = R0 +|- R5 , R2 = R0 -|+ R5; 25R6 = R0 +|- R6 , R1 = R0 -|+ R6; 26R7 = R0 +|- R7 , R0 = R0 -|+ R7; 27CHECKREG r0, 0xAACE1236; 28CHECKREG r1, 0x67889B1D; 29CHECKREG r2, 0x74445915; 30CHECKREG r3, 0x86667797; 31CHECKREG r4, 0xCF368869; 32CHECKREG r5, 0xE158A6EB; 33CHECKREG r6, 0xEE1464E3; 34CHECKREG r7, 0xAACEEDCA; 35 36imm32 r0, 0xe5678911; 37imm32 r1, 0x2e89ab1d; 38imm32 r2, 0x34e45515; 39imm32 r3, 0x466e7717; 40imm32 r0, 0x5567ee1b; 41imm32 r1, 0x6789abed; 42imm32 r2, 0x7444551e; 43imm32 r3, 0x86e67777; 44R0 = R1 +|- R0 , R7 = R1 -|+ R0; 45R1 = R1 +|- R1 , R6 = R1 -|+ R1; 46R2 = R1 +|- R2 , R5 = R1 -|+ R2; 47R3 = R1 +|- R3 , R4 = R1 -|+ R3; 48R4 = R1 +|- R4 , R3 = R1 -|+ R4; 49R5 = R1 +|- R5 , R2 = R1 -|+ R5; 50R6 = R1 +|- R6 , R1 = R1 -|+ R6; 51R7 = R1 +|- R7 , R0 = R1 -|+ R7; 52CHECKREG r0, 0xBCF0F1E2; 53CHECKREG r1, 0xCF1257DA; 54CHECKREG r2, 0x7444551E; 55CHECKREG r3, 0x86E67777; 56CHECKREG r4, 0x173E8889; 57CHECKREG r5, 0x29E0AAE2; 58CHECKREG r6, 0xCF12A826; 59CHECKREG r7, 0xE134BDD2; 60 61imm32 r0, 0x15678911; 62imm32 r1, 0x2789ab1d; 63imm32 r2, 0x34445515; 64imm32 r3, 0x46667717; 65imm32 r0, 0x5567891b; 66imm32 r1, 0x6789ab1d; 67imm32 r2, 0x74445515; 68imm32 r3, 0x86667777; 69R0 = R2 +|- R0 , R7 = R2 -|+ R0; 70R1 = R2 +|- R1 , R6 = R2 -|+ R1; 71R2 = R2 +|- R2 , R5 = R2 -|+ R2; 72R3 = R2 +|- R3 , R4 = R2 -|+ R3; 73R4 = R2 +|- R4 , R3 = R2 -|+ R4; 74R5 = R2 +|- R5 , R2 = R2 -|+ R5; 75R6 = R2 +|- R6 , R1 = R2 -|+ R6; 76R7 = R2 +|- R7 , R0 = R2 -|+ R7; 77CHECKREG r0, 0xC9AB885A; 78CHECKREG r1, 0xDBCDAA5C; 79CHECKREG r2, 0xE888AA2A; 80CHECKREG r3, 0x86667777; 81CHECKREG r4, 0x4AAA8889; 82CHECKREG r5, 0xE88855D6; 83CHECKREG r6, 0xF543A9F8; 84CHECKREG r7, 0x0765CBFA; 85 86imm32 r0, 0x85678911; 87imm32 r1, 0x2889ab1d; 88imm32 r2, 0x34445515; 89imm32 r3, 0x46667717; 90imm32 r0, 0x5587891b; 91imm32 r1, 0x6788ab1d; 92imm32 r2, 0x74448515; 93imm32 r3, 0x86667877; 94R0 = R3 +|- R0 , R7 = R3 -|+ R0; 95R1 = R3 +|- R1 , R6 = R3 -|+ R1; 96R2 = R3 +|- R2 , R5 = R3 -|+ R2; 97R3 = R3 +|- R3 , R4 = R3 -|+ R3; 98R4 = R3 +|- R4 , R3 = R3 -|+ R4; 99R5 = R3 +|- R5 , R2 = R3 -|+ R5; 100R6 = R3 +|- R6 , R1 = R3 -|+ R6; 101R7 = R3 +|- R7 , R0 = R3 -|+ R7; 102CHECKREG r0, 0xDBEDF280; 103CHECKREG r1, 0xEDEE1482; 104CHECKREG r2, 0xFAAAEE7A; 105CHECKREG r3, 0x0CCCF0EE; 106CHECKREG r4, 0x0CCC0F12; 107CHECKREG r5, 0x1EEEF362; 108CHECKREG r6, 0x2BAACD5A; 109CHECKREG r7, 0x3DABEF5C; 110 111imm32 r0, 0x15678911; 112imm32 r1, 0x2789ab1d; 113imm32 r2, 0x34445515; 114imm32 r3, 0x46667717; 115imm32 r0, 0x5567891b; 116imm32 r1, 0x6789ab1d; 117imm32 r2, 0x74445515; 118imm32 r3, 0x86667777; 119R0 = R4 +|- R0 , R7 = R4 -|+ R0; 120R1 = R4 +|- R1 , R6 = R4 -|+ R1; 121R2 = R4 +|- R2 , R5 = R4 -|+ R2; 122R3 = R4 +|- R3 , R4 = R4 -|+ R3; 123R4 = R4 +|- R4 , R3 = R4 -|+ R4; 124R5 = R4 +|- R5 , R2 = R4 -|+ R5; 125R6 = R4 +|- R6 , R1 = R4 -|+ R6; 126R7 = R4 +|- R7 , R0 = R4 -|+ R7; 127CHECKREG r0, 0x5567982D; 128CHECKREG r1, 0x6789BA2F; 129CHECKREG r2, 0x74446427; 130CHECKREG r3, 0x00000D12; 131CHECKREG r4, 0x0CCC0000; 132CHECKREG r5, 0xA5549BD9; 133CHECKREG r6, 0xB20F45D1; 134CHECKREG r7, 0xC43167D3; 135 136imm32 r0, 0x95678911; 137imm32 r1, 0x2789ab1d; 138imm32 r2, 0x39445515; 139imm32 r3, 0x46967717; 140imm32 r0, 0x5567891b; 141imm32 r1, 0x6789ab1d; 142imm32 r2, 0x74495515; 143imm32 r3, 0x86669777; 144R0 = R5 +|- R0 , R7 = R5 -|+ R0; 145R1 = R5 +|- R1 , R6 = R5 -|+ R1; 146R2 = R5 +|- R2 , R5 = R5 -|+ R2; 147R3 = R5 +|- R3 , R4 = R5 -|+ R3; 148R4 = R5 +|- R4 , R3 = R5 -|+ R4; 149R5 = R5 +|- R5 , R2 = R5 -|+ R5; 150R6 = R5 +|- R6 , R1 = R5 -|+ R6; 151R7 = R5 +|- R7 , R0 = R5 -|+ R7; 152CHECKREG r0, 0x122924F4; 153CHECKREG r1, 0x244B46F6; 154CHECKREG r2, 0x0000E1DC; 155CHECKREG r3, 0x86667953; 156CHECKREG r4, 0xDBB06889; 157CHECKREG r5, 0x62160000; 158CHECKREG r6, 0x9FE1B90A; 159CHECKREG r7, 0xB203DB0C; 160 161imm32 r0, 0x15678911; 162imm32 r1, 0x2789ab1d; 163imm32 r2, 0x34445515; 164imm32 r3, 0x46667717; 165imm32 r0, 0x5567891b; 166imm32 r1, 0x6789ab1d; 167imm32 r2, 0x74445515; 168imm32 r3, 0x86667777; 169R0 = R6 +|- R0 , R7 = R6 -|+ R0; 170R1 = R6 +|- R1 , R6 = R6 -|+ R1; 171R2 = R6 +|- R2 , R5 = R6 -|+ R2; 172R3 = R6 +|- R3 , R4 = R6 -|+ R3; 173R4 = R6 +|- R4 , R3 = R6 -|+ R4; 174R5 = R6 +|- R5 , R2 = R6 -|+ R5; 175R6 = R6 +|- R6 , R1 = R6 -|+ R6; 176R7 = R6 +|- R7 , R0 = R6 -|+ R7; 177CHECKREG r0, 0x26364225; 178CHECKREG r1, 0x0000C84E; 179CHECKREG r2, 0x74441D63; 180CHECKREG r3, 0x86663FC5; 181CHECKREG r4, 0xEA4A8889; 182CHECKREG r5, 0xFC6CAAEB; 183CHECKREG r6, 0x70B00000; 184CHECKREG r7, 0xBB2ABDDB; 185 186imm32 r0, 0x67898911; 187imm32 r1, 0xb789ab1d; 188imm32 r2, 0x3b445515; 189imm32 r3, 0x46b67717; 190imm32 r0, 0x5567891b; 191imm32 r1, 0x678bab1d; 192imm32 r2, 0x7444b515; 193imm32 r3, 0x86667b77; 194R0 = R7 +|- R0 , R7 = R7 -|+ R0; 195R1 = R7 +|- R1 , R6 = R7 -|+ R1; 196R2 = R7 +|- R2 , R5 = R7 -|+ R2; 197R3 = R7 +|- R3 , R4 = R7 -|+ R3; 198R4 = R7 +|- R4 , R3 = R7 -|+ R4; 199R5 = R7 +|- R5 , R2 = R7 -|+ R5; 200R6 = R7 +|- R6 , R1 = R7 -|+ R6; 201R7 = R7 +|- R7 , R0 = R7 -|+ R7; 202CHECKREG r0, 0x00008DEC; 203CHECKREG r1, 0x678B3909; 204CHECKREG r2, 0x74444301; 205CHECKREG r3, 0x86660963; 206CHECKREG r4, 0x45208489; 207CHECKREG r5, 0x57424AEB; 208CHECKREG r6, 0x63FB54E3; 209CHECKREG r7, 0xCB860000; 210 211imm32 r0, 0xe5678911; 212imm32 r1, 0x2e89ab1d; 213imm32 r2, 0x34ee5515; 214imm32 r3, 0x4666e717; 215imm32 r0, 0x5567891b; 216imm32 r1, 0x6789ae1d; 217imm32 r2, 0x744455e5; 218imm32 r3, 0x8666777e; 219R4 = R2 +|- R5 , R3 = R2 -|+ R5 (S); 220R0 = R5 +|- R3 , R5 = R5 -|+ R3 (CO); 221R2 = R6 +|- R2 , R0 = R6 -|+ R2 (SCO); 222R3 = R4 +|- R0 , R2 = R4 -|+ R0 (S); 223R7 = R7 +|- R6 , R6 = R7 -|+ R6 (CO); 224R6 = R1 +|- R7 , R1 = R1 -|+ R7 (SCO); 225R5 = R0 +|- R4 , R7 = R0 -|+ R4 (S); 226R1 = R3 +|- R1 , R4 = R3 -|+ R1 (CO); 227CHECKREG r0, 0x7FFFEFB7; 228CHECKREG r1, 0xFFFFE33B; 229CHECKREG r2, 0x0000FAB1; 230CHECKREG r3, 0x7FFF1B43; 231CHECKREG r4, 0x534BFFFF; 232CHECKREG r5, 0x7FFFE4BD; 233CHECKREG r6, 0x7FFF0300; 234CHECKREG r7, 0x0000FAB1; 235 236imm32 r0, 0xff678911; 237imm32 r1, 0x2789ab1d; 238imm32 r2, 0x3f445515; 239imm32 r3, 0x46f67717; 240imm32 r0, 0x556f891b; 241imm32 r1, 0x6789fb1d; 242imm32 r2, 0x74445f15; 243imm32 r3, 0x866677f7; 244R4 = R3 +|- R3 , R5 = R3 -|+ R3 (SCO); 245R1 = R6 +|- R1 , R6 = R6 -|+ R1 (SCO); 246R6 = R1 +|- R4 , R4 = R1 -|+ R4 (S); 247R7 = R4 +|- R2 , R0 = R4 -|+ R2 (S); 248R2 = R2 +|- R6 , R1 = R2 -|+ R6 (CO); 249R3 = R5 +|- R5 , R7 = R5 -|+ R5 (CO); 250R5 = R7 +|- R7 , R3 = R7 -|+ R7 (SCO); 251R0 = R0 +|- R0 , R2 = R0 -|+ R0 (SCO); 252CHECKREG r0, 0x17760000; 253CHECKREG r1, 0x66F87445; 254CHECKREG r2, 0x7FFF0000; 255CHECKREG r3, 0x00000000; 256CHECKREG r4, 0x7FFF07E3; 257CHECKREG r5, 0x00000000; 258CHECKREG r6, 0xFFFF07E3; 259CHECKREG r7, 0x00000000; 260 261 262 263pass 264