1//Original:/proj/frio/dv/testcases/core/c_dsp32alu_rh_rnd12_p/c_dsp32alu_rh_rnd12_p.dsp 2// Spec Reference: dsp32alu dreg (half) 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 R0 = 0; 9 ASTAT = R0; 10 11 12 imm32 r0, 0x45678911; 13 imm32 r1, 0x2789ab1d; 14 imm32 r2, 0xf4445515; 15 imm32 r3, 0x46667717; 16 imm32 r4, 0xe678891b; 17 imm32 r5, 0x6f89ab1d; 18 imm32 r6, 0x7444d515; 19 imm32 r7, 0x8666b777; 20 R0.H = R0 + R0 (RND12); 21 R1.H = R0 + R1 (RND12); 22 R2.H = R0 + R2 (RND12); 23 R3.H = R0 + R3 (RND12); 24 R4.H = R0 + R4 (RND12); 25 R5.H = R0 + R5 (RND12); 26 R6.H = R0 + R6 (RND12); 27 R7.H = R0 + R7 (RND12); 28 CHECKREG r0, 0x7FFF8911; 29 CHECKREG r1, 0x7fffAB1D; 30 CHECKREG r2, 0x7fff5515; 31 CHECKREG r3, 0x7fff7717; 32 CHECKREG r4, 0x7fff891B; 33 CHECKREG r5, 0x7fffAB1D; 34 CHECKREG r6, 0x7fffD515; 35 CHECKREG r7, 0x6664B777; 36 37 imm32 r0, 0xd5678911; 38 imm32 r1, 0x2789ab1d; 39 imm32 r2, 0xa4445515; 40 imm32 r3, 0x46667717; 41 imm32 r4, 0x5b78891b; 42 imm32 r5, 0x6789ab1d; 43 imm32 r6, 0x74e45515; 44 imm32 r7, 0x86a6b777; 45 R0.H = R1 + R0 (RND12); 46 R1.H = R1 + R1 (RND12); 47 R2.H = R1 + R2 (RND12); 48 R3.H = R1 + R3 (RND12); 49 R4.H = R1 + R4 (RND12); 50 R5.H = R1 + R5 (RND12); 51 R6.H = R1 + R6 (RND12); 52 R7.H = R1 + R7 (RND12); 53 CHECKREG r0, 0xcf138911; 54 CHECKREG r1, 0x7FFFAB1D; 55 CHECKREG r2, 0x7fff5515; 56 CHECKREG r3, 0x7fff7717; 57 CHECKREG r4, 0x7fff891B; 58 CHECKREG r5, 0x7fffAB1D; 59 CHECKREG r6, 0x7fff5515; 60 CHECKREG r7, 0x6A66B777; 61 62 imm32 r0, 0xa5678911; 63 imm32 r1, 0x2789ab1d; 64 imm32 r2, 0xb4445515; 65 imm32 r3, 0x46667717; 66 imm32 r4, 0xd678891b; 67 imm32 r5, 0x6e89ab1d; 68 imm32 r6, 0x74445515; 69 imm32 r7, 0x86967777; 70 R0.H = R2 + R0 (RND12); 71 R1.H = R2 + R1 (RND12); 72 R2.H = R2 + R2 (RND12); 73 R3.H = R2 + R3 (RND12); 74 R4.H = R2 + R4 (RND12); 75 R5.H = R2 + R5 (RND12); 76 R6.H = R2 + R6 (RND12); 77 R7.H = R2 + R7 (RND12); 78 CHECKREG r4, 0x8000891B; 79 CHECKREG r5, 0x8000AB1D; 80 CHECKREG r6, 0x80005515; 81 CHECKREG r7, 0x80007777; 82 CHECKREG r4, 0x8000891B; 83 CHECKREG r5, 0x8000AB1D; 84 CHECKREG r6, 0x80005515; 85 CHECKREG r7, 0x80007777; 86 87 imm32 r0, 0x35678911; 88 imm32 r1, 0x2789ab1d; 89 imm32 r2, 0xd4445515; 90 imm32 r3, 0x46667717; 91 imm32 r4, 0x5678891b; 92 imm32 r5, 0xeab9ab1d; 93 imm32 r6, 0x744e5515; 94 imm32 r7, 0x866e777f; 95 R0.H = R3 + R0 (RND12); 96 R1.H = R3 + R1 (RND12); 97 R2.H = R3 + R2 (RND12); 98 R3.H = R3 + R3 (RND12); 99 R4.H = R3 + R4 (RND12); 100 R5.H = R3 + R5 (RND12); 101 R6.H = R3 + R6 (RND12); 102 R7.H = R3 + R7 (RND12); 103 CHECKREG r0, 0x7FFF8911; 104 CHECKREG r1, 0x7FFFAB1D; 105 CHECKREG r2, 0x7FFF5515; 106 CHECKREG r3, 0x7FFF7717; 107 CHECKREG r4, 0x7fff891B; 108 CHECKREG r5, 0x7fffAB1D; 109 CHECKREG r6, 0x7fff5515; 110 CHECKREG r7, 0x66df777F; 111 112 imm32 r0, 0xe5678911; 113 imm32 r1, 0x2789ab1d; 114 imm32 r2, 0x34e45515; 115 imm32 r3, 0xd6667717; 116 imm32 r4, 0x5675891b; 117 imm32 r5, 0x6789ab1d; 118 imm32 r6, 0xa4465515; 119 imm32 r7, 0x8b66e777; 120 R0.H = R4 + R0 (RND12); 121 R1.H = R4 + R1 (RND12); 122 R2.H = R4 + R2 (RND12); 123 R3.H = R4 + R3 (RND12); 124 R4.H = R4 + R4 (RND12); 125 R5.H = R4 + R5 (RND12); 126 R6.H = R4 + R6 (RND12); 127 R7.H = R4 + R7 (RND12); 128 CHECKREG r0, 0x7FFF8911; 129 CHECKREG r1, 0x7FFFAB1D; 130 CHECKREG r2, 0x7FFF5515; 131 CHECKREG r3, 0x7FFF7717; 132 CHECKREG r4, 0x7FFF891B; 133 CHECKREG r5, 0x7fffAB1D; 134 CHECKREG r6, 0x7fff5515; 135 CHECKREG r7, 0x7fffE777; 136 137 imm32 r0, 0x35678111; 138 imm32 r1, 0x2789a21d; 139 imm32 r2, 0x3e445535; 140 imm32 r3, 0x46667757; 141 imm32 r4, 0xe6f8891b; 142 imm32 r5, 0x6789db7d; 143 imm32 r6, 0xf44a5595; 144 imm32 r7, 0x866b7770; 145 R0.H = R5 + R0 (RND12); 146 R1.H = R5 + R1 (RND12); 147 R2.H = R5 + R2 (RND12); 148 R3.H = R5 + R3 (RND12); 149 R4.H = R5 + R4 (RND12); 150 R5.H = R5 + R5 (RND12); 151 R6.H = R5 + R6 (RND12); 152 R7.H = R5 + R7 (RND12); 153 CHECKREG r0, 0x7FFF8111; 154 CHECKREG r1, 0x7FFFA21D; 155 CHECKREG r2, 0x7fff5535; 156 CHECKREG r3, 0x7FFF7757; 157 CHECKREG r4, 0x7FFF891B; 158 CHECKREG r5, 0x7FFFDB7D; 159 CHECKREG r6, 0x7fff5595; 160 CHECKREG r7, 0x66b57770; 161 162 imm32 r0, 0xb5678911; 163 imm32 r1, 0xc789ab1d; 164 imm32 r2, 0x3ab45515; 165 imm32 r3, 0x466b7717; 166 imm32 r4, 0x4678e91b; 167 imm32 r5, 0x6789af1d; 168 imm32 r6, 0xf4445515; 169 imm32 r7, 0x86e6f777; 170 R0.H = R6 + R0 (RND12); 171 R1.H = R6 + R1 (RND12); 172 R2.H = R6 + R2 (RND12); 173 R3.H = R6 + R3 (RND12); 174 R4.H = R6 + R4 (RND12); 175 R5.H = R6 + R5 (RND12); 176 R6.H = R6 + R6 (RND12); 177 R7.H = R6 + R7 (RND12); 178 CHECKREG r0, 0x80008911; 179 CHECKREG r1, 0x8000AB1D; 180 CHECKREG r2, 0x7fff5515; 181 CHECKREG r3, 0x7FFF7717; 182 CHECKREG r4, 0x7FFFE91B; 183 CHECKREG r5, 0x7FFFAF1D; 184 CHECKREG r6, 0x80005515; 185 CHECKREG r7, 0x8000F777; 186 187 imm32 r0, 0xab678021; 188 imm32 r1, 0x2c89a33d; 189 imm32 r2, 0x34d45575; 190 imm32 r3, 0x466e7797; 191 imm32 r4, 0x567f89fb; 192 imm32 r5, 0x6789abdd; 193 imm32 r6, 0x744e5515; 194 imm32 r7, 0x8666ab87; 195 R0.H = R7 + R0 (RND12); 196 R1.H = R7 + R1 (RND12); 197 R2.H = R7 + R2 (RND12); 198 R3.H = R7 + R3 (RND12); 199 R4.H = R7 + R4 (RND12); 200 R5.H = R7 + R5 (RND12); 201 R6.H = R7 + R6 (RND12); 202 R7.H = R7 + R7 (RND12); 203 CHECKREG r0, 0x80008021; 204 CHECKREG r1, 0x8000A33D; 205 CHECKREG r2, 0x80005575; 206 CHECKREG r3, 0x80007797; 207 CHECKREG r4, 0x800089FB; 208 CHECKREG r5, 0x8000ABDD; 209 CHECKREG r6, 0xab505515; 210 CHECKREG r7, 0x8000AB87; 211 212 imm32 r0, 0x15678901; 213 imm32 r1, 0x2789ab2d; 214 imm32 r2, 0x34445535; 215 imm32 r3, 0x46667747; 216 imm32 r4, 0x56788915; 217 imm32 r5, 0x6789ab6d; 218 imm32 r6, 0x74445518; 219 imm32 r7, 0x86667797; 220 R6.H = R2 + R3 (RND12); 221 R1.H = R4 + R5 (RND12); 222 R5.H = R7 + R2 (RND12); 223 R3.H = R0 + R0 (RND12); 224 R0.H = R3 + R4 (RND12); 225 R2.H = R5 + R7 (RND12); 226 R7.H = R6 + R7 (RND12); 227 R4.H = R1 + R6 (RND12); 228 CHECKREG r0, 0x7fff8901; 229 CHECKREG r1, 0x7FFFAB2D; 230 CHECKREG r2, 0x80005535; 231 CHECKREG r3, 0x7FFF7747; 232 CHECKREG r4, 0x7fff8915; 233 CHECKREG r5, 0x8000AB6D; 234 CHECKREG r6, 0x7FFF5518; 235 CHECKREG r7, 0x665D7797; 236 237 imm32 r0, 0x35678911; 238 imm32 r1, 0x2489ab1d; 239 imm32 r2, 0x34545565; 240 imm32 r3, 0x4d6677b7; 241 imm32 r4, 0x567889db; 242 imm32 r5, 0x67beab1d; 243 imm32 r6, 0x7b445595; 244 imm32 r7, 0x86d6e707; 245 R3.H = R4 + R0 (RND12); 246 R1.H = R6 + R3 (RND12); 247 R4.H = R3 + R2 (RND12); 248 R6.H = R7 + R1 (RND12); 249 R2.H = R5 + R4 (RND12); 250 R7.H = R2 + R7 (RND12); 251 R0.H = R1 + R6 (RND12); 252 R5.H = R0 + R5 (RND12); 253 CHECKREG r0, 0x7fff8911; 254 CHECKREG r1, 0x7fffAB1D; 255 CHECKREG r2, 0x7FFF5565; 256 CHECKREG r3, 0x7FFF77B7; 257 CHECKREG r4, 0x7fff89DB; 258 CHECKREG r5, 0x7FFFAB1D; 259 CHECKREG r6, 0x6d695595; 260 CHECKREG r7, 0x6D64E707; 261 262 pass 263