1 1.1 christos # Intel(r) Wireless MMX(tm) technology testcase for WADD 2 1.1 christos # mach: xscale 3 1.1 christos # as: -mcpu=xscale+iwmmxt 4 1.1 christos 5 1.1 christos .include "testutils.inc" 6 1.1 christos 7 1.1 christos start 8 1.1 christos 9 1.1 christos .global wadd 10 1.1 christos wadd: 11 1.1 christos # Enable access to CoProcessors 0 & 1 before 12 1.1 christos # we attempt these instructions. 13 1.1 christos 14 1.1 christos mvi_h_gr r1, 3 15 1.1 christos mcr p15, 0, r1, cr15, cr1, 0 16 1.1 christos 17 1.1 christos # Test UnSaturated Byte Addition 18 1.1 christos 19 1.1 christos mvi_h_gr r0, 0x12345678 20 1.1 christos mvi_h_gr r1, 0x9abcde00 21 1.1 christos mvi_h_gr r2, 0x11111111 22 1.1 christos mvi_h_gr r3, 0x11111111 23 1.1 christos mvi_h_gr r4, 0 24 1.1 christos mvi_h_gr r5, 0 25 1.1 christos 26 1.1 christos tmcrr wr0, r0, r1 27 1.1 christos tmcrr wr1, r2, r3 28 1.1 christos tmcrr wr2, r4, r5 29 1.1 christos 30 1.1 christos waddb wr2, wr0, wr1 31 1.1 christos 32 1.1 christos tmrrc r0, r1, wr0 33 1.1 christos tmrrc r2, r3, wr1 34 1.1 christos tmrrc r4, r5, wr2 35 1.1 christos 36 1.1 christos test_h_gr r0, 0x12345678 37 1.1 christos test_h_gr r1, 0x9abcde00 38 1.1 christos test_h_gr r2, 0x11111111 39 1.1 christos test_h_gr r3, 0x11111111 40 1.1 christos test_h_gr r4, 0x23456789 41 1.1 christos test_h_gr r5, 0xabcdef11 42 1.1 christos 43 1.1 christos # Test Unsigned Saturated Byte Addition 44 1.1 christos 45 1.1 christos mvi_h_gr r0, 0x12345678 46 1.1 christos mvi_h_gr r1, 0x9abcde00 47 1.1 christos mvi_h_gr r2, 0x11111111 48 1.1 christos mvi_h_gr r3, 0x11111111 49 1.1 christos mvi_h_gr r4, 0 50 1.1 christos mvi_h_gr r5, 0 51 1.1 christos 52 1.1 christos tmcrr wr0, r0, r1 53 1.1 christos tmcrr wr1, r2, r3 54 1.1 christos tmcrr wr2, r4, r5 55 1.1 christos 56 1.1 christos waddbus wr2, wr0, wr1 57 1.1 christos 58 1.1 christos tmrrc r0, r1, wr0 59 1.1 christos tmrrc r2, r3, wr1 60 1.1 christos tmrrc r4, r5, wr2 61 1.1 christos 62 1.1 christos test_h_gr r0, 0x12345678 63 1.1 christos test_h_gr r1, 0x9abcde00 64 1.1 christos test_h_gr r2, 0x11111111 65 1.1 christos test_h_gr r3, 0x11111111 66 1.1 christos test_h_gr r4, 0x23456789 67 1.1 christos test_h_gr r5, 0xabcdef11 68 1.1 christos 69 1.1 christos # Test Signed Saturated Byte Addition 70 1.1 christos 71 1.1 christos mvi_h_gr r0, 0x12345678 72 1.1 christos mvi_h_gr r1, 0x9abcde00 73 1.1 christos mvi_h_gr r2, 0x11111111 74 1.1 christos mvi_h_gr r3, 0x11111111 75 1.1 christos mvi_h_gr r4, 0 76 1.1 christos mvi_h_gr r5, 0 77 1.1 christos 78 1.1 christos tmcrr wr0, r0, r1 79 1.1 christos tmcrr wr1, r2, r3 80 1.1 christos tmcrr wr2, r4, r5 81 1.1 christos 82 1.1 christos waddbss wr2, wr0, wr1 83 1.1 christos 84 1.1 christos tmrrc r0, r1, wr0 85 1.1 christos tmrrc r2, r3, wr1 86 1.1 christos tmrrc r4, r5, wr2 87 1.1 christos 88 1.1 christos test_h_gr r0, 0x12345678 89 1.1 christos test_h_gr r1, 0x9abcde00 90 1.1 christos test_h_gr r2, 0x11111111 91 1.1 christos test_h_gr r3, 0x11111111 92 1.1 christos test_h_gr r4, 0x2345677f 93 1.1 christos test_h_gr r5, 0xabcdef11 94 1.1 christos 95 1.1 christos # Test UnSaturated Halfword Addition 96 1.1 christos 97 1.1 christos mvi_h_gr r0, 0x12345678 98 1.1 christos mvi_h_gr r1, 0x9abcde00 99 1.1 christos mvi_h_gr r2, 0x11111111 100 1.1 christos mvi_h_gr r3, 0x11111111 101 1.1 christos mvi_h_gr r4, 0 102 1.1 christos mvi_h_gr r5, 0 103 1.1 christos 104 1.1 christos tmcrr wr0, r0, r1 105 1.1 christos tmcrr wr1, r2, r3 106 1.1 christos tmcrr wr2, r4, r5 107 1.1 christos 108 1.1 christos waddh wr2, wr0, wr1 109 1.1 christos 110 1.1 christos tmrrc r0, r1, wr0 111 1.1 christos tmrrc r2, r3, wr1 112 1.1 christos tmrrc r4, r5, wr2 113 1.1 christos 114 1.1 christos test_h_gr r0, 0x12345678 115 1.1 christos test_h_gr r1, 0x9abcde00 116 1.1 christos test_h_gr r2, 0x11111111 117 1.1 christos test_h_gr r3, 0x11111111 118 1.1 christos test_h_gr r4, 0x23456789 119 1.1 christos test_h_gr r5, 0xabcdef11 120 1.1 christos 121 1.1 christos # Test Unsigned Saturated Halfword Addition 122 1.1 christos 123 1.1 christos mvi_h_gr r0, 0x12345678 124 1.1 christos mvi_h_gr r1, 0x9abcde00 125 1.1 christos mvi_h_gr r2, 0x11111111 126 1.1 christos mvi_h_gr r3, 0x11111111 127 1.1 christos mvi_h_gr r4, 0 128 1.1 christos mvi_h_gr r5, 0 129 1.1 christos 130 1.1 christos tmcrr wr0, r0, r1 131 1.1 christos tmcrr wr1, r2, r3 132 1.1 christos tmcrr wr2, r4, r5 133 1.1 christos 134 1.1 christos waddhus wr2, wr0, wr1 135 1.1 christos 136 1.1 christos tmrrc r0, r1, wr0 137 1.1 christos tmrrc r2, r3, wr1 138 1.1 christos tmrrc r4, r5, wr2 139 1.1 christos 140 1.1 christos test_h_gr r0, 0x12345678 141 1.1 christos test_h_gr r1, 0x9abcde00 142 1.1 christos test_h_gr r2, 0x11111111 143 1.1 christos test_h_gr r3, 0x11111111 144 1.1 christos test_h_gr r4, 0x23456789 145 1.1 christos test_h_gr r5, 0xabcdef11 146 1.1 christos 147 1.1 christos # Test Signed Saturated Halfword Addition 148 1.1 christos 149 1.1 christos mvi_h_gr r0, 0x12345678 150 1.1 christos mvi_h_gr r1, 0x9abcde00 151 1.1 christos mvi_h_gr r2, 0x11111111 152 1.1 christos mvi_h_gr r3, 0x11111111 153 1.1 christos mvi_h_gr r4, 0 154 1.1 christos mvi_h_gr r5, 0 155 1.1 christos 156 1.1 christos tmcrr wr0, r0, r1 157 1.1 christos tmcrr wr1, r2, r3 158 1.1 christos tmcrr wr2, r4, r5 159 1.1 christos 160 1.1 christos waddhss wr2, wr0, wr1 161 1.1 christos 162 1.1 christos tmrrc r0, r1, wr0 163 1.1 christos tmrrc r2, r3, wr1 164 1.1 christos tmrrc r4, r5, wr2 165 1.1 christos 166 1.1 christos test_h_gr r0, 0x12345678 167 1.1 christos test_h_gr r1, 0x9abcde00 168 1.1 christos test_h_gr r2, 0x11111111 169 1.1 christos test_h_gr r3, 0x11111111 170 1.1 christos test_h_gr r4, 0x23456789 171 1.1 christos test_h_gr r5, 0xabcdef11 172 1.1 christos 173 1.1 christos # Test UnSaturated Word Addition 174 1.1 christos 175 1.1 christos mvi_h_gr r0, 0x12345678 176 1.1 christos mvi_h_gr r1, 0x9abcde00 177 1.1 christos mvi_h_gr r2, 0x11111111 178 1.1 christos mvi_h_gr r3, 0x11111111 179 1.1 christos mvi_h_gr r4, 0 180 1.1 christos mvi_h_gr r5, 0 181 1.1 christos 182 1.1 christos tmcrr wr0, r0, r1 183 1.1 christos tmcrr wr1, r2, r3 184 1.1 christos tmcrr wr2, r4, r5 185 1.1 christos 186 1.1 christos waddw wr2, wr0, wr1 187 1.1 christos 188 1.1 christos tmrrc r0, r1, wr0 189 1.1 christos tmrrc r2, r3, wr1 190 1.1 christos tmrrc r4, r5, wr2 191 1.1 christos 192 1.1 christos test_h_gr r0, 0x12345678 193 1.1 christos test_h_gr r1, 0x9abcde00 194 1.1 christos test_h_gr r2, 0x11111111 195 1.1 christos test_h_gr r3, 0x11111111 196 1.1 christos test_h_gr r4, 0x23456789 197 1.1 christos test_h_gr r5, 0xabcdef11 198 1.1 christos 199 1.1 christos # Test Unsigned Saturated Word Addition 200 1.1 christos 201 1.1 christos mvi_h_gr r0, 0x12345678 202 1.1 christos mvi_h_gr r1, 0x9abcde00 203 1.1 christos mvi_h_gr r2, 0x11111111 204 1.1 christos mvi_h_gr r3, 0x11111111 205 1.1 christos mvi_h_gr r4, 0 206 1.1 christos mvi_h_gr r5, 0 207 1.1 christos 208 1.1 christos tmcrr wr0, r0, r1 209 1.1 christos tmcrr wr1, r2, r3 210 1.1 christos tmcrr wr2, r4, r5 211 1.1 christos 212 1.1 christos waddwus wr2, wr0, wr1 213 1.1 christos 214 1.1 christos tmrrc r0, r1, wr0 215 1.1 christos tmrrc r2, r3, wr1 216 1.1 christos tmrrc r4, r5, wr2 217 1.1 christos 218 1.1 christos test_h_gr r0, 0x12345678 219 1.1 christos test_h_gr r1, 0x9abcde00 220 1.1 christos test_h_gr r2, 0x11111111 221 1.1 christos test_h_gr r3, 0x11111111 222 1.1 christos test_h_gr r4, 0x23456789 223 1.1 christos test_h_gr r5, 0xabcdef11 224 1.1 christos 225 1.1 christos # Test Signed Saturated Word Addition 226 1.1 christos 227 1.1 christos mvi_h_gr r0, 0x12345678 228 1.1 christos mvi_h_gr r1, 0x9abcde00 229 1.1 christos mvi_h_gr r2, 0x11111111 230 1.1 christos mvi_h_gr r3, 0x11111111 231 1.1 christos mvi_h_gr r4, 0 232 1.1 christos mvi_h_gr r5, 0 233 1.1 christos 234 1.1 christos tmcrr wr0, r0, r1 235 1.1 christos tmcrr wr1, r2, r3 236 1.1 christos tmcrr wr2, r4, r5 237 1.1 christos 238 1.1 christos waddwss wr2, wr0, wr1 239 1.1 christos 240 1.1 christos tmrrc r0, r1, wr0 241 1.1 christos tmrrc r2, r3, wr1 242 1.1 christos tmrrc r4, r5, wr2 243 1.1 christos 244 1.1 christos test_h_gr r0, 0x12345678 245 1.1 christos test_h_gr r1, 0x9abcde00 246 1.1 christos test_h_gr r2, 0x11111111 247 1.1 christos test_h_gr r3, 0x11111111 248 1.1 christos test_h_gr r4, 0x23456789 249 1.1 christos test_h_gr r5, 0xabcdef11 250 1.1 christos 251 1.1 christos pass 252