1//Original:/testcases/core/c_dsp32mac_dr_a1_m/c_dsp32mac_dr_a1_m.dsp 2// Spec Reference: dsp32mac dr a1 m 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 9 10 11imm32 r0, 0xab235675; 12imm32 r1, 0xcfba5127; 13imm32 r2, 0x13246705; 14imm32 r3, 0x00060007; 15imm32 r4, 0x90abcd09; 16imm32 r5, 0x10acefdb; 17imm32 r6, 0x000c000d; 18imm32 r7, 0x1246700f; 19 20A1 = A0 = 0; 21 22// The result accumulated in A1 , and stored to a reg half 23imm32 r0, 0x13545abd; 24imm32 r1, 0xadbcfec7; 25imm32 r2, 0xa1245679; 26imm32 r3, 0x00060007; 27imm32 r4, 0xefbc4569; 28imm32 r5, 0x1235000b; 29imm32 r6, 0x000c000d; 30imm32 r7, 0x678e000f; 31R0.H = ( A1 += R1.L * R0.L ), A0 = R1.L * R0.L; 32R1 = A1.w; 33R2.H = ( A1 = R2.L * R3.H ), A0 = R2.H * R3.L; 34R3 = A1.w; 35R4.H = ( A1 = R4.H * R5.L ), A0 += R4.H * R5.H; 36R5 = A1.w; 37R6.H = ( A1 += R6.H * R7.H ), A0 += R6.L * R7.H; 38R7 = A1.w; 39CHECKREG r0, 0xFF225ABD; 40CHECKREG r1, 0xFF221DD6; 41CHECKREG r2, 0x00045679; 42CHECKREG r3, 0x00040DAC; 43CHECKREG r4, 0xFFFF4569; 44CHECKREG r5, 0xFFFE9A28; 45CHECKREG r6, 0x0008000D; 46CHECKREG r7, 0x00084F78; 47 48// The result accumulated in A1, and stored to a reg half (MNOP) 49imm32 r0, 0x13545abd; 50imm32 r1, 0xadbcfec7; 51imm32 r2, 0xa1245679; 52imm32 r3, 0x00060007; 53imm32 r4, 0xefbc4569; 54imm32 r5, 0x1235000b; 55imm32 r6, 0x000c000d; 56imm32 r7, 0x678e000f; 57R0.H = ( A1 += R1.L * R0.L ); 58R1 = A1.w; 59R2.H = ( A1 = R2.L * R3.H ); 60R3 = A1.w; 61R4.H = ( A1 += R4.H * R5.L ); 62R5 = A1.w; 63R6.H = ( A1 = R6.H * R7.H ); 64R7 = A1.w; 65CHECKREG r0, 0xFF2A5ABD; 66CHECKREG r1, 0xFF2A6D4E; 67CHECKREG r2, 0x00045679; 68CHECKREG r3, 0x00040DAC; 69CHECKREG r4, 0x00034569; 70CHECKREG r5, 0x0002A7D4; 71CHECKREG r6, 0x000A000D; 72CHECKREG r7, 0x0009B550; 73 74// The result accumulated in A1 , and stored to a reg half (MNOP) 75imm32 r0, 0x13545abd; 76imm32 r1, 0xadbcfec7; 77imm32 r2, 0xa1245679; 78imm32 r3, 0x00060007; 79imm32 r4, 0xefbc4569; 80imm32 r5, 0x1235000b; 81imm32 r6, 0x000c000d; 82imm32 r7, 0x678e000f; 83 R0.H = A1 , A0 += R1.L * R0.L; 84R1 = A1.w; 85 R2.H = A1 , A0 = R2.H * R3.L; 86R3 = A1.w; 87 R4.H = A1 , A0 = R4.H * R5.H; 88R5 = A1.w; 89 R6.H = A1 , A0 += R6.L * R7.H; 90R7 = A1.w; 91CHECKREG r0, 0x000A5ABD; 92CHECKREG r1, 0x0009B550; 93CHECKREG r2, 0x000A5679; 94CHECKREG r3, 0x0009B550; 95CHECKREG r4, 0x000A4569; 96CHECKREG r5, 0x0009B550; 97CHECKREG r6, 0x000A000D; 98CHECKREG r7, 0x0009B550; 99 100// The result accumulated in A1 , and stored to a reg half 101imm32 r0, 0x13545abd; 102imm32 r1, 0xadbcfec7; 103imm32 r2, 0xa1245679; 104imm32 r3, 0x00060007; 105imm32 r4, 0xefbc4569; 106imm32 r5, 0x1235000b; 107imm32 r6, 0x000c000d; 108imm32 r7, 0x678e000f; 109R4.H = ( A1 += R1.L * R0.L ) (M), A0 = R1.L * R0.L; 110R5 = A1.w; 111R6.H = ( A1 = R2.L * R3.H ) (M), A0 += R2.H * R3.L; 112R7 = A1.w; 113R0.H = ( A1 = R4.H * R5.L ) (M), A0 = R4.H * R5.H; 114R1 = A1.w; 115R2.H = ( A1 = R6.H * R7.H ) (M), A0 += R6.L * R7.H; 116R3 = A1.w; 117CHECKREG r0, 0xFFB35ABD; 118CHECKREG r1, 0xFFB294B9; 119CHECKREG r2, 0x00005679; 120CHECKREG r3, 0x00000004; 121CHECKREG r4, 0xFF9B4569; 122CHECKREG r5, 0xFF9AC43B; 123CHECKREG r6, 0x0002000D; 124 125CHECKREG r7, 0x000206D6; 126 127// The result accumulated in A1 MM=0, and stored to a reg half (MNOP) 128imm32 r0, 0x83545abd; 129imm32 r1, 0xa8bcfec7; 130imm32 r2, 0xc1845679; 131imm32 r3, 0x1c080007; 132imm32 r4, 0xe1cc8569; 133imm32 r5, 0x121c080b; 134imm32 r6, 0x7001008d; 135imm32 r7, 0x678e1008; 136R6.H = ( A1 += R1.L * R0.L ) (M); 137R7 = A1.w; 138R2.H = ( A1 = R2.L * R3.H ) (M); 139R3 = A1.w; 140R0.H = ( A1 += R4.H * R5.L ) (M); 141R1 = A1.w; 142R4.H = ( A1 = R6.H * R7.H ) (M); 143R5 = A1.w; 144CHECKREG r0, 0x08855ABD; 145CHECKREG r1, 0x0885038C; 146CHECKREG r2, 0x09785679; 147CHECKREG r3, 0x0977EFC8; 148CHECKREG r4, 0xFF918569; 149CHECKREG r5, 0xFF913021; 150CHECKREG r6, 0xFF91008D; 151CHECKREG r7, 0xFF910EEF; 152 153imm32 r0, 0x03545abd; 154imm32 r1, 0xa0bcfec7; 155imm32 r2, 0xa1045679; 156imm32 r3, 0x00000007; 157imm32 r4, 0xefbc0569; 158imm32 r5, 0x1235100b; 159imm32 r6, 0x000c020d; 160imm32 r7, 0x678e003f; 161R4.H = ( A1 -= R1.L * R0.L ) (M), A0 -= R1.L * R0.L; 162R5 = A1.w; 163R6.H = ( A1 -= R2.L * R3.H ) (M), A0 += R2.H * R3.L; 164R7 = A1.w; 165R0.H = ( A1 += R4.H * R5.L ) (M), A0 -= R4.H * R5.H; 166R1 = A1.w; 167R2.H = ( A1 -= R6.H * R7.H ) (M), A0 -= R6.L * R7.H; 168R3 = A1.w; 169CHECKREG r0, 0x00005ABD; 170CHECKREG r1, 0x00002136; 171CHECKREG r2, 0x00005679; 172CHECKREG r3, 0x00002136; 173CHECKREG r4, 0x00000569; 174CHECKREG r5, 0x00002136; 175CHECKREG r6, 0x0000020D; 176CHECKREG r7, 0x00002136; 177 178// The result accumulated in A1 MM=0, and stored to a reg half (MNOP) 179imm32 r0, 0x83545abd; 180imm32 r1, 0xa8bcfec7; 181imm32 r2, 0xc1845679; 182imm32 r3, 0x1c080007; 183imm32 r4, 0xe1cc8569; 184imm32 r5, 0x121c080b; 185imm32 r6, 0x7001008d; 186imm32 r7, 0x678e1008; 187R6.H = ( A1 -= R1.L * R0.L ) (M); 188R7 = A1.w; 189R2.H = ( A1 -= R2.L * R3.H ) (M); 190R3 = A1.w; 191R0.H = ( A1 -= R4.H * R5.L ) (M); 192R1 = A1.w; 193R4.H = ( A1 -= R6.H * R7.H ) (M); 194R5 = A1.w; 195CHECKREG r0, 0xF7EA5ABD; 196CHECKREG r1, 0xF7EA0EBF; 197CHECKREG r2, 0xF6F75679; 198CHECKREG r3, 0xF6F72283; 199CHECKREG r4, 0xF7EA8569; 200CHECKREG r5, 0xF7E9DE9E; 201CHECKREG r6, 0x006F008D; 202CHECKREG r7, 0x006F124B; 203 204 205 206pass 207