1//Original:/testcases/core/c_multi_issue_dsp_ld_ld/c_multi_issue_dsp_ld_ld.dsp 2// Spec Reference: dsp32mac and 2 loads 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 INIT_R_REGS 0; 9 10 imm32 r0, 0x00000000; 11 A0 = 0; 12 A1 = 0; 13 ASTAT = r0; 14 15 loadsym I0, DATA0 16 loadsym I1, DATA1 17 18 loadsym P1, DATA0 19 loadsym P2, DATA1 20 21// test the default (signed fraction : left ) 22 imm32 r0, 0x12345678; 23 imm32 r1, 0x33456789; 24 imm32 r2, 0x5556789a; 25 imm32 r3, 0x75678912; 26 imm32 r4, 0x86789123; 27 imm32 r5, 0xa7891234; 28 imm32 r6, 0xc1234567; 29 imm32 r7, 0xf1234567; 30 A1 = R0.L * R1.L, A0 = R0.L * R1.L || R0 = [ I0 ++ ] || R1 = [ I1 ++ ]; 31 A1 += R2.L * R3.L, A0 += R2.L * R3.H || R2 = [ I0 ++ ] || R3 = [ I1 ++ ]; 32 A1 += R6.H * R7.H, A0 += R6.H * R7.L || R4 = [ P1 ++ ] || R5 = [ I1 ++ ]; 33 R6 = A0.w; 34 R7 = A1.w; 35 CHECKREG r0, 0x000A0000; 36 CHECKREG r1, 0x00F00100; 37 CHECKREG r2, 0x000B0001; 38 CHECKREG r3, 0x00E00101; 39 CHECKREG r4, 0x000A0000; 40 CHECKREG r5, 0x00D00102; 41 CHECKREG r6, 0x92793486; 42 CHECKREG r7, 0xDD2F9BAA; 43 44 imm32 r0, 0x12245618; 45 imm32 r1, 0x23256719; 46 imm32 r2, 0x3426781a; 47 imm32 r3, 0x45278912; 48 imm32 r4, 0x56289113; 49 imm32 r5, 0x67291214; 50 imm32 r6, 0xa1234517; 51 imm32 r7, 0xc1234517; 52 A1 = R0.L * R1.L, A0 = R0.L * R1.L || R4 = [ P1 ++ ] || R6 = [ I0 ++ ]; 53 A1 -= R2.L * R3.L, A0 += R2.L * R3.H || R2 = [ P2 ++ ] || R3 = [ I1 ++ ]; 54 A1 += R4.H * R6.H, A0 -= R4.H * R6.L || [ P2 ++ ] = R5 || R7 = [ I1 ++ ]; 55 R6 = A0.w; 56 R7 = A1.w; 57 CHECKREG r0, 0x12245618; 58 CHECKREG r1, 0x23256719; 59 CHECKREG r2, 0x00F00100; 60 CHECKREG r3, 0x00C00103; 61 CHECKREG r4, 0x000B0001; 62 CHECKREG r5, 0x67291214; 63 CHECKREG r6, 0x863ABC70; 64 CHECKREG r7, 0xB4EF6A10; 65 66 imm32 r0, 0x15245648; 67 imm32 r1, 0x25256749; 68 imm32 r2, 0x3526784a; 69 imm32 r3, 0x45278942; 70 imm32 r4, 0x55389143; 71 imm32 r5, 0x65391244; 72 imm32 r6, 0xa5334547; 73 imm32 r7, 0xc5334547; 74 A1 += R0.H * R1.H, A0 += R0.L * R1.L || R2 = [ P1 ++ ] || R0 = [ I1 -- ]; 75 A1 += R2.H * R3.H, A0 += R2.L * R3.H || NOP || R4 = [ I0 ++ ]; 76 A1 = R4.H * R5.L, A0 += R4.H * R5.L || R3 = [ P2 -- ] || R5 = [ I0 -- ]; 77 R6 = A0.w; 78 R7 = A1.w; 79 CHECKREG r0, 0x00A00105; 80 CHECKREG r1, 0x25256749; 81 CHECKREG r2, 0x000C0002; 82 CHECKREG r3, 0x00D00102; 83 CHECKREG r4, 0x000D0003; 84 CHECKREG r5, 0x000E0004; 85 CHECKREG r6, 0xCBDCD104; 86 CHECKREG r7, 0x0001DAE8; 87 88 imm32 r1, 0x02450789; 89 imm32 r2, 0x0356089a; 90 imm32 r3, 0x04670912; 91 imm32 r4, 0x05780123; 92 imm32 r5, 0x06890234; 93 imm32 r6, 0x07230567; 94 imm32 r7, 0x00230567; 95 R2 = R0 +|+ R7, R4 = R0 -|- R7 (ASR) || R1 = [ I1 ++ ] || R0 = [ I0 -- ]; 96 R1 = R6 +|+ R3, R5 = R6 -|- R3 || R6 = [ P1 ] || R3 = [ I0 -- ]; 97 R5 = R4 +|+ R2, R0 = R4 -|- R2 (CO) || NOP || R4 = [ I0 ++ ]; 98 CHECKREG r0, 0xFA99FFDD; 99 CHECKREG r1, 0x0B8A0E79; 100 CHECKREG r2, 0x00610336; 101 CHECKREG r3, 0x000C0002; 102 CHECKREG r4, 0x000B0001; 103 CHECKREG r5, 0x009F0105; 104 CHECKREG r6, 0x000D0003; 105 CHECKREG r7, 0x00230567; 106 107 pass 108 109 .data 110DATA0: 111 .dd 0x000a0000 112 .dd 0x000b0001 113 .dd 0x000c0002 114 .dd 0x000d0003 115 .dd 0x000e0004 116 .dd 0x000f0005 117 .dd 0x00100006 118 .dd 0x00200007 119 .dd 0x00300008 120 .dd 0x00400009 121 .dd 0x0050000a 122 .dd 0x0060000b 123 .dd 0x0070000c 124 .dd 0x0080000d 125 .dd 0x0090000e 126 .dd 0x0100000f 127 .dd 0x02000010 128 .dd 0x03000011 129 .dd 0x04000012 130 .dd 0x05000013 131 .dd 0x06000014 132 .dd 0x001a0000 133 .dd 0x001b0001 134 .dd 0x001c0002 135 .dd 0x001d0003 136 .dd 0x00010004 137 .dd 0x00010005 138 .dd 0x02100006 139 .dd 0x02200007 140 .dd 0x02300008 141 .dd 0x02200009 142 .dd 0x0250000a 143 .dd 0x0260000b 144 .dd 0x0270000c 145 .dd 0x0280000d 146 .dd 0x0290000e 147 .dd 0x2100000f 148 .dd 0x22000010 149 .dd 0x22000011 150 .dd 0x24000012 151 .dd 0x25000013 152 .dd 0x26000014 153 154DATA1: 155 .dd 0x00f00100 156 .dd 0x00e00101 157 .dd 0x00d00102 158 .dd 0x00c00103 159 .dd 0x00b00104 160 .dd 0x00a00105 161 .dd 0x00900106 162 .dd 0x00800107 163 .dd 0x00100108 164 .dd 0x00200109 165 .dd 0x0030010a 166 .dd 0x0040010b 167 .dd 0x0050011c 168 .dd 0x0060010d 169 .dd 0x0070010e 170 .dd 0x0080010f 171 .dd 0x00900110 172 .dd 0x01000111 173 .dd 0x02000112 174 .dd 0x03000113 175 .dd 0x04000114 176 .dd 0x05000115 177 .dd 0x03f00100 178 .dd 0x03e00101 179 .dd 0x03d00102 180 .dd 0x03c00103 181 .dd 0x03b00104 182 .dd 0x03a00105 183 .dd 0x03900106 184 .dd 0x03800107 185 .dd 0x03100108 186 .dd 0x03200109 187 .dd 0x0330010a 188 .dd 0x0330010b 189 .dd 0x0350011c 190 .dd 0x0360010d 191 .dd 0x0370010e 192 .dd 0x0380010f 193 .dd 0x03900110 194 .dd 0x31000111 195 .dd 0x32000112 196 .dd 0x33000113 197 .dd 0x34000114 198