test/compiler/6340864/TestLongVect.java

Tue, 08 Aug 2017 15:57:29 +0800

author
aoqi
date
Tue, 08 Aug 2017 15:57:29 +0800
changeset 6876
710a3c8b516e
parent 4204
b2c669fd8114
parent 0
f90c822e73f8
permissions
-rw-r--r--

merge

aoqi@0 1 /*
aoqi@0 2 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
aoqi@0 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
aoqi@0 4 *
aoqi@0 5 * This code is free software; you can redistribute it and/or modify it
aoqi@0 6 * under the terms of the GNU General Public License version 2 only, as
aoqi@0 7 * published by the Free Software Foundation.
aoqi@0 8 *
aoqi@0 9 * This code is distributed in the hope that it will be useful, but WITHOUT
aoqi@0 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
aoqi@0 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
aoqi@0 12 * version 2 for more details (a copy is included in the LICENSE file that
aoqi@0 13 * accompanied this code).
aoqi@0 14 *
aoqi@0 15 * You should have received a copy of the GNU General Public License version
aoqi@0 16 * 2 along with this work; if not, write to the Free Software Foundation,
aoqi@0 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
aoqi@0 18 *
aoqi@0 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
aoqi@0 20 * or visit www.oracle.com if you need additional information or have any
aoqi@0 21 * questions.
aoqi@0 22 *
aoqi@0 23 */
aoqi@0 24
aoqi@0 25 /**
aoqi@0 26 * @test
aoqi@0 27 * @bug 6340864
aoqi@0 28 * @summary Implement vectorization optimizations in hotspot-server
aoqi@0 29 *
aoqi@0 30 * @run main/othervm/timeout=400 -Xbatch -Xmx64m TestLongVect
aoqi@0 31 */
aoqi@0 32
aoqi@0 33 public class TestLongVect {
aoqi@0 34 private static final int ARRLEN = 997;
aoqi@0 35 private static final int ITERS = 11000;
aoqi@0 36 private static final long ADD_INIT = Long.MAX_VALUE-500;
aoqi@0 37 private static final long BIT_MASK = 0xEC80F731EC80F731L;
aoqi@0 38 private static final int VALUE = 31;
aoqi@0 39 private static final int SHIFT = 64;
aoqi@0 40
aoqi@0 41 public static void main(String args[]) {
aoqi@0 42 System.out.println("Testing Long vectors");
aoqi@0 43 int errn = test();
aoqi@0 44 if (errn > 0) {
aoqi@0 45 System.err.println("FAILED: " + errn + " errors");
aoqi@0 46 System.exit(97);
aoqi@0 47 }
aoqi@0 48 System.out.println("PASSED");
aoqi@0 49 }
aoqi@0 50
aoqi@0 51 static int test() {
aoqi@0 52 long[] a0 = new long[ARRLEN];
aoqi@0 53 long[] a1 = new long[ARRLEN];
aoqi@0 54 long[] a2 = new long[ARRLEN];
aoqi@0 55 long[] a3 = new long[ARRLEN];
aoqi@0 56 long[] a4 = new long[ARRLEN];
aoqi@0 57 // Initialize
aoqi@0 58 long gold_sum = 0;
aoqi@0 59 for (int i=0; i<ARRLEN; i++) {
aoqi@0 60 long val = (long)(ADD_INIT+i);
aoqi@0 61 gold_sum += val;
aoqi@0 62 a1[i] = val;
aoqi@0 63 a2[i] = (long)VALUE;
aoqi@0 64 a3[i] = (long)-VALUE;
aoqi@0 65 a4[i] = (long)BIT_MASK;
aoqi@0 66 }
aoqi@0 67 System.out.println("Warmup");
aoqi@0 68 for (int i=0; i<ITERS; i++) {
aoqi@0 69 test_sum(a1);
aoqi@0 70 test_addc(a0, a1);
aoqi@0 71 test_addv(a0, a1, (long)VALUE);
aoqi@0 72 test_adda(a0, a1, a2);
aoqi@0 73 test_subc(a0, a1);
aoqi@0 74 test_subv(a0, a1, (long)VALUE);
aoqi@0 75 test_suba(a0, a1, a2);
aoqi@0 76
aoqi@0 77 test_mulc(a0, a1);
aoqi@0 78 test_mulv(a0, a1, (long)VALUE);
aoqi@0 79 test_mula(a0, a1, a2);
aoqi@0 80 test_divc(a0, a1);
aoqi@0 81 test_divv(a0, a1, (long)VALUE);
aoqi@0 82 test_diva(a0, a1, a2);
aoqi@0 83 test_mulc_n(a0, a1);
aoqi@0 84 test_mulv(a0, a1, (long)-VALUE);
aoqi@0 85 test_mula(a0, a1, a3);
aoqi@0 86 test_divc_n(a0, a1);
aoqi@0 87 test_divv(a0, a1, (long)-VALUE);
aoqi@0 88 test_diva(a0, a1, a3);
aoqi@0 89
aoqi@0 90 test_andc(a0, a1);
aoqi@0 91 test_andv(a0, a1, (long)BIT_MASK);
aoqi@0 92 test_anda(a0, a1, a4);
aoqi@0 93 test_orc(a0, a1);
aoqi@0 94 test_orv(a0, a1, (long)BIT_MASK);
aoqi@0 95 test_ora(a0, a1, a4);
aoqi@0 96 test_xorc(a0, a1);
aoqi@0 97 test_xorv(a0, a1, (long)BIT_MASK);
aoqi@0 98 test_xora(a0, a1, a4);
aoqi@0 99
aoqi@0 100 test_sllc(a0, a1);
aoqi@0 101 test_sllv(a0, a1, VALUE);
aoqi@0 102 test_srlc(a0, a1);
aoqi@0 103 test_srlv(a0, a1, VALUE);
aoqi@0 104 test_srac(a0, a1);
aoqi@0 105 test_srav(a0, a1, VALUE);
aoqi@0 106
aoqi@0 107 test_sllc_n(a0, a1);
aoqi@0 108 test_sllv(a0, a1, -VALUE);
aoqi@0 109 test_srlc_n(a0, a1);
aoqi@0 110 test_srlv(a0, a1, -VALUE);
aoqi@0 111 test_srac_n(a0, a1);
aoqi@0 112 test_srav(a0, a1, -VALUE);
aoqi@0 113
aoqi@0 114 test_sllc_o(a0, a1);
aoqi@0 115 test_sllv(a0, a1, SHIFT);
aoqi@0 116 test_srlc_o(a0, a1);
aoqi@0 117 test_srlv(a0, a1, SHIFT);
aoqi@0 118 test_srac_o(a0, a1);
aoqi@0 119 test_srav(a0, a1, SHIFT);
aoqi@0 120
aoqi@0 121 test_sllc_on(a0, a1);
aoqi@0 122 test_sllv(a0, a1, -SHIFT);
aoqi@0 123 test_srlc_on(a0, a1);
aoqi@0 124 test_srlv(a0, a1, -SHIFT);
aoqi@0 125 test_srac_on(a0, a1);
aoqi@0 126 test_srav(a0, a1, -SHIFT);
aoqi@0 127
aoqi@0 128 test_sllc_add(a0, a1);
aoqi@0 129 test_sllv_add(a0, a1, ADD_INIT);
aoqi@0 130 test_srlc_add(a0, a1);
aoqi@0 131 test_srlv_add(a0, a1, ADD_INIT);
aoqi@0 132 test_srac_add(a0, a1);
aoqi@0 133 test_srav_add(a0, a1, ADD_INIT);
aoqi@0 134
aoqi@0 135 test_sllc_and(a0, a1);
aoqi@0 136 test_sllv_and(a0, a1, BIT_MASK);
aoqi@0 137 test_srlc_and(a0, a1);
aoqi@0 138 test_srlv_and(a0, a1, BIT_MASK);
aoqi@0 139 test_srac_and(a0, a1);
aoqi@0 140 test_srav_and(a0, a1, BIT_MASK);
aoqi@0 141 }
aoqi@0 142 // Test and verify results
aoqi@0 143 System.out.println("Verification");
aoqi@0 144 int errn = 0;
aoqi@0 145 {
aoqi@0 146 long sum = test_sum(a1);
aoqi@0 147 if (sum != gold_sum) {
aoqi@0 148 System.err.println("test_sum: " + sum + " != " + gold_sum);
aoqi@0 149 errn++;
aoqi@0 150 }
aoqi@0 151
aoqi@0 152 test_addc(a0, a1);
aoqi@0 153 for (int i=0; i<ARRLEN; i++) {
aoqi@0 154 errn += verify("test_addc: ", i, a0[i], (long)((long)(ADD_INIT+i)+VALUE));
aoqi@0 155 }
aoqi@0 156 test_addv(a0, a1, (long)VALUE);
aoqi@0 157 for (int i=0; i<ARRLEN; i++) {
aoqi@0 158 errn += verify("test_addv: ", i, a0[i], (long)((long)(ADD_INIT+i)+VALUE));
aoqi@0 159 }
aoqi@0 160 test_adda(a0, a1, a2);
aoqi@0 161 for (int i=0; i<ARRLEN; i++) {
aoqi@0 162 errn += verify("test_adda: ", i, a0[i], (long)((long)(ADD_INIT+i)+VALUE));
aoqi@0 163 }
aoqi@0 164
aoqi@0 165 test_subc(a0, a1);
aoqi@0 166 for (int i=0; i<ARRLEN; i++) {
aoqi@0 167 errn += verify("test_subc: ", i, a0[i], (long)((long)(ADD_INIT+i)-VALUE));
aoqi@0 168 }
aoqi@0 169 test_subv(a0, a1, (long)VALUE);
aoqi@0 170 for (int i=0; i<ARRLEN; i++) {
aoqi@0 171 errn += verify("test_subv: ", i, a0[i], (long)((long)(ADD_INIT+i)-VALUE));
aoqi@0 172 }
aoqi@0 173 test_suba(a0, a1, a2);
aoqi@0 174 for (int i=0; i<ARRLEN; i++) {
aoqi@0 175 errn += verify("test_suba: ", i, a0[i], (long)((long)(ADD_INIT+i)-VALUE));
aoqi@0 176 }
aoqi@0 177
aoqi@0 178 test_mulc(a0, a1);
aoqi@0 179 for (int i=0; i<ARRLEN; i++) {
aoqi@0 180 errn += verify("test_mulc: ", i, a0[i], (long)((long)(ADD_INIT+i)*VALUE));
aoqi@0 181 }
aoqi@0 182 test_mulv(a0, a1, (long)VALUE);
aoqi@0 183 for (int i=0; i<ARRLEN; i++) {
aoqi@0 184 errn += verify("test_mulv: ", i, a0[i], (long)((long)(ADD_INIT+i)*VALUE));
aoqi@0 185 }
aoqi@0 186 test_mula(a0, a1, a2);
aoqi@0 187 for (int i=0; i<ARRLEN; i++) {
aoqi@0 188 errn += verify("test_mula: ", i, a0[i], (long)((long)(ADD_INIT+i)*VALUE));
aoqi@0 189 }
aoqi@0 190
aoqi@0 191 test_divc(a0, a1);
aoqi@0 192 for (int i=0; i<ARRLEN; i++) {
aoqi@0 193 errn += verify("test_divc: ", i, a0[i], (long)((long)(ADD_INIT+i)/VALUE));
aoqi@0 194 }
aoqi@0 195 test_divv(a0, a1, (long)VALUE);
aoqi@0 196 for (int i=0; i<ARRLEN; i++) {
aoqi@0 197 errn += verify("test_divv: ", i, a0[i], (long)((long)(ADD_INIT+i)/VALUE));
aoqi@0 198 }
aoqi@0 199 test_diva(a0, a1, a2);
aoqi@0 200 for (int i=0; i<ARRLEN; i++) {
aoqi@0 201 errn += verify("test_diva: ", i, a0[i], (long)((long)(ADD_INIT+i)/VALUE));
aoqi@0 202 }
aoqi@0 203
aoqi@0 204 test_mulc_n(a0, a1);
aoqi@0 205 for (int i=0; i<ARRLEN; i++) {
aoqi@0 206 errn += verify("test_mulc_n: ", i, a0[i], (long)((long)(ADD_INIT+i)*(-VALUE)));
aoqi@0 207 }
aoqi@0 208 test_mulv(a0, a1, (long)-VALUE);
aoqi@0 209 for (int i=0; i<ARRLEN; i++) {
aoqi@0 210 errn += verify("test_mulv_n: ", i, a0[i], (long)((long)(ADD_INIT+i)*(-VALUE)));
aoqi@0 211 }
aoqi@0 212 test_mula(a0, a1, a3);
aoqi@0 213 for (int i=0; i<ARRLEN; i++) {
aoqi@0 214 errn += verify("test_mula_n: ", i, a0[i], (long)((long)(ADD_INIT+i)*(-VALUE)));
aoqi@0 215 }
aoqi@0 216
aoqi@0 217 test_divc_n(a0, a1);
aoqi@0 218 for (int i=0; i<ARRLEN; i++) {
aoqi@0 219 errn += verify("test_divc_n: ", i, a0[i], (long)((long)(ADD_INIT+i)/(-VALUE)));
aoqi@0 220 }
aoqi@0 221 test_divv(a0, a1, (long)-VALUE);
aoqi@0 222 for (int i=0; i<ARRLEN; i++) {
aoqi@0 223 errn += verify("test_divv_n: ", i, a0[i], (long)((long)(ADD_INIT+i)/(-VALUE)));
aoqi@0 224 }
aoqi@0 225 test_diva(a0, a1, a3);
aoqi@0 226 for (int i=0; i<ARRLEN; i++) {
aoqi@0 227 errn += verify("test_diva_n: ", i, a0[i], (long)((long)(ADD_INIT+i)/(-VALUE)));
aoqi@0 228 }
aoqi@0 229
aoqi@0 230 test_andc(a0, a1);
aoqi@0 231 for (int i=0; i<ARRLEN; i++) {
aoqi@0 232 errn += verify("test_andc: ", i, a0[i], (long)((long)(ADD_INIT+i)&BIT_MASK));
aoqi@0 233 }
aoqi@0 234 test_andv(a0, a1, (long)BIT_MASK);
aoqi@0 235 for (int i=0; i<ARRLEN; i++) {
aoqi@0 236 errn += verify("test_andv: ", i, a0[i], (long)((long)(ADD_INIT+i)&BIT_MASK));
aoqi@0 237 }
aoqi@0 238 test_anda(a0, a1, a4);
aoqi@0 239 for (int i=0; i<ARRLEN; i++) {
aoqi@0 240 errn += verify("test_anda: ", i, a0[i], (long)((long)(ADD_INIT+i)&BIT_MASK));
aoqi@0 241 }
aoqi@0 242
aoqi@0 243 test_orc(a0, a1);
aoqi@0 244 for (int i=0; i<ARRLEN; i++) {
aoqi@0 245 errn += verify("test_orc: ", i, a0[i], (long)((long)(ADD_INIT+i)|BIT_MASK));
aoqi@0 246 }
aoqi@0 247 test_orv(a0, a1, (long)BIT_MASK);
aoqi@0 248 for (int i=0; i<ARRLEN; i++) {
aoqi@0 249 errn += verify("test_orv: ", i, a0[i], (long)((long)(ADD_INIT+i)|BIT_MASK));
aoqi@0 250 }
aoqi@0 251 test_ora(a0, a1, a4);
aoqi@0 252 for (int i=0; i<ARRLEN; i++) {
aoqi@0 253 errn += verify("test_ora: ", i, a0[i], (long)((long)(ADD_INIT+i)|BIT_MASK));
aoqi@0 254 }
aoqi@0 255
aoqi@0 256 test_xorc(a0, a1);
aoqi@0 257 for (int i=0; i<ARRLEN; i++) {
aoqi@0 258 errn += verify("test_xorc: ", i, a0[i], (long)((long)(ADD_INIT+i)^BIT_MASK));
aoqi@0 259 }
aoqi@0 260 test_xorv(a0, a1, (long)BIT_MASK);
aoqi@0 261 for (int i=0; i<ARRLEN; i++) {
aoqi@0 262 errn += verify("test_xorv: ", i, a0[i], (long)((long)(ADD_INIT+i)^BIT_MASK));
aoqi@0 263 }
aoqi@0 264 test_xora(a0, a1, a4);
aoqi@0 265 for (int i=0; i<ARRLEN; i++) {
aoqi@0 266 errn += verify("test_xora: ", i, a0[i], (long)((long)(ADD_INIT+i)^BIT_MASK));
aoqi@0 267 }
aoqi@0 268
aoqi@0 269 test_sllc(a0, a1);
aoqi@0 270 for (int i=0; i<ARRLEN; i++) {
aoqi@0 271 errn += verify("test_sllc: ", i, a0[i], (long)((long)(ADD_INIT+i)<<VALUE));
aoqi@0 272 }
aoqi@0 273 test_sllv(a0, a1, VALUE);
aoqi@0 274 for (int i=0; i<ARRLEN; i++) {
aoqi@0 275 errn += verify("test_sllv: ", i, a0[i], (long)((long)(ADD_INIT+i)<<VALUE));
aoqi@0 276 }
aoqi@0 277
aoqi@0 278 test_srlc(a0, a1);
aoqi@0 279 for (int i=0; i<ARRLEN; i++) {
aoqi@0 280 errn += verify("test_srlc: ", i, a0[i], (long)((long)(ADD_INIT+i)>>>VALUE));
aoqi@0 281 }
aoqi@0 282 test_srlv(a0, a1, VALUE);
aoqi@0 283 for (int i=0; i<ARRLEN; i++) {
aoqi@0 284 errn += verify("test_srlv: ", i, a0[i], (long)((long)(ADD_INIT+i)>>>VALUE));
aoqi@0 285 }
aoqi@0 286
aoqi@0 287 test_srac(a0, a1);
aoqi@0 288 for (int i=0; i<ARRLEN; i++) {
aoqi@0 289 errn += verify("test_srac: ", i, a0[i], (long)((long)(ADD_INIT+i)>>VALUE));
aoqi@0 290 }
aoqi@0 291 test_srav(a0, a1, VALUE);
aoqi@0 292 for (int i=0; i<ARRLEN; i++) {
aoqi@0 293 errn += verify("test_srav: ", i, a0[i], (long)((long)(ADD_INIT+i)>>VALUE));
aoqi@0 294 }
aoqi@0 295
aoqi@0 296 test_sllc_n(a0, a1);
aoqi@0 297 for (int i=0; i<ARRLEN; i++) {
aoqi@0 298 errn += verify("test_sllc_n: ", i, a0[i], (long)((long)(ADD_INIT+i)<<(-VALUE)));
aoqi@0 299 }
aoqi@0 300 test_sllv(a0, a1, -VALUE);
aoqi@0 301 for (int i=0; i<ARRLEN; i++) {
aoqi@0 302 errn += verify("test_sllv_n: ", i, a0[i], (long)((long)(ADD_INIT+i)<<(-VALUE)));
aoqi@0 303 }
aoqi@0 304
aoqi@0 305 test_srlc_n(a0, a1);
aoqi@0 306 for (int i=0; i<ARRLEN; i++) {
aoqi@0 307 errn += verify("test_srlc_n: ", i, a0[i], (long)((long)(ADD_INIT+i)>>>(-VALUE)));
aoqi@0 308 }
aoqi@0 309 test_srlv(a0, a1, -VALUE);
aoqi@0 310 for (int i=0; i<ARRLEN; i++) {
aoqi@0 311 errn += verify("test_srlv_n: ", i, a0[i], (long)((long)(ADD_INIT+i)>>>(-VALUE)));
aoqi@0 312 }
aoqi@0 313
aoqi@0 314 test_srac_n(a0, a1);
aoqi@0 315 for (int i=0; i<ARRLEN; i++) {
aoqi@0 316 errn += verify("test_srac_n: ", i, a0[i], (long)((long)(ADD_INIT+i)>>(-VALUE)));
aoqi@0 317 }
aoqi@0 318 test_srav(a0, a1, -VALUE);
aoqi@0 319 for (int i=0; i<ARRLEN; i++) {
aoqi@0 320 errn += verify("test_srav_n: ", i, a0[i], (long)((long)(ADD_INIT+i)>>(-VALUE)));
aoqi@0 321 }
aoqi@0 322
aoqi@0 323 test_sllc_o(a0, a1);
aoqi@0 324 for (int i=0; i<ARRLEN; i++) {
aoqi@0 325 errn += verify("test_sllc_o: ", i, a0[i], (long)((long)(ADD_INIT+i)<<SHIFT));
aoqi@0 326 }
aoqi@0 327 test_sllv(a0, a1, SHIFT);
aoqi@0 328 for (int i=0; i<ARRLEN; i++) {
aoqi@0 329 errn += verify("test_sllv_o: ", i, a0[i], (long)((long)(ADD_INIT+i)<<SHIFT));
aoqi@0 330 }
aoqi@0 331
aoqi@0 332 test_srlc_o(a0, a1);
aoqi@0 333 for (int i=0; i<ARRLEN; i++) {
aoqi@0 334 errn += verify("test_srlc_o: ", i, a0[i], (long)((long)(ADD_INIT+i)>>>SHIFT));
aoqi@0 335 }
aoqi@0 336 test_srlv(a0, a1, SHIFT);
aoqi@0 337 for (int i=0; i<ARRLEN; i++) {
aoqi@0 338 errn += verify("test_srlv_o: ", i, a0[i], (long)((long)(ADD_INIT+i)>>>SHIFT));
aoqi@0 339 }
aoqi@0 340
aoqi@0 341 test_srac_o(a0, a1);
aoqi@0 342 for (int i=0; i<ARRLEN; i++) {
aoqi@0 343 errn += verify("test_srac_o: ", i, a0[i], (long)((long)(ADD_INIT+i)>>SHIFT));
aoqi@0 344 }
aoqi@0 345 test_srav(a0, a1, SHIFT);
aoqi@0 346 for (int i=0; i<ARRLEN; i++) {
aoqi@0 347 errn += verify("test_srav_o: ", i, a0[i], (long)((long)(ADD_INIT+i)>>SHIFT));
aoqi@0 348 }
aoqi@0 349
aoqi@0 350 test_sllc_on(a0, a1);
aoqi@0 351 for (int i=0; i<ARRLEN; i++) {
aoqi@0 352 errn += verify("test_sllc_on: ", i, a0[i], (long)((long)(ADD_INIT+i)<<(-SHIFT)));
aoqi@0 353 }
aoqi@0 354 test_sllv(a0, a1, -SHIFT);
aoqi@0 355 for (int i=0; i<ARRLEN; i++) {
aoqi@0 356 errn += verify("test_sllv_on: ", i, a0[i], (long)((long)(ADD_INIT+i)<<(-SHIFT)));
aoqi@0 357 }
aoqi@0 358
aoqi@0 359 test_srlc_on(a0, a1);
aoqi@0 360 for (int i=0; i<ARRLEN; i++) {
aoqi@0 361 errn += verify("test_srlc_on: ", i, a0[i], (long)((long)(ADD_INIT+i)>>>(-SHIFT)));
aoqi@0 362 }
aoqi@0 363 test_srlv(a0, a1, -SHIFT);
aoqi@0 364 for (int i=0; i<ARRLEN; i++) {
aoqi@0 365 errn += verify("test_srlv_on: ", i, a0[i], (long)((long)(ADD_INIT+i)>>>(-SHIFT)));
aoqi@0 366 }
aoqi@0 367
aoqi@0 368 test_srac_on(a0, a1);
aoqi@0 369 for (int i=0; i<ARRLEN; i++) {
aoqi@0 370 errn += verify("test_srac_on: ", i, a0[i], (long)((long)(ADD_INIT+i)>>(-SHIFT)));
aoqi@0 371 }
aoqi@0 372 test_srav(a0, a1, -SHIFT);
aoqi@0 373 for (int i=0; i<ARRLEN; i++) {
aoqi@0 374 errn += verify("test_srav_on: ", i, a0[i], (long)((long)(ADD_INIT+i)>>(-SHIFT)));
aoqi@0 375 }
aoqi@0 376
aoqi@0 377 test_sllc_add(a0, a1);
aoqi@0 378 for (int i=0; i<ARRLEN; i++) {
aoqi@0 379 errn += verify("test_sllc_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)<<VALUE));
aoqi@0 380 }
aoqi@0 381 test_sllv_add(a0, a1, ADD_INIT);
aoqi@0 382 for (int i=0; i<ARRLEN; i++) {
aoqi@0 383 errn += verify("test_sllv_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)<<VALUE));
aoqi@0 384 }
aoqi@0 385
aoqi@0 386 test_srlc_add(a0, a1);
aoqi@0 387 for (int i=0; i<ARRLEN; i++) {
aoqi@0 388 errn += verify("test_srlc_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)>>>VALUE));
aoqi@0 389 }
aoqi@0 390 test_srlv_add(a0, a1, ADD_INIT);
aoqi@0 391 for (int i=0; i<ARRLEN; i++) {
aoqi@0 392 errn += verify("test_srlv_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)>>>VALUE));
aoqi@0 393 }
aoqi@0 394
aoqi@0 395 test_srac_add(a0, a1);
aoqi@0 396 for (int i=0; i<ARRLEN; i++) {
aoqi@0 397 errn += verify("test_srac_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)>>VALUE));
aoqi@0 398 }
aoqi@0 399 test_srav_add(a0, a1, ADD_INIT);
aoqi@0 400 for (int i=0; i<ARRLEN; i++) {
aoqi@0 401 errn += verify("test_srav_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)>>VALUE));
aoqi@0 402 }
aoqi@0 403
aoqi@0 404 test_sllc_and(a0, a1);
aoqi@0 405 for (int i=0; i<ARRLEN; i++) {
aoqi@0 406 errn += verify("test_sllc_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)<<VALUE));
aoqi@0 407 }
aoqi@0 408 test_sllv_and(a0, a1, BIT_MASK);
aoqi@0 409 for (int i=0; i<ARRLEN; i++) {
aoqi@0 410 errn += verify("test_sllv_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)<<VALUE));
aoqi@0 411 }
aoqi@0 412
aoqi@0 413 test_srlc_and(a0, a1);
aoqi@0 414 for (int i=0; i<ARRLEN; i++) {
aoqi@0 415 errn += verify("test_srlc_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)>>>VALUE));
aoqi@0 416 }
aoqi@0 417 test_srlv_and(a0, a1, BIT_MASK);
aoqi@0 418 for (int i=0; i<ARRLEN; i++) {
aoqi@0 419 errn += verify("test_srlv_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)>>>VALUE));
aoqi@0 420 }
aoqi@0 421
aoqi@0 422 test_srac_and(a0, a1);
aoqi@0 423 for (int i=0; i<ARRLEN; i++) {
aoqi@0 424 errn += verify("test_srac_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)>>VALUE));
aoqi@0 425 }
aoqi@0 426 test_srav_and(a0, a1, BIT_MASK);
aoqi@0 427 for (int i=0; i<ARRLEN; i++) {
aoqi@0 428 errn += verify("test_srav_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)>>VALUE));
aoqi@0 429 }
aoqi@0 430
aoqi@0 431 }
aoqi@0 432
aoqi@0 433 if (errn > 0)
aoqi@0 434 return errn;
aoqi@0 435
aoqi@0 436 System.out.println("Time");
aoqi@0 437 long start, end;
aoqi@0 438
aoqi@0 439 start = System.currentTimeMillis();
aoqi@0 440 for (int i=0; i<ITERS; i++) {
aoqi@0 441 test_sum(a1);
aoqi@0 442 }
aoqi@0 443 end = System.currentTimeMillis();
aoqi@0 444 System.out.println("test_sum: " + (end - start));
aoqi@0 445
aoqi@0 446 start = System.currentTimeMillis();
aoqi@0 447 for (int i=0; i<ITERS; i++) {
aoqi@0 448 test_addc(a0, a1);
aoqi@0 449 }
aoqi@0 450 end = System.currentTimeMillis();
aoqi@0 451 System.out.println("test_addc: " + (end - start));
aoqi@0 452 start = System.currentTimeMillis();
aoqi@0 453 for (int i=0; i<ITERS; i++) {
aoqi@0 454 test_addv(a0, a1, (long)VALUE);
aoqi@0 455 }
aoqi@0 456 end = System.currentTimeMillis();
aoqi@0 457 System.out.println("test_addv: " + (end - start));
aoqi@0 458 start = System.currentTimeMillis();
aoqi@0 459 for (int i=0; i<ITERS; i++) {
aoqi@0 460 test_adda(a0, a1, a2);
aoqi@0 461 }
aoqi@0 462 end = System.currentTimeMillis();
aoqi@0 463 System.out.println("test_adda: " + (end - start));
aoqi@0 464
aoqi@0 465 start = System.currentTimeMillis();
aoqi@0 466 for (int i=0; i<ITERS; i++) {
aoqi@0 467 test_subc(a0, a1);
aoqi@0 468 }
aoqi@0 469 end = System.currentTimeMillis();
aoqi@0 470 System.out.println("test_subc: " + (end - start));
aoqi@0 471 start = System.currentTimeMillis();
aoqi@0 472 for (int i=0; i<ITERS; i++) {
aoqi@0 473 test_subv(a0, a1, (long)VALUE);
aoqi@0 474 }
aoqi@0 475 end = System.currentTimeMillis();
aoqi@0 476 System.out.println("test_subv: " + (end - start));
aoqi@0 477 start = System.currentTimeMillis();
aoqi@0 478 for (int i=0; i<ITERS; i++) {
aoqi@0 479 test_suba(a0, a1, a2);
aoqi@0 480 }
aoqi@0 481 end = System.currentTimeMillis();
aoqi@0 482 System.out.println("test_suba: " + (end - start));
aoqi@0 483
aoqi@0 484 start = System.currentTimeMillis();
aoqi@0 485 for (int i=0; i<ITERS; i++) {
aoqi@0 486 test_mulc(a0, a1);
aoqi@0 487 }
aoqi@0 488 end = System.currentTimeMillis();
aoqi@0 489 System.out.println("test_mulc: " + (end - start));
aoqi@0 490 start = System.currentTimeMillis();
aoqi@0 491 for (int i=0; i<ITERS; i++) {
aoqi@0 492 test_mulv(a0, a1, (long)VALUE);
aoqi@0 493 }
aoqi@0 494 end = System.currentTimeMillis();
aoqi@0 495 System.out.println("test_mulv: " + (end - start));
aoqi@0 496 start = System.currentTimeMillis();
aoqi@0 497 for (int i=0; i<ITERS; i++) {
aoqi@0 498 test_mula(a0, a1, a2);
aoqi@0 499 }
aoqi@0 500 end = System.currentTimeMillis();
aoqi@0 501 System.out.println("test_mula: " + (end - start));
aoqi@0 502
aoqi@0 503 start = System.currentTimeMillis();
aoqi@0 504 for (int i=0; i<ITERS; i++) {
aoqi@0 505 test_divc(a0, a1);
aoqi@0 506 }
aoqi@0 507 end = System.currentTimeMillis();
aoqi@0 508 System.out.println("test_divc: " + (end - start));
aoqi@0 509 start = System.currentTimeMillis();
aoqi@0 510 for (int i=0; i<ITERS; i++) {
aoqi@0 511 test_divv(a0, a1, (long)VALUE);
aoqi@0 512 }
aoqi@0 513 end = System.currentTimeMillis();
aoqi@0 514 System.out.println("test_divv: " + (end - start));
aoqi@0 515 start = System.currentTimeMillis();
aoqi@0 516 for (int i=0; i<ITERS; i++) {
aoqi@0 517 test_diva(a0, a1, a2);
aoqi@0 518 }
aoqi@0 519 end = System.currentTimeMillis();
aoqi@0 520 System.out.println("test_diva: " + (end - start));
aoqi@0 521
aoqi@0 522 start = System.currentTimeMillis();
aoqi@0 523 for (int i=0; i<ITERS; i++) {
aoqi@0 524 test_mulc_n(a0, a1);
aoqi@0 525 }
aoqi@0 526 end = System.currentTimeMillis();
aoqi@0 527 System.out.println("test_mulc_n: " + (end - start));
aoqi@0 528 start = System.currentTimeMillis();
aoqi@0 529 for (int i=0; i<ITERS; i++) {
aoqi@0 530 test_mulv(a0, a1, (long)-VALUE);
aoqi@0 531 }
aoqi@0 532 end = System.currentTimeMillis();
aoqi@0 533 System.out.println("test_mulv_n: " + (end - start));
aoqi@0 534 start = System.currentTimeMillis();
aoqi@0 535 for (int i=0; i<ITERS; i++) {
aoqi@0 536 test_mula(a0, a1, a3);
aoqi@0 537 }
aoqi@0 538 end = System.currentTimeMillis();
aoqi@0 539 System.out.println("test_mula_n: " + (end - start));
aoqi@0 540
aoqi@0 541 start = System.currentTimeMillis();
aoqi@0 542 for (int i=0; i<ITERS; i++) {
aoqi@0 543 test_divc_n(a0, a1);
aoqi@0 544 }
aoqi@0 545 end = System.currentTimeMillis();
aoqi@0 546 System.out.println("test_divc_n: " + (end - start));
aoqi@0 547 start = System.currentTimeMillis();
aoqi@0 548 for (int i=0; i<ITERS; i++) {
aoqi@0 549 test_divv(a0, a1, (long)-VALUE);
aoqi@0 550 }
aoqi@0 551 end = System.currentTimeMillis();
aoqi@0 552 System.out.println("test_divv_n: " + (end - start));
aoqi@0 553 start = System.currentTimeMillis();
aoqi@0 554 for (int i=0; i<ITERS; i++) {
aoqi@0 555 test_diva(a0, a1, a3);
aoqi@0 556 }
aoqi@0 557 end = System.currentTimeMillis();
aoqi@0 558 System.out.println("test_diva_n: " + (end - start));
aoqi@0 559
aoqi@0 560 start = System.currentTimeMillis();
aoqi@0 561 for (int i=0; i<ITERS; i++) {
aoqi@0 562 test_andc(a0, a1);
aoqi@0 563 }
aoqi@0 564 end = System.currentTimeMillis();
aoqi@0 565 System.out.println("test_andc: " + (end - start));
aoqi@0 566 start = System.currentTimeMillis();
aoqi@0 567 for (int i=0; i<ITERS; i++) {
aoqi@0 568 test_andv(a0, a1, (long)BIT_MASK);
aoqi@0 569 }
aoqi@0 570 end = System.currentTimeMillis();
aoqi@0 571 System.out.println("test_andv: " + (end - start));
aoqi@0 572 start = System.currentTimeMillis();
aoqi@0 573 for (int i=0; i<ITERS; i++) {
aoqi@0 574 test_anda(a0, a1, a4);
aoqi@0 575 }
aoqi@0 576 end = System.currentTimeMillis();
aoqi@0 577 System.out.println("test_anda: " + (end - start));
aoqi@0 578
aoqi@0 579 start = System.currentTimeMillis();
aoqi@0 580 for (int i=0; i<ITERS; i++) {
aoqi@0 581 test_orc(a0, a1);
aoqi@0 582 }
aoqi@0 583 end = System.currentTimeMillis();
aoqi@0 584 System.out.println("test_orc: " + (end - start));
aoqi@0 585 start = System.currentTimeMillis();
aoqi@0 586 for (int i=0; i<ITERS; i++) {
aoqi@0 587 test_orv(a0, a1, (long)BIT_MASK);
aoqi@0 588 }
aoqi@0 589 end = System.currentTimeMillis();
aoqi@0 590 System.out.println("test_orv: " + (end - start));
aoqi@0 591 start = System.currentTimeMillis();
aoqi@0 592 for (int i=0; i<ITERS; i++) {
aoqi@0 593 test_ora(a0, a1, a4);
aoqi@0 594 }
aoqi@0 595 end = System.currentTimeMillis();
aoqi@0 596 System.out.println("test_ora: " + (end - start));
aoqi@0 597
aoqi@0 598 start = System.currentTimeMillis();
aoqi@0 599 for (int i=0; i<ITERS; i++) {
aoqi@0 600 test_xorc(a0, a1);
aoqi@0 601 }
aoqi@0 602 end = System.currentTimeMillis();
aoqi@0 603 System.out.println("test_xorc: " + (end - start));
aoqi@0 604 start = System.currentTimeMillis();
aoqi@0 605 for (int i=0; i<ITERS; i++) {
aoqi@0 606 test_xorv(a0, a1, (long)BIT_MASK);
aoqi@0 607 }
aoqi@0 608 end = System.currentTimeMillis();
aoqi@0 609 System.out.println("test_xorv: " + (end - start));
aoqi@0 610 start = System.currentTimeMillis();
aoqi@0 611 for (int i=0; i<ITERS; i++) {
aoqi@0 612 test_xora(a0, a1, a4);
aoqi@0 613 }
aoqi@0 614 end = System.currentTimeMillis();
aoqi@0 615 System.out.println("test_xora: " + (end - start));
aoqi@0 616
aoqi@0 617 start = System.currentTimeMillis();
aoqi@0 618 for (int i=0; i<ITERS; i++) {
aoqi@0 619 test_sllc(a0, a1);
aoqi@0 620 }
aoqi@0 621 end = System.currentTimeMillis();
aoqi@0 622 System.out.println("test_sllc: " + (end - start));
aoqi@0 623 start = System.currentTimeMillis();
aoqi@0 624 for (int i=0; i<ITERS; i++) {
aoqi@0 625 test_sllv(a0, a1, VALUE);
aoqi@0 626 }
aoqi@0 627 end = System.currentTimeMillis();
aoqi@0 628 System.out.println("test_sllv: " + (end - start));
aoqi@0 629
aoqi@0 630 start = System.currentTimeMillis();
aoqi@0 631 for (int i=0; i<ITERS; i++) {
aoqi@0 632 test_srlc(a0, a1);
aoqi@0 633 }
aoqi@0 634 end = System.currentTimeMillis();
aoqi@0 635 System.out.println("test_srlc: " + (end - start));
aoqi@0 636 start = System.currentTimeMillis();
aoqi@0 637 for (int i=0; i<ITERS; i++) {
aoqi@0 638 test_srlv(a0, a1, VALUE);
aoqi@0 639 }
aoqi@0 640 end = System.currentTimeMillis();
aoqi@0 641 System.out.println("test_srlv: " + (end - start));
aoqi@0 642
aoqi@0 643 start = System.currentTimeMillis();
aoqi@0 644 for (int i=0; i<ITERS; i++) {
aoqi@0 645 test_srac(a0, a1);
aoqi@0 646 }
aoqi@0 647 end = System.currentTimeMillis();
aoqi@0 648 System.out.println("test_srac: " + (end - start));
aoqi@0 649 start = System.currentTimeMillis();
aoqi@0 650 for (int i=0; i<ITERS; i++) {
aoqi@0 651 test_srav(a0, a1, VALUE);
aoqi@0 652 }
aoqi@0 653 end = System.currentTimeMillis();
aoqi@0 654 System.out.println("test_srav: " + (end - start));
aoqi@0 655
aoqi@0 656 start = System.currentTimeMillis();
aoqi@0 657 for (int i=0; i<ITERS; i++) {
aoqi@0 658 test_sllc_n(a0, a1);
aoqi@0 659 }
aoqi@0 660 end = System.currentTimeMillis();
aoqi@0 661 System.out.println("test_sllc_n: " + (end - start));
aoqi@0 662 start = System.currentTimeMillis();
aoqi@0 663 for (int i=0; i<ITERS; i++) {
aoqi@0 664 test_sllv(a0, a1, -VALUE);
aoqi@0 665 }
aoqi@0 666 end = System.currentTimeMillis();
aoqi@0 667 System.out.println("test_sllv_n: " + (end - start));
aoqi@0 668
aoqi@0 669 start = System.currentTimeMillis();
aoqi@0 670 for (int i=0; i<ITERS; i++) {
aoqi@0 671 test_srlc_n(a0, a1);
aoqi@0 672 }
aoqi@0 673 end = System.currentTimeMillis();
aoqi@0 674 System.out.println("test_srlc_n: " + (end - start));
aoqi@0 675 start = System.currentTimeMillis();
aoqi@0 676 for (int i=0; i<ITERS; i++) {
aoqi@0 677 test_srlv(a0, a1, -VALUE);
aoqi@0 678 }
aoqi@0 679 end = System.currentTimeMillis();
aoqi@0 680 System.out.println("test_srlv_n: " + (end - start));
aoqi@0 681
aoqi@0 682 start = System.currentTimeMillis();
aoqi@0 683 for (int i=0; i<ITERS; i++) {
aoqi@0 684 test_srac_n(a0, a1);
aoqi@0 685 }
aoqi@0 686 end = System.currentTimeMillis();
aoqi@0 687 System.out.println("test_srac_n: " + (end - start));
aoqi@0 688 start = System.currentTimeMillis();
aoqi@0 689 for (int i=0; i<ITERS; i++) {
aoqi@0 690 test_srav(a0, a1, -VALUE);
aoqi@0 691 }
aoqi@0 692 end = System.currentTimeMillis();
aoqi@0 693 System.out.println("test_srav_n: " + (end - start));
aoqi@0 694
aoqi@0 695 start = System.currentTimeMillis();
aoqi@0 696 for (int i=0; i<ITERS; i++) {
aoqi@0 697 test_sllc_o(a0, a1);
aoqi@0 698 }
aoqi@0 699 end = System.currentTimeMillis();
aoqi@0 700 System.out.println("test_sllc_o: " + (end - start));
aoqi@0 701 start = System.currentTimeMillis();
aoqi@0 702 for (int i=0; i<ITERS; i++) {
aoqi@0 703 test_sllv(a0, a1, SHIFT);
aoqi@0 704 }
aoqi@0 705 end = System.currentTimeMillis();
aoqi@0 706 System.out.println("test_sllv_o: " + (end - start));
aoqi@0 707
aoqi@0 708 start = System.currentTimeMillis();
aoqi@0 709 for (int i=0; i<ITERS; i++) {
aoqi@0 710 test_srlc_o(a0, a1);
aoqi@0 711 }
aoqi@0 712 end = System.currentTimeMillis();
aoqi@0 713 System.out.println("test_srlc_o: " + (end - start));
aoqi@0 714 start = System.currentTimeMillis();
aoqi@0 715 for (int i=0; i<ITERS; i++) {
aoqi@0 716 test_srlv(a0, a1, SHIFT);
aoqi@0 717 }
aoqi@0 718 end = System.currentTimeMillis();
aoqi@0 719 System.out.println("test_srlv_o: " + (end - start));
aoqi@0 720
aoqi@0 721 start = System.currentTimeMillis();
aoqi@0 722 for (int i=0; i<ITERS; i++) {
aoqi@0 723 test_srac_o(a0, a1);
aoqi@0 724 }
aoqi@0 725 end = System.currentTimeMillis();
aoqi@0 726 System.out.println("test_srac_o: " + (end - start));
aoqi@0 727 start = System.currentTimeMillis();
aoqi@0 728 for (int i=0; i<ITERS; i++) {
aoqi@0 729 test_srav(a0, a1, SHIFT);
aoqi@0 730 }
aoqi@0 731 end = System.currentTimeMillis();
aoqi@0 732 System.out.println("test_srav_o: " + (end - start));
aoqi@0 733
aoqi@0 734 start = System.currentTimeMillis();
aoqi@0 735 for (int i=0; i<ITERS; i++) {
aoqi@0 736 test_sllc_on(a0, a1);
aoqi@0 737 }
aoqi@0 738 end = System.currentTimeMillis();
aoqi@0 739 System.out.println("test_sllc_on: " + (end - start));
aoqi@0 740 start = System.currentTimeMillis();
aoqi@0 741 for (int i=0; i<ITERS; i++) {
aoqi@0 742 test_sllv(a0, a1, -SHIFT);
aoqi@0 743 }
aoqi@0 744 end = System.currentTimeMillis();
aoqi@0 745 System.out.println("test_sllv_on: " + (end - start));
aoqi@0 746
aoqi@0 747 start = System.currentTimeMillis();
aoqi@0 748 for (int i=0; i<ITERS; i++) {
aoqi@0 749 test_srlc_on(a0, a1);
aoqi@0 750 }
aoqi@0 751 end = System.currentTimeMillis();
aoqi@0 752 System.out.println("test_srlc_on: " + (end - start));
aoqi@0 753 start = System.currentTimeMillis();
aoqi@0 754 for (int i=0; i<ITERS; i++) {
aoqi@0 755 test_srlv(a0, a1, -SHIFT);
aoqi@0 756 }
aoqi@0 757 end = System.currentTimeMillis();
aoqi@0 758 System.out.println("test_srlv_on: " + (end - start));
aoqi@0 759
aoqi@0 760 start = System.currentTimeMillis();
aoqi@0 761 for (int i=0; i<ITERS; i++) {
aoqi@0 762 test_srac_on(a0, a1);
aoqi@0 763 }
aoqi@0 764 end = System.currentTimeMillis();
aoqi@0 765 System.out.println("test_srac_on: " + (end - start));
aoqi@0 766 start = System.currentTimeMillis();
aoqi@0 767 for (int i=0; i<ITERS; i++) {
aoqi@0 768 test_srav(a0, a1, -SHIFT);
aoqi@0 769 }
aoqi@0 770 end = System.currentTimeMillis();
aoqi@0 771 System.out.println("test_srav_on: " + (end - start));
aoqi@0 772
aoqi@0 773 start = System.currentTimeMillis();
aoqi@0 774 for (int i=0; i<ITERS; i++) {
aoqi@0 775 test_sllc_add(a0, a1);
aoqi@0 776 }
aoqi@0 777 end = System.currentTimeMillis();
aoqi@0 778 System.out.println("test_sllc_add: " + (end - start));
aoqi@0 779 start = System.currentTimeMillis();
aoqi@0 780 for (int i=0; i<ITERS; i++) {
aoqi@0 781 test_sllv_add(a0, a1, ADD_INIT);
aoqi@0 782 }
aoqi@0 783 end = System.currentTimeMillis();
aoqi@0 784 System.out.println("test_sllv_add: " + (end - start));
aoqi@0 785
aoqi@0 786 start = System.currentTimeMillis();
aoqi@0 787 for (int i=0; i<ITERS; i++) {
aoqi@0 788 test_srlc_add(a0, a1);
aoqi@0 789 }
aoqi@0 790 end = System.currentTimeMillis();
aoqi@0 791 System.out.println("test_srlc_add: " + (end - start));
aoqi@0 792 start = System.currentTimeMillis();
aoqi@0 793 for (int i=0; i<ITERS; i++) {
aoqi@0 794 test_srlv_add(a0, a1, ADD_INIT);
aoqi@0 795 }
aoqi@0 796 end = System.currentTimeMillis();
aoqi@0 797 System.out.println("test_srlv_add: " + (end - start));
aoqi@0 798
aoqi@0 799 start = System.currentTimeMillis();
aoqi@0 800 for (int i=0; i<ITERS; i++) {
aoqi@0 801 test_srac_add(a0, a1);
aoqi@0 802 }
aoqi@0 803 end = System.currentTimeMillis();
aoqi@0 804 System.out.println("test_srac_add: " + (end - start));
aoqi@0 805 start = System.currentTimeMillis();
aoqi@0 806 for (int i=0; i<ITERS; i++) {
aoqi@0 807 test_srav_add(a0, a1, ADD_INIT);
aoqi@0 808 }
aoqi@0 809 end = System.currentTimeMillis();
aoqi@0 810 System.out.println("test_srav_add: " + (end - start));
aoqi@0 811
aoqi@0 812 start = System.currentTimeMillis();
aoqi@0 813 for (int i=0; i<ITERS; i++) {
aoqi@0 814 test_sllc_and(a0, a1);
aoqi@0 815 }
aoqi@0 816 end = System.currentTimeMillis();
aoqi@0 817 System.out.println("test_sllc_and: " + (end - start));
aoqi@0 818 start = System.currentTimeMillis();
aoqi@0 819 for (int i=0; i<ITERS; i++) {
aoqi@0 820 test_sllv_and(a0, a1, BIT_MASK);
aoqi@0 821 }
aoqi@0 822 end = System.currentTimeMillis();
aoqi@0 823 System.out.println("test_sllv_and: " + (end - start));
aoqi@0 824
aoqi@0 825 start = System.currentTimeMillis();
aoqi@0 826 for (int i=0; i<ITERS; i++) {
aoqi@0 827 test_srlc_and(a0, a1);
aoqi@0 828 }
aoqi@0 829 end = System.currentTimeMillis();
aoqi@0 830 System.out.println("test_srlc_and: " + (end - start));
aoqi@0 831 start = System.currentTimeMillis();
aoqi@0 832 for (int i=0; i<ITERS; i++) {
aoqi@0 833 test_srlv_and(a0, a1, BIT_MASK);
aoqi@0 834 }
aoqi@0 835 end = System.currentTimeMillis();
aoqi@0 836 System.out.println("test_srlv_and: " + (end - start));
aoqi@0 837
aoqi@0 838 start = System.currentTimeMillis();
aoqi@0 839 for (int i=0; i<ITERS; i++) {
aoqi@0 840 test_srac_and(a0, a1);
aoqi@0 841 }
aoqi@0 842 end = System.currentTimeMillis();
aoqi@0 843 System.out.println("test_srac_and: " + (end - start));
aoqi@0 844 start = System.currentTimeMillis();
aoqi@0 845 for (int i=0; i<ITERS; i++) {
aoqi@0 846 test_srav_and(a0, a1, BIT_MASK);
aoqi@0 847 }
aoqi@0 848 end = System.currentTimeMillis();
aoqi@0 849 System.out.println("test_srav_and: " + (end - start));
aoqi@0 850
aoqi@0 851 return errn;
aoqi@0 852 }
aoqi@0 853
aoqi@0 854 static long test_sum(long[] a1) {
aoqi@0 855 long sum = 0;
aoqi@0 856 for (int i = 0; i < a1.length; i+=1) {
aoqi@0 857 sum += a1[i];
aoqi@0 858 }
aoqi@0 859 return sum;
aoqi@0 860 }
aoqi@0 861
aoqi@0 862 static void test_addc(long[] a0, long[] a1) {
aoqi@0 863 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 864 a0[i] = (long)(a1[i]+VALUE);
aoqi@0 865 }
aoqi@0 866 }
aoqi@0 867 static void test_addv(long[] a0, long[] a1, long b) {
aoqi@0 868 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 869 a0[i] = (long)(a1[i]+b);
aoqi@0 870 }
aoqi@0 871 }
aoqi@0 872 static void test_adda(long[] a0, long[] a1, long[] a2) {
aoqi@0 873 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 874 a0[i] = (long)(a1[i]+a2[i]);
aoqi@0 875 }
aoqi@0 876 }
aoqi@0 877
aoqi@0 878 static void test_subc(long[] a0, long[] a1) {
aoqi@0 879 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 880 a0[i] = (long)(a1[i]-VALUE);
aoqi@0 881 }
aoqi@0 882 }
aoqi@0 883 static void test_subv(long[] a0, long[] a1, long b) {
aoqi@0 884 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 885 a0[i] = (long)(a1[i]-b);
aoqi@0 886 }
aoqi@0 887 }
aoqi@0 888 static void test_suba(long[] a0, long[] a1, long[] a2) {
aoqi@0 889 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 890 a0[i] = (long)(a1[i]-a2[i]);
aoqi@0 891 }
aoqi@0 892 }
aoqi@0 893
aoqi@0 894 static void test_mulc(long[] a0, long[] a1) {
aoqi@0 895 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 896 a0[i] = (long)(a1[i]*VALUE);
aoqi@0 897 }
aoqi@0 898 }
aoqi@0 899 static void test_mulc_n(long[] a0, long[] a1) {
aoqi@0 900 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 901 a0[i] = (long)(a1[i]*(-VALUE));
aoqi@0 902 }
aoqi@0 903 }
aoqi@0 904 static void test_mulv(long[] a0, long[] a1, long b) {
aoqi@0 905 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 906 a0[i] = (long)(a1[i]*b);
aoqi@0 907 }
aoqi@0 908 }
aoqi@0 909 static void test_mula(long[] a0, long[] a1, long[] a2) {
aoqi@0 910 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 911 a0[i] = (long)(a1[i]*a2[i]);
aoqi@0 912 }
aoqi@0 913 }
aoqi@0 914
aoqi@0 915 static void test_divc(long[] a0, long[] a1) {
aoqi@0 916 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 917 a0[i] = (long)(a1[i]/VALUE);
aoqi@0 918 }
aoqi@0 919 }
aoqi@0 920 static void test_divc_n(long[] a0, long[] a1) {
aoqi@0 921 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 922 a0[i] = (long)(a1[i]/(-VALUE));
aoqi@0 923 }
aoqi@0 924 }
aoqi@0 925 static void test_divv(long[] a0, long[] a1, long b) {
aoqi@0 926 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 927 a0[i] = (long)(a1[i]/b);
aoqi@0 928 }
aoqi@0 929 }
aoqi@0 930 static void test_diva(long[] a0, long[] a1, long[] a2) {
aoqi@0 931 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 932 a0[i] = (long)(a1[i]/a2[i]);
aoqi@0 933 }
aoqi@0 934 }
aoqi@0 935
aoqi@0 936 static void test_andc(long[] a0, long[] a1) {
aoqi@0 937 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 938 a0[i] = (long)(a1[i]&BIT_MASK);
aoqi@0 939 }
aoqi@0 940 }
aoqi@0 941 static void test_andv(long[] a0, long[] a1, long b) {
aoqi@0 942 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 943 a0[i] = (long)(a1[i]&b);
aoqi@0 944 }
aoqi@0 945 }
aoqi@0 946 static void test_anda(long[] a0, long[] a1, long[] a2) {
aoqi@0 947 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 948 a0[i] = (long)(a1[i]&a2[i]);
aoqi@0 949 }
aoqi@0 950 }
aoqi@0 951
aoqi@0 952 static void test_orc(long[] a0, long[] a1) {
aoqi@0 953 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 954 a0[i] = (long)(a1[i]|BIT_MASK);
aoqi@0 955 }
aoqi@0 956 }
aoqi@0 957 static void test_orv(long[] a0, long[] a1, long b) {
aoqi@0 958 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 959 a0[i] = (long)(a1[i]|b);
aoqi@0 960 }
aoqi@0 961 }
aoqi@0 962 static void test_ora(long[] a0, long[] a1, long[] a2) {
aoqi@0 963 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 964 a0[i] = (long)(a1[i]|a2[i]);
aoqi@0 965 }
aoqi@0 966 }
aoqi@0 967
aoqi@0 968 static void test_xorc(long[] a0, long[] a1) {
aoqi@0 969 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 970 a0[i] = (long)(a1[i]^BIT_MASK);
aoqi@0 971 }
aoqi@0 972 }
aoqi@0 973 static void test_xorv(long[] a0, long[] a1, long b) {
aoqi@0 974 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 975 a0[i] = (long)(a1[i]^b);
aoqi@0 976 }
aoqi@0 977 }
aoqi@0 978 static void test_xora(long[] a0, long[] a1, long[] a2) {
aoqi@0 979 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 980 a0[i] = (long)(a1[i]^a2[i]);
aoqi@0 981 }
aoqi@0 982 }
aoqi@0 983
aoqi@0 984 static void test_sllc(long[] a0, long[] a1) {
aoqi@0 985 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 986 a0[i] = (long)(a1[i]<<VALUE);
aoqi@0 987 }
aoqi@0 988 }
aoqi@0 989 static void test_sllc_n(long[] a0, long[] a1) {
aoqi@0 990 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 991 a0[i] = (long)(a1[i]<<(-VALUE));
aoqi@0 992 }
aoqi@0 993 }
aoqi@0 994 static void test_sllc_o(long[] a0, long[] a1) {
aoqi@0 995 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 996 a0[i] = (long)(a1[i]<<SHIFT);
aoqi@0 997 }
aoqi@0 998 }
aoqi@0 999 static void test_sllc_on(long[] a0, long[] a1) {
aoqi@0 1000 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1001 a0[i] = (long)(a1[i]<<(-SHIFT));
aoqi@0 1002 }
aoqi@0 1003 }
aoqi@0 1004 static void test_sllv(long[] a0, long[] a1, int b) {
aoqi@0 1005 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1006 a0[i] = (long)(a1[i]<<b);
aoqi@0 1007 }
aoqi@0 1008 }
aoqi@0 1009 static void test_sllc_add(long[] a0, long[] a1) {
aoqi@0 1010 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1011 a0[i] = (long)((a1[i] + ADD_INIT)<<VALUE);
aoqi@0 1012 }
aoqi@0 1013 }
aoqi@0 1014 static void test_sllv_add(long[] a0, long[] a1, long b) {
aoqi@0 1015 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1016 a0[i] = (long)((a1[i] + b)<<VALUE);
aoqi@0 1017 }
aoqi@0 1018 }
aoqi@0 1019 static void test_sllc_and(long[] a0, long[] a1) {
aoqi@0 1020 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1021 a0[i] = (long)((a1[i] & BIT_MASK)<<VALUE);
aoqi@0 1022 }
aoqi@0 1023 }
aoqi@0 1024 static void test_sllv_and(long[] a0, long[] a1, long b) {
aoqi@0 1025 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1026 a0[i] = (long)((a1[i] & b)<<VALUE);
aoqi@0 1027 }
aoqi@0 1028 }
aoqi@0 1029
aoqi@0 1030 static void test_srlc(long[] a0, long[] a1) {
aoqi@0 1031 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1032 a0[i] = (long)(a1[i]>>>VALUE);
aoqi@0 1033 }
aoqi@0 1034 }
aoqi@0 1035 static void test_srlc_n(long[] a0, long[] a1) {
aoqi@0 1036 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1037 a0[i] = (long)(a1[i]>>>(-VALUE));
aoqi@0 1038 }
aoqi@0 1039 }
aoqi@0 1040 static void test_srlc_o(long[] a0, long[] a1) {
aoqi@0 1041 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1042 a0[i] = (long)(a1[i]>>>SHIFT);
aoqi@0 1043 }
aoqi@0 1044 }
aoqi@0 1045 static void test_srlc_on(long[] a0, long[] a1) {
aoqi@0 1046 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1047 a0[i] = (long)(a1[i]>>>(-SHIFT));
aoqi@0 1048 }
aoqi@0 1049 }
aoqi@0 1050 static void test_srlv(long[] a0, long[] a1, int b) {
aoqi@0 1051 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1052 a0[i] = (long)(a1[i]>>>b);
aoqi@0 1053 }
aoqi@0 1054 }
aoqi@0 1055 static void test_srlc_add(long[] a0, long[] a1) {
aoqi@0 1056 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1057 a0[i] = (long)((a1[i] + ADD_INIT)>>>VALUE);
aoqi@0 1058 }
aoqi@0 1059 }
aoqi@0 1060 static void test_srlv_add(long[] a0, long[] a1, long b) {
aoqi@0 1061 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1062 a0[i] = (long)((a1[i] + b)>>>VALUE);
aoqi@0 1063 }
aoqi@0 1064 }
aoqi@0 1065 static void test_srlc_and(long[] a0, long[] a1) {
aoqi@0 1066 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1067 a0[i] = (long)((a1[i] & BIT_MASK)>>>VALUE);
aoqi@0 1068 }
aoqi@0 1069 }
aoqi@0 1070 static void test_srlv_and(long[] a0, long[] a1, long b) {
aoqi@0 1071 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1072 a0[i] = (long)((a1[i] & b)>>>VALUE);
aoqi@0 1073 }
aoqi@0 1074 }
aoqi@0 1075
aoqi@0 1076 static void test_srac(long[] a0, long[] a1) {
aoqi@0 1077 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1078 a0[i] = (long)(a1[i]>>VALUE);
aoqi@0 1079 }
aoqi@0 1080 }
aoqi@0 1081 static void test_srac_n(long[] a0, long[] a1) {
aoqi@0 1082 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1083 a0[i] = (long)(a1[i]>>(-VALUE));
aoqi@0 1084 }
aoqi@0 1085 }
aoqi@0 1086 static void test_srac_o(long[] a0, long[] a1) {
aoqi@0 1087 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1088 a0[i] = (long)(a1[i]>>SHIFT);
aoqi@0 1089 }
aoqi@0 1090 }
aoqi@0 1091 static void test_srac_on(long[] a0, long[] a1) {
aoqi@0 1092 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1093 a0[i] = (long)(a1[i]>>(-SHIFT));
aoqi@0 1094 }
aoqi@0 1095 }
aoqi@0 1096 static void test_srav(long[] a0, long[] a1, int b) {
aoqi@0 1097 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1098 a0[i] = (long)(a1[i]>>b);
aoqi@0 1099 }
aoqi@0 1100 }
aoqi@0 1101 static void test_srac_add(long[] a0, long[] a1) {
aoqi@0 1102 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1103 a0[i] = (long)((a1[i] + ADD_INIT)>>VALUE);
aoqi@0 1104 }
aoqi@0 1105 }
aoqi@0 1106 static void test_srav_add(long[] a0, long[] a1, long b) {
aoqi@0 1107 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1108 a0[i] = (long)((a1[i] + b)>>VALUE);
aoqi@0 1109 }
aoqi@0 1110 }
aoqi@0 1111 static void test_srac_and(long[] a0, long[] a1) {
aoqi@0 1112 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1113 a0[i] = (long)((a1[i] & BIT_MASK)>>VALUE);
aoqi@0 1114 }
aoqi@0 1115 }
aoqi@0 1116 static void test_srav_and(long[] a0, long[] a1, long b) {
aoqi@0 1117 for (int i = 0; i < a0.length; i+=1) {
aoqi@0 1118 a0[i] = (long)((a1[i] & b)>>VALUE);
aoqi@0 1119 }
aoqi@0 1120 }
aoqi@0 1121
aoqi@0 1122 static int verify(String text, int i, long elem, long val) {
aoqi@0 1123 if (elem != val) {
aoqi@0 1124 System.err.println(text + "[" + i + "] = " + elem + " != " + val);
aoqi@0 1125 return 1;
aoqi@0 1126 }
aoqi@0 1127 return 0;
aoqi@0 1128 }
aoqi@0 1129 }

mercurial