1//Original:/testcases/core/c_dsp32mac_dr_a1_u/c_dsp32mac_dr_a1_u.dsp 2// Spec Reference: dsp32mac dr_a1 u (unsigned fraction & unsigned int) 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 9 10 11A1 = A0 = 0; 12 13// The result accumulated in A1 , and stored to a reg half 14imm32 r0, 0xa3545abd; 15imm32 r1, 0xbabcfec7; 16imm32 r2, 0xc1a48679; 17imm32 r3, 0xd00a9007; 18imm32 r4, 0xefbca569; 19imm32 r5, 0xcd355a0b; 20imm32 r6, 0xe00c80ad; 21imm32 r7, 0xf78e900a; 22R0.H = ( A1 = R6.L * R7.L ), A0 += R6.L * R7.L (FU); 23R1 = A1.w; 24R2.H = ( A1 = R3.L * R4.H ), A0 = R3.H * R4.L (FU); 25R3 = A1.w; 26R4.H = ( A1 += R2.H * R5.L ), A0 = R2.H * R5.H (FU); 27R5 = A1.w; 28R6.H = ( A1 += R0.H * R1.H ), A0 += R0.L * R1.H (FU); 29R7 = A1.w; 30CHECKREG r0, 0x48665ABD; 31CHECKREG r1, 0x486656C2; 32CHECKREG r2, 0x86E08679; 33CHECKREG r3, 0x86E04E24; 34CHECKREG r4, 0xB651A569; 35CHECKREG r5, 0xB650D9C4; 36CHECKREG r6, 0xCACA80AD; 37CHECKREG r7, 0xCACA6268; 38 39imm32 r0, 0x03545abd; 40imm32 r1, 0x1abcfec7; 41imm32 r2, 0xc2a48679; 42imm32 r3, 0x300a9007; 43imm32 r4, 0x54bca569; 44imm32 r5, 0x6d355a0b; 45imm32 r6, 0x700c80ad; 46imm32 r7, 0x878e900a; 47R0.H = ( A1 -= R6.L * R7.L ), A0 += R6.L * R7.L (FU); 48R1 = A1.w; 49R2.H = ( A1 -= R3.L * R4.H ), A0 = R3.H * R4.L (FU); 50R3 = A1.w; 51R4.H = ( A1 += R2.H * R5.L ), A0 -= R2.H * R5.H (FU); 52R5 = A1.w; 53R6.H = ( A1 -= R0.H * R1.H ), A0 += R0.L * R1.H (FU); 54R7 = A1.w; 55CHECKREG r0, 0x82645ABD; 56CHECKREG r1, 0x82640BA6; 57CHECKREG r2, 0x52B88679; 58CHECKREG r3, 0x52B7FA82; 59CHECKREG r4, 0x6FD0A569; 60CHECKREG r5, 0x6FD0386A; 61CHECKREG r6, 0x2D6780AD; 62CHECKREG r7, 0x2D66815A; 63 64// The result accumulated in A1, and stored to a reg half (MNOP) 65imm32 r0, 0xb3548abd; 66imm32 r1, 0x7bbcfec7; 67imm32 r2, 0xa1b45679; 68imm32 r3, 0xb00b9007; 69imm32 r4, 0xcfbcb569; 70imm32 r5, 0xd235c00b; 71imm32 r6, 0xe00cabbd; 72imm32 r7, 0x678e700b; 73R0.H = ( A1 = R1.L * R0.L ) (FU); 74R1 = A1.w; 75R2.H = ( A1 = R2.L * R6.H ) (FU); 76R3 = A1.w; 77R4.H = ( A1 += R3.H * R5.L ) (FU); 78R5 = A1.w; 79R6.H = ( A1 = R4.H * R7.H ) (FU); 80R7 = A1.w; 81CHECKREG r0, 0x8A138ABD; 82CHECKREG r1, 0x8A135EEB; 83CHECKREG r2, 0x4BAE5679; 84CHECKREG r3, 0x4BADEDAC; 85CHECKREG r4, 0x8473B569; 86CHECKREG r5, 0x8472EE1B; 87CHECKREG r6, 0x3594ABBD; 88CHECKREG r7, 0x3593BCCA; 89 90// The result accumulated in A1 , and stored to a reg half (MNOP) 91imm32 r0, 0xc354babd; 92imm32 r1, 0x6cbcdec7; 93imm32 r2, 0x71c4e679; 94imm32 r3, 0x800c7007; 95imm32 r4, 0x9fbcc569; 96imm32 r5, 0xa2359c0b; 97imm32 r6, 0xb00c30cd; 98imm32 r7, 0xc78ea00c; 99 R0.H = A1 , A0 = R1.L * R0.L (FU); 100R1 = A1.w; 101 R2.H = A1 , A0 = R2.H * R3.L (FU); 102R3 = A1.w; 103 R4.H = A1 , A0 = R4.H * R5.H (FU); 104R5 = A1.w; 105 R6.H = A1 , A0 = R6.L * R7.H (FU); 106R7 = A1.w; 107CHECKREG r0, 0x3594BABD; 108CHECKREG r1, 0x3593BCCA; 109CHECKREG r2, 0x3594E679; 110CHECKREG r3, 0x3593BCCA; 111CHECKREG r4, 0x3594C569; 112CHECKREG r5, 0x3593BCCA; 113CHECKREG r6, 0x359430CD; 114CHECKREG r7, 0x3593BCCA; 115 116// The result accumulated in A1 , and stored to a reg half 117imm32 r0, 0xd3545abd; 118imm32 r1, 0x5dbcfec7; 119imm32 r2, 0x71d45679; 120imm32 r3, 0x900d0007; 121imm32 r4, 0xafbcd569; 122imm32 r5, 0xd2359d0b; 123imm32 r6, 0xc00ca0dd; 124imm32 r7, 0x678ed00d; 125R0.H = ( A1 = R1.L * R2.L ) (M), A0 += R1.L * R2.L (FU); 126R1 = A1.w; 127R2.H = ( A1 = R3.L * R4.H ) (M), A0 = R3.H * R4.L (FU); 128R3 = A1.w; 129R4.H = ( A1 = R5.H * R6.L ) (M), A0 += R5.H * R6.H (FU); 130R5 = A1.w; 131R6.H = ( A1 += R7.H * R0.H ) (M), A0 += R7.L * R0.H (FU); 132R7 = A1.w; 133CHECKREG r0, 0xFF965ABD; 134CHECKREG r1, 0xFF96460F; 135CHECKREG r2, 0x00055679; 136CHECKREG r3, 0x0004CE24; 137CHECKREG r4, 0xE33AD569; 138CHECKREG r5, 0xE33997C1; 139CHECKREG r6, 0x4A9DA0DD; 140CHECKREG r7, 0x4A9CB6F5; 141 142// The result accumulated in A1 MM=0, and stored to a reg half (MNOP) 143imm32 r0, 0xe3545abd; 144imm32 r1, 0xaebcfec7; 145imm32 r2, 0xc1e45679; 146imm32 r3, 0x1c0e0007; 147imm32 r4, 0xe1cce569; 148imm32 r5, 0x921c0e0b; 149imm32 r6, 0x790190ed; 150imm32 r7, 0x679e900e; 151R0.H = ( A1 = R1.L * R0.L ) (M,FU); 152R1 = A1.w; 153R2.H = ( A1 += R2.L * R3.H ) (M,FU); 154R3 = A1.w; 155R4.H = ( A1 += R4.H * R5.L ) (M,FU); 156R5 = A1.w; 157R6.H = ( A1 = R6.H * R7.H ) (M,FU); 158R7 = A1.w; 159CHECKREG r0, 0xFF915ABD; 160CHECKREG r1, 0xFF910EEB; 161CHECKREG r2, 0x090B5679; 162CHECKREG r3, 0x090B0589; 163CHECKREG r4, 0x0763E569; 164CHECKREG r5, 0x0762E14D; 165CHECKREG r6, 0x30FA90ED; 166CHECKREG r7, 0x30FA159E; 167 168 169 170pass 171