1//Original:/testcases/core/c_dsp32mult_pair_is/c_dsp32mult_pair_is.dsp 2// Spec Reference: dsp32mult pair is 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8imm32 r0, 0x8b235625; 9imm32 r1, 0x93ba5127; 10imm32 r2, 0xa3446725; 11imm32 r3, 0x00050027; 12imm32 r4, 0xb0ab6d29; 13imm32 r5, 0x10ace72b; 14imm32 r6, 0xc00c008d; 15imm32 r7, 0xd2467029; 16R1 = R0.L * R0.L, R0 = R0.L * R0.L (ISS2); 17R3 = R0.L * R1.L, R2 = R0.L * R1.H (ISS2); 18R5 = R1.L * R0.L, R4 = R1.H * R0.L (ISS2); 19R7 = R1.L * R1.L, R6 = R1.H * R1.H (ISS2); 20CHECKREG r0, 0x39F9C2B2; 21CHECKREG r1, 0x39F9C2B2; 22CHECKREG r2, 0xE43C0244; 23CHECKREG r3, 0x1D5C8788; 24CHECKREG r4, 0xE43C0244; 25CHECKREG r5, 0x1D5C8788; 26CHECKREG r6, 0x1A41A862; 27CHECKREG r7, 0x1D5C8788; 28 29imm32 r0, 0x5b33a635; 30imm32 r1, 0x6fbe5137; 31imm32 r2, 0x1324b735; 32imm32 r3, 0x9006d037; 33imm32 r4, 0x80abcb39; 34imm32 r5, 0xb0acef3b; 35imm32 r6, 0xa00c00dd; 36imm32 r7, 0x12469003; 37R1 = R2.L * R2.L, R0 = R2.L * R2.L (ISS2); 38R3 = R2.L * R3.L, R2 = R2.L * R3.H (ISS2); 39R5 = R3.L * R2.L, R4 = R3.H * R2.L (ISS2); 40R7 = R3.L * R3.L, R6 = R3.H * R3.H (ISS2); 41CHECKREG r0, 0x2965A1F2; 42CHECKREG r1, 0x2965A1F2; 43CHECKREG r2, 0x3FAE367C; 44CHECKREG r3, 0x1B2CD8C6; 45CHECKREG r4, 0x0B90E2A0; 46CHECKREG r5, 0xEF4D87D0; 47CHECKREG r6, 0x05C49F20; 48CHECKREG r7, 0x0C057248; 49 50imm32 r0, 0x1b235655; 51imm32 r1, 0xc4ba5157; 52imm32 r2, 0x63246755; 53imm32 r3, 0x00060055; 54imm32 r4, 0x90abc509; 55imm32 r5, 0x10acef5b; 56imm32 r6, 0xb00c005d; 57imm32 r7, 0x1246705f; 58R1 = R4.L * R4.L, R0 = R4.L * R4.L (ISS2); 59R3 = R4.L * R5.L, R2 = R4.L * R5.H (ISS2); 60R5 = R5.L * R4.L, R4 = R5.H * R4.L (ISS2); 61R7 = R5.L * R5.L, R6 = R5.H * R5.H (ISS2); 62CHECKREG r0, 0x1B29B4A2; 63CHECKREG r1, 0x1B29B4A2; 64CHECKREG r2, 0xF851E418; 65CHECKREG r3, 0x07AAE266; 66CHECKREG r4, 0xF851E418; 67CHECKREG r5, 0x07AAE266; 68CHECKREG r6, 0x007579C8; 69CHECKREG r7, 0x06D88148; 70 71imm32 r0, 0xab235666; 72imm32 r1, 0xeaba5166; 73imm32 r2, 0x13d48766; 74imm32 r3, 0xf00b0066; 75imm32 r4, 0x90ab9d69; 76imm32 r5, 0x10ac5f6b; 77imm32 r6, 0x800cb66d; 78imm32 r7, 0x1246707f; 79R1 = R6.L * R6.L, R0 = R6.L * R6.L (ISS2); 80R3 = R6.L * R7.L, R2 = R6.L * R7.H (ISS2); 81R5 = R7.L * R6.L, R4 = R7.H * R6.L (ISS2); 82R7 = R7.L * R7.L, R6 = R7.H * R7.H (ISS2); 83CHECKREG r0, 0x2A4A54D2; 84CHECKREG r1, 0x2A4A54D2; 85CHECKREG r2, 0xF57F179C; 86CHECKREG r3, 0xBF566026; 87CHECKREG r4, 0xF57F179C; 88CHECKREG r5, 0xBF566026; 89CHECKREG r6, 0x029BD648; 90CHECKREG r7, 0x62DEBE02; 91 92// mix order 93imm32 r0, 0xab23a675; 94imm32 r1, 0xcfba5127; 95imm32 r2, 0x13246705; 96imm32 r3, 0x00060007; 97imm32 r4, 0x90abcd09; 98imm32 r5, 0x10acdfdb; 99imm32 r6, 0x000c000d; 100imm32 r7, 0x1246f00f; 101R1 = R3.L * R2.L (M), R0 = R3.L * R2.H (ISS2); 102R3 = R1.L * R0.H, R2 = R1.H * R0.L (ISS2); 103R5 = R7.H * R4.L, R4 = R7.H * R4.L (ISS2); 104R7 = R5.L * R6.L (M), R6 = R5.H * R6.L (ISS2); 105CHECKREG r0, 0x00010BF8; 106CHECKREG r1, 0x0005A246; 107CHECKREG r2, 0x000077B0; 108CHECKREG r3, 0xFFFF448C; 109CHECKREG r4, 0xF8B964EC; 110CHECKREG r5, 0xF8B964EC; 111CHECKREG r6, 0xFFFF42CA; 112CHECKREG r7, 0x000A3FF8; 113 114imm32 r0, 0x9b235a75; 115imm32 r1, 0xc9ba5127; 116imm32 r2, 0x13946905; 117imm32 r3, 0x00090007; 118imm32 r4, 0x90ab9d09; 119imm32 r5, 0x10ace9db; 120imm32 r6, 0x000c0d9d; 121imm32 r7, 0x12467009; 122R3 = R6.L * R5.L, R2 = R6.L * R5.H (ISS2); 123R1 = R3.L * R0.H (M), R0 = R3.H * R0.L (ISS2); 124R5 = R1.L * R4.L (M), R4 = R1.H * R4.L (ISS2); 125R7 = R2.H * R7.L, R6 = R2.H * R7.L (ISS2); 126CHECKREG r0, 0xFE55DCD2; 127CHECKREG r1, 0x18FCF734; 128CHECKREG r2, 0x01C5EAF8; 129CHECKREG r3, 0xFDA5149E; 130CHECKREG r4, 0xECAED9B8; 131CHECKREG r5, 0xF53529A8; 132CHECKREG r6, 0x018C7FDA; 133CHECKREG r7, 0x018C7FDA; 134 135imm32 r0, 0x8b235675; 136imm32 r1, 0xc8ba5127; 137imm32 r2, 0x13846705; 138imm32 r3, 0x00080007; 139imm32 r4, 0x90ab8d09; 140imm32 r5, 0x10ace8db; 141imm32 r6, 0x000c008d; 142imm32 r7, 0x12467008; 143R3 = R6.H * R5.L, R2 = R6.L * R5.H (ISS2); 144R7 = R2.L * R0.H (M), R6 = R2.H * R0.L (ISS2); 145R5 = R1.L * R3.L (M), R4 = R1.H * R3.L (ISS2); 146R1 = R2.H * R7.L, R0 = R2.L * R7.H (ISS2); 147CHECKREG r0, 0x4A306970; 148CHECKREG r1, 0xFFFB5540; 149CHECKREG r2, 0x00125D78; 150CHECKREG r3, 0xFFFDD488; 151CHECKREG r4, 0x12C555A0; 152CHECKREG r5, 0x7FFFFFFF; 153CHECKREG r6, 0x000C2874; 154CHECKREG r7, 0x6599DED0; 155 156imm32 r0, 0xeb235675; 157imm32 r1, 0xceba5127; 158imm32 r2, 0x13e46705; 159imm32 r3, 0x000e0007; 160imm32 r4, 0x90abed09; 161imm32 r5, 0x10aceedb; 162imm32 r6, 0x000c00ed; 163imm32 r7, 0x1246700e; 164R1 = R1.H * R4.L, R0 = R1.H * R4.L (ISS2); 165R3 = R2.L * R5.L, R2 = R2.L * R5.H (ISS2); 166R5 = R3.H * R6.L, R4 = R3.L * R6.L (ISS2); 167R7 = R4.L * R0.H, R6 = R4.H * R0.L (ISS2); 168CHECKREG r0, 0x074CED14; 169CHECKREG r1, 0x074CED14; 170CHECKREG r2, 0x0D6B0EB8; 171CHECKREG r3, 0xF2338E8E; 172CHECKREG r4, 0xFF2DF2EC; 173CHECKREG r5, 0xFFE6726E; 174CHECKREG r6, 0x001F3108; 175CHECKREG r7, 0xFF412420; 176 177 178 179pass 180