1*48596154Schristos//Original:/proj/frio/dv/testcases/core/c_dsp32alu_rrppmm_sft/c_dsp32alu_rrppmm_sft.dsp 2*48596154Schristos// Spec Reference: dsp32alu (dreg, dreg) = +/+, -/- (dreg, dreg) >>, << 3*48596154Schristos# mach: bfin 4*48596154Schristos 5*48596154Schristos.include "testutils.inc" 6*48596154Schristos start 7*48596154Schristos 8*48596154Schristos R0 = 0; 9*48596154Schristos ASTAT = R0; 10*48596154Schristos 11*48596154Schristos imm32 r0, 0x95679911; 12*48596154Schristos imm32 r1, 0x2789ab1d; 13*48596154Schristos imm32 r2, 0x34945515; 14*48596154Schristos imm32 r3, 0x46967717; 15*48596154Schristos imm32 r4, 0x5597891b; 16*48596154Schristos imm32 r5, 0x6989ab1d; 17*48596154Schristos imm32 r6, 0x94445515; 18*48596154Schristos imm32 r7, 0x96667777; 19*48596154Schristos R0 = R0 +|+ R0, R7 = R0 -|- R0 (ASR); 20*48596154Schristos R1 = R0 +|+ R1, R6 = R0 -|- R1 (ASL); 21*48596154Schristos R2 = R0 +|+ R2, R5 = R0 -|- R2 (ASR); 22*48596154Schristos R3 = R0 +|+ R3, R4 = R0 -|- R3 (ASR); 23*48596154Schristos R4 = R0 +|+ R4, R3 = R0 -|- R4 (ASL); 24*48596154Schristos R5 = R0 +|+ R5, R2 = R0 -|- R5 (ASR); 25*48596154Schristos R6 = R0 +|+ R6, R1 = R0 -|- R6 (ASL); 26*48596154Schristos R7 = R0 +|+ R7, R0 = R0 -|- R7 (ASR); 27*48596154Schristos CHECKREG r0, 0xcAB3cC88; 28*48596154Schristos CHECKREG r1, 0x73567A52; 29*48596154Schristos CHECKREG r2, 0xf27FfB89; 30*48596154Schristos CHECKREG r3, 0xdBFE1028; 31*48596154Schristos CHECKREG r4, 0x799E541C; 32*48596154Schristos CHECKREG r5, 0xa2E89D87; 33*48596154Schristos CHECKREG r6, 0xE246e9F2; 34*48596154Schristos CHECKREG r7, 0xcAB3cC88; 35*48596154Schristos 36*48596154Schristos imm32 r0, 0x11678911; 37*48596154Schristos imm32 r1, 0xa719ab1d; 38*48596154Schristos imm32 r2, 0x3a415515; 39*48596154Schristos imm32 r3, 0x46a67717; 40*48596154Schristos imm32 r4, 0x556a891b; 41*48596154Schristos imm32 r5, 0x6789ab1d; 42*48596154Schristos imm32 r6, 0x74445a15; 43*48596154Schristos imm32 r7, 0x866677a7; 44*48596154Schristos R0 = R1 +|+ R0, R7 = R1 -|- R0 (ASR); 45*48596154Schristos R1 = R1 +|+ R1, R6 = R1 -|- R1 (ASR); 46*48596154Schristos R2 = R1 +|+ R2, R5 = R1 -|- R2 (ASL); 47*48596154Schristos R3 = R1 +|+ R3, R4 = R1 -|- R3 (ASR); 48*48596154Schristos R4 = R1 +|+ R4, R3 = R1 -|- R4 (ASR); 49*48596154Schristos R5 = R1 +|+ R5, R2 = R1 -|- R5 (ASR); 50*48596154Schristos R6 = R1 +|+ R6, R1 = R1 -|- R6 (ASL); 51*48596154Schristos R7 = R1 +|+ R7, R0 = R1 -|- R7 (ASR); 52*48596154Schristos CHECKREG r0, 0x41AC229A; 53*48596154Schristos CHECKREG r1, 0x4E32563A; 54*48596154Schristos CHECKREG r2, 0xe6B4fF86; 55*48596154Schristos CHECKREG r3, 0xfB70088D; 56*48596154Schristos CHECKREG r4, 0xaBA9a290; 57*48596154Schristos CHECKREG r5, 0xc064aB96; 58*48596154Schristos CHECKREG r6, 0x4E32563A; 59*48596154Schristos CHECKREG r7, 0x0C8533A0; 60*48596154Schristos 61*48596154Schristos imm32 r0, 0xb567891b; 62*48596154Schristos imm32 r1, 0x2b89abbd; 63*48596154Schristos imm32 r2, 0x34b45b15; 64*48596154Schristos imm32 r3, 0x466bb717; 65*48596154Schristos imm32 r4, 0x556bb91b; 66*48596154Schristos imm32 r5, 0x67b9ab1d; 67*48596154Schristos imm32 r6, 0x7b4455b5; 68*48596154Schristos imm32 r7, 0xb666777b; 69*48596154Schristos R0 = R2 +|+ R0, R7 = R2 -|- R0 (ASR); 70*48596154Schristos R1 = R2 +|+ R1, R6 = R2 -|- R1 (ASR); 71*48596154Schristos R2 = R2 +|+ R2, R5 = R2 -|- R2 (ASR); 72*48596154Schristos R3 = R2 +|+ R3, R4 = R2 -|- R3 (ASL); 73*48596154Schristos R4 = R2 +|+ R4, R3 = R2 -|- R4 (ASR); 74*48596154Schristos R5 = R2 +|+ R5, R2 = R2 -|- R5 (ASR); 75*48596154Schristos R6 = R2 +|+ R6, R1 = R2 -|- R6 (ASL); 76*48596154Schristos R7 = R2 +|+ R7, R0 = R2 -|- R7 (ASR); 77*48596154Schristos CHECKREG r0, 0xED5Ae246; 78*48596154Schristos CHECKREG r1, 0x2B8AaBBC; 79*48596154Schristos CHECKREG r2, 0x1A5A2D8A; 80*48596154Schristos CHECKREG r3, 0x2C11098C; 81*48596154Schristos CHECKREG r4, 0x08A35188; 82*48596154Schristos CHECKREG r5, 0x1A5A2D8A; 83*48596154Schristos CHECKREG r6, 0x3DDE0A6C; 84*48596154Schristos CHECKREG r7, 0x2D004B43; 85*48596154Schristos 86*48596154Schristos imm32 r0, 0xbc678c11; 87*48596154Schristos imm32 r1, 0x27c9cb1d; 88*48596154Schristos imm32 r2, 0x344c5515; 89*48596154Schristos imm32 r3, 0x46c6c717; 90*48596154Schristos imm32 r4, 0x55678c1b; 91*48596154Schristos imm32 r5, 0x6c89abcd; 92*48596154Schristos imm32 r6, 0x7444551c; 93*48596154Schristos imm32 r7, 0x8c667777; 94*48596154Schristos R0 = R3 +|+ R0, R7 = R3 -|- R0 (ASL); 95*48596154Schristos R1 = R3 +|+ R1, R6 = R3 -|- R1 (ASR); 96*48596154Schristos R2 = R3 +|+ R2, R5 = R3 -|- R2 (ASR); 97*48596154Schristos R3 = R3 +|+ R3, R4 = R3 -|- R3 (ASR); 98*48596154Schristos R4 = R3 +|+ R4, R3 = R3 -|- R4 (ASL); 99*48596154Schristos R5 = R3 +|+ R5, R2 = R3 -|- R5 (ASR); 100*48596154Schristos R6 = R3 +|+ R6, R1 = R3 -|- R6 (ASR); 101*48596154Schristos R7 = R3 +|+ R7, R0 = R3 -|- R7 (ASL); 102*48596154Schristos CHECKREG r0, 0xF19C3044; 103*48596154Schristos CHECKREG r1, 0xbF07C818; 104*48596154Schristos CHECKREG r2, 0xC227eA96; 105*48596154Schristos CHECKREG r3, 0x8D8C8E2E; 106*48596154Schristos CHECKREG r4, 0x8D8C8E2E; 107*48596154Schristos CHECKREG r5, 0xCB64a397; 108*48596154Schristos CHECKREG r6, 0xCE85C615; 109*48596154Schristos CHECKREG r7, 0x44940874; 110*48596154Schristos 111*48596154Schristos imm32 r0, 0xd56789d1; 112*48596154Schristos imm32 r1, 0x2d89abdd; 113*48596154Schristos imm32 r2, 0x34d455d5; 114*48596154Schristos imm32 r3, 0x4d667717; 115*48596154Schristos imm32 r4, 0x5dd7891b; 116*48596154Schristos imm32 r5, 0x6789ab1d; 117*48596154Schristos imm32 r6, 0xd44d5515; 118*48596154Schristos imm32 r7, 0xd666d777; 119*48596154Schristos R0 = R4 +|+ R0, R7 = R4 -|- R0 (ASR); 120*48596154Schristos R1 = R4 +|+ R1, R6 = R4 -|- R1 (ASR); 121*48596154Schristos R2 = R4 +|+ R2, R5 = R4 -|- R2 (ASR); 122*48596154Schristos R3 = R4 +|+ R3, R4 = R4 -|- R3 (ASL); 123*48596154Schristos R4 = R4 +|+ R4, R3 = R4 -|- R4 (ASR); 124*48596154Schristos R5 = R4 +|+ R5, R2 = R4 -|- R5 (ASL); 125*48596154Schristos R6 = R4 +|+ R6, R1 = R4 -|- R6 (ASR); 126*48596154Schristos R7 = R4 +|+ R7, R0 = R4 -|- R7 (ASR); 127*48596154Schristos CHECKREG r0, 0xeE551231; 128*48596154Schristos CHECKREG r1, 0x045D1AB4; 129*48596154Schristos CHECKREG r2, 0x18C214CA; 130*48596154Schristos CHECKREG r3, 0x00000000; 131*48596154Schristos CHECKREG r4, 0x20E22408; 132*48596154Schristos CHECKREG r5, 0x6AC67B56; 133*48596154Schristos CHECKREG r6, 0x1C840953; 134*48596154Schristos CHECKREG r7, 0x328D11D6; 135*48596154Schristos 136*48596154Schristos imm32 r0, 0xc567a911; 137*48596154Schristos imm32 r1, 0x278aab1d; 138*48596154Schristos imm32 r2, 0x3c445515; 139*48596154Schristos imm32 r3, 0x46a67717; 140*48596154Schristos imm32 r4, 0x55c7891b; 141*48596154Schristos imm32 r5, 0x6a8cab1d; 142*48596154Schristos imm32 r6, 0x7444c515; 143*48596154Schristos imm32 r7, 0xa6667c77; 144*48596154Schristos R0 = R5 +|+ R0, R7 = R5 -|- R0 (ASR); 145*48596154Schristos R1 = R5 +|+ R1, R6 = R5 -|- R1 (ASL); 146*48596154Schristos R2 = R5 +|+ R2, R5 = R5 -|- R2 (ASR); 147*48596154Schristos R3 = R5 +|+ R3, R4 = R5 -|- R3 (ASR); 148*48596154Schristos R4 = R5 +|+ R4, R3 = R5 -|- R4 (ASR); 149*48596154Schristos R5 = R5 +|+ R5, R2 = R5 -|- R5 (ASL); 150*48596154Schristos R6 = R5 +|+ R6, R1 = R5 -|- R6 (ASR); 151*48596154Schristos R7 = R5 +|+ R7, R0 = R5 -|- R7 (ASR); 152*48596154Schristos CHECKREG r0, 0x04FFD585; 153*48596154Schristos CHECKREG r1, 0x6B46D608; 154*48596154Schristos CHECKREG r2, 0x00000000; 155*48596154Schristos CHECKREG r3, 0x17720887; 156*48596154Schristos CHECKREG r4, 0xFFB1a27D; 157*48596154Schristos CHECKREG r5, 0x5C90AC10; 158*48596154Schristos CHECKREG r6, 0xF14AD608; 159*48596154Schristos CHECKREG r7, 0x5791D68B; 160*48596154Schristos 161*48596154Schristos imm32 r0, 0xd5678911; 162*48596154Schristos imm32 r1, 0x2ddddd1d; 163*48596154Schristos imm32 r2, 0x34ddd515; 164*48596154Schristos imm32 r3, 0x46d67717; 165*48596154Schristos imm32 r4, 0x5d6d891b; 166*48596154Schristos imm32 r5, 0x6789db1d; 167*48596154Schristos imm32 r6, 0x74445d15; 168*48596154Schristos imm32 r7, 0xd66677d7; 169*48596154Schristos R0 = R6 +|+ R0, R7 = R6 -|- R0 (ASR); 170*48596154Schristos R1 = R6 +|+ R1, R6 = R6 -|- R1 (ASR); 171*48596154Schristos R2 = R6 +|+ R2, R5 = R6 -|- R2 (ASR); 172*48596154Schristos R3 = R6 +|+ R3, R4 = R6 -|- R3 (ASL); 173*48596154Schristos R4 = R6 +|+ R4, R3 = R6 -|- R4 (ASR); 174*48596154Schristos R5 = R6 +|+ R5, R2 = R6 -|- R5 (ASR); 175*48596154Schristos R6 = R6 +|+ R6, R1 = R6 -|- R6 (ASL); 176*48596154Schristos R7 = R6 +|+ R7, R0 = R6 -|- R7 (ASR); 177*48596154Schristos CHECKREG r0, 0x9EAFcAF7; 178*48596154Schristos CHECKREG r1, 0x00000000; 179*48596154Schristos CHECKREG r2, 0x16040544; 180*48596154Schristos CHECKREG r3, 0x353C5719; 181*48596154Schristos CHECKREG r4, 0xEDF6E8E3; 182*48596154Schristos CHECKREG r5, 0x0D2F3AB7; 183*48596154Schristos CHECKREG r6, 0x8CCCFFF0; 184*48596154Schristos CHECKREG r7, 0xeE1D34F9; 185*48596154Schristos 186*48596154Schristos imm32 r0, 0xf567a911; 187*48596154Schristos imm32 r1, 0x2f8aab1d; 188*48596154Schristos imm32 r2, 0x34a45515; 189*48596154Schristos imm32 r3, 0x4a6f7717; 190*48596154Schristos imm32 r4, 0x5567f91b; 191*48596154Schristos imm32 r5, 0xa789af1d; 192*48596154Schristos imm32 r6, 0x74445515; 193*48596154Schristos imm32 r7, 0x866677f7; 194*48596154Schristos R0 = R7 +|+ R0, R7 = R7 -|- R0 (ASR); 195*48596154Schristos R1 = R7 +|+ R1, R6 = R7 -|- R1 (ASL); 196*48596154Schristos R2 = R7 +|+ R2, R5 = R7 -|- R2 (ASR); 197*48596154Schristos R3 = R7 +|+ R3, R4 = R7 -|- R3 (ASR); 198*48596154Schristos R4 = R7 +|+ R4, R3 = R7 -|- R4 (ASL); 199*48596154Schristos R5 = R7 +|+ R5, R2 = R7 -|- R5 (ASL); 200*48596154Schristos R6 = R7 +|+ R6, R1 = R7 -|- R6 (ASR); 201*48596154Schristos R7 = R7 +|+ R7, R0 = R7 -|- R7 (ASL); 202*48596154Schristos CHECKREG r0, 0x00000000; 203*48596154Schristos CHECKREG r1, 0xCB4Af763; 204*48596154Schristos CHECKREG r2, 0xFD24bC88; 205*48596154Schristos CHECKREG r3, 0x12EEdE8A; 206*48596154Schristos CHECKREG r4, 0x0F0EbF42; 207*48596154Schristos CHECKREG r5, 0x24D8e144; 208*48596154Schristos CHECKREG r6, 0xFD34700F; 209*48596154Schristos CHECKREG r7, 0x21FC9DCC; 210*48596154Schristos 211*48596154Schristos imm32 r0, 0xe5678911; 212*48596154Schristos imm32 r1, 0x2e89ab1d; 213*48596154Schristos imm32 r2, 0x34e45515; 214*48596154Schristos imm32 r3, 0x46667717; 215*48596154Schristos imm32 r4, 0x556e891b; 216*48596154Schristos imm32 r5, 0x6789ab1d; 217*48596154Schristos imm32 r6, 0x7444e515; 218*48596154Schristos imm32 r7, 0x86667e77; 219*48596154Schristos R4 = R2 +|+ R5, R3 = R2 -|- R5 (ASR); 220*48596154Schristos R0 = R5 +|+ R3, R5 = R5 -|- R3 (ASL); 221*48596154Schristos R2 = R6 +|+ R2, R0 = R6 -|- R2 (ASL); 222*48596154Schristos R3 = R4 +|+ R0, R2 = R4 -|- R0 (ASR); 223*48596154Schristos R7 = R7 +|+ R6, R6 = R7 -|- R6 (ASL); 224*48596154Schristos R6 = R1 +|+ R7, R1 = R1 -|- R7 (ASL); 225*48596154Schristos R5 = R0 +|+ R4, R7 = R0 -|- R4 (ASR); 226*48596154Schristos R1 = R3 +|+ R1, R4 = R3 -|- R1 (ASR); 227*48596154Schristos CHECKREG r0, 0x7EC02000; 228*48596154Schristos CHECKREG r1, 0x6C72EC0B; 229*48596154Schristos CHECKREG r2, 0xe7BBF00C; 230*48596154Schristos CHECKREG r3, 0x667B100C; 231*48596154Schristos CHECKREG r4, 0xfA082401; 232*48596154Schristos CHECKREG r5, 0x667B100C; 233*48596154Schristos CHECKREG r6, 0x47BAE46A; 234*48596154Schristos CHECKREG r7, 0x18450FF3; 235*48596154Schristos 236*48596154Schristos imm32 r0, 0xd5678911; 237*48596154Schristos imm32 r1, 0xff89ab1d; 238*48596154Schristos imm32 r2, 0x34f45515; 239*48596154Schristos imm32 r3, 0x46667717; 240*48596154Schristos imm32 r4, 0x556f891b; 241*48596154Schristos imm32 r5, 0x6789fb1d; 242*48596154Schristos imm32 r6, 0x74445f15; 243*48596154Schristos imm32 r7, 0x866677f7; 244*48596154Schristos R4 = R3 +|+ R3, R5 = R3 -|- R3 (ASR); 245*48596154Schristos R1 = R6 +|+ R1, R6 = R6 -|- R1 (ASL); 246*48596154Schristos R6 = R1 +|+ R4, R4 = R1 -|- R4 (ASL); 247*48596154Schristos R7 = R4 +|+ R2, R0 = R4 -|- R2 (ASR); 248*48596154Schristos R2 = R2 +|+ R6, R1 = R2 -|- R6 (ASR); 249*48596154Schristos R3 = R5 +|+ R5, R7 = R5 -|- R5 (ASL); 250*48596154Schristos R5 = R7 +|+ R7, R3 = R7 -|- R7 (ASL); 251*48596154Schristos R0 = R0 +|+ R0, R2 = R0 -|- R0 (ASR); 252*48596154Schristos CHECKREG r0, 0x06BAF2C2; 253*48596154Schristos CHECKREG r1, 0xEC7A1F0F; 254*48596154Schristos CHECKREG r2, 0x00000000; 255*48596154Schristos CHECKREG r3, 0x00000000; 256*48596154Schristos CHECKREG r4, 0x42683A9A; 257*48596154Schristos CHECKREG r5, 0x00000000; 258*48596154Schristos CHECKREG r6, 0x5C0016F6; 259*48596154Schristos CHECKREG r7, 0x00000000; 260*48596154Schristos 261*48596154Schristos pass 262