test/compiler/7119644/TestByteVect.java

Mon, 28 Jul 2014 15:06:38 -0700

author
fzhinkin
date
Mon, 28 Jul 2014 15:06:38 -0700
changeset 6997
dbb05f6d93c4
parent 0
f90c822e73f8
permissions
-rw-r--r--

8051344: JVM crashed in Compile::start() during method parsing w/ UseRTMDeopt turned on
Summary: call rtm_deopt() only if there were no compilation bailouts before.
Reviewed-by: kvn

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 7119644
aoqi@0 28 * @summary Increase superword's vector size up to 256 bits
aoqi@0 29 *
aoqi@0 30 * @run main/othervm/timeout=300 -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:-TieredCompilation -XX:-OptimizeFill TestByteVect
aoqi@0 31 */
aoqi@0 32
aoqi@0 33 public class TestByteVect {
aoqi@0 34 private static final int ARRLEN = 997;
aoqi@0 35 private static final int ITERS = 11000;
aoqi@0 36 private static final int OFFSET = 3;
aoqi@0 37 private static final int SCALE = 2;
aoqi@0 38 private static final int ALIGN_OFF = 8;
aoqi@0 39 private static final int UNALIGN_OFF = 5;
aoqi@0 40
aoqi@0 41 public static void main(String args[]) {
aoqi@0 42 System.out.println("Testing Byte 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 byte[] a1 = new byte[ARRLEN];
aoqi@0 53 byte[] a2 = new byte[ARRLEN];
aoqi@0 54 System.out.println("Warmup");
aoqi@0 55 for (int i=0; i<ITERS; i++) {
aoqi@0 56 test_ci(a1);
aoqi@0 57 test_vi(a2, (byte)123);
aoqi@0 58 test_cp(a1, a2);
aoqi@0 59 test_2ci(a1, a2);
aoqi@0 60 test_2vi(a1, a2, (byte)123, (byte)103);
aoqi@0 61 test_ci_neg(a1);
aoqi@0 62 test_vi_neg(a2, (byte)123);
aoqi@0 63 test_cp_neg(a1, a2);
aoqi@0 64 test_2ci_neg(a1, a2);
aoqi@0 65 test_2vi_neg(a1, a2, (byte)123, (byte)103);
aoqi@0 66 test_ci_oppos(a1);
aoqi@0 67 test_vi_oppos(a2, (byte)123);
aoqi@0 68 test_cp_oppos(a1, a2);
aoqi@0 69 test_2ci_oppos(a1, a2);
aoqi@0 70 test_2vi_oppos(a1, a2, (byte)123, (byte)103);
aoqi@0 71 test_ci_off(a1);
aoqi@0 72 test_vi_off(a2, (byte)123);
aoqi@0 73 test_cp_off(a1, a2);
aoqi@0 74 test_2ci_off(a1, a2);
aoqi@0 75 test_2vi_off(a1, a2, (byte)123, (byte)103);
aoqi@0 76 test_ci_inv(a1, OFFSET);
aoqi@0 77 test_vi_inv(a2, (byte)123, OFFSET);
aoqi@0 78 test_cp_inv(a1, a2, OFFSET);
aoqi@0 79 test_2ci_inv(a1, a2, OFFSET);
aoqi@0 80 test_2vi_inv(a1, a2, (byte)123, (byte)103, OFFSET);
aoqi@0 81 test_ci_scl(a1);
aoqi@0 82 test_vi_scl(a2, (byte)123);
aoqi@0 83 test_cp_scl(a1, a2);
aoqi@0 84 test_2ci_scl(a1, a2);
aoqi@0 85 test_2vi_scl(a1, a2, (byte)123, (byte)103);
aoqi@0 86 test_cp_alndst(a1, a2);
aoqi@0 87 test_cp_alnsrc(a1, a2);
aoqi@0 88 test_2ci_aln(a1, a2);
aoqi@0 89 test_2vi_aln(a1, a2, (byte)123, (byte)103);
aoqi@0 90 test_cp_unalndst(a1, a2);
aoqi@0 91 test_cp_unalnsrc(a1, a2);
aoqi@0 92 test_2ci_unaln(a1, a2);
aoqi@0 93 test_2vi_unaln(a1, a2, (byte)123, (byte)103);
aoqi@0 94 }
aoqi@0 95 // Initialize
aoqi@0 96 for (int i=0; i<ARRLEN; i++) {
aoqi@0 97 a1[i] = -1;
aoqi@0 98 a2[i] = -1;
aoqi@0 99 }
aoqi@0 100 // Test and verify results
aoqi@0 101 System.out.println("Verification");
aoqi@0 102 int errn = 0;
aoqi@0 103 {
aoqi@0 104 test_ci(a1);
aoqi@0 105 for (int i=0; i<ARRLEN; i++) {
aoqi@0 106 errn += verify("test_ci: a1", i, a1[i], (byte)-123);
aoqi@0 107 }
aoqi@0 108 test_vi(a2, (byte)123);
aoqi@0 109 for (int i=0; i<ARRLEN; i++) {
aoqi@0 110 errn += verify("test_vi: a2", i, a2[i], (byte)123);
aoqi@0 111 }
aoqi@0 112 test_cp(a1, a2);
aoqi@0 113 for (int i=0; i<ARRLEN; i++) {
aoqi@0 114 errn += verify("test_cp: a1", i, a1[i], (byte)123);
aoqi@0 115 }
aoqi@0 116 test_2ci(a1, a2);
aoqi@0 117 for (int i=0; i<ARRLEN; i++) {
aoqi@0 118 errn += verify("test_2ci: a1", i, a1[i], (byte)-123);
aoqi@0 119 errn += verify("test_2ci: a2", i, a2[i], (byte)-103);
aoqi@0 120 }
aoqi@0 121 test_2vi(a1, a2, (byte)123, (byte)103);
aoqi@0 122 for (int i=0; i<ARRLEN; i++) {
aoqi@0 123 errn += verify("test_2vi: a1", i, a1[i], (byte)123);
aoqi@0 124 errn += verify("test_2vi: a2", i, a2[i], (byte)103);
aoqi@0 125 }
aoqi@0 126 // Reset for negative stride
aoqi@0 127 for (int i=0; i<ARRLEN; i++) {
aoqi@0 128 a1[i] = -1;
aoqi@0 129 a2[i] = -1;
aoqi@0 130 }
aoqi@0 131 test_ci_neg(a1);
aoqi@0 132 for (int i=0; i<ARRLEN; i++) {
aoqi@0 133 errn += verify("test_ci_neg: a1", i, a1[i], (byte)-123);
aoqi@0 134 }
aoqi@0 135 test_vi_neg(a2, (byte)123);
aoqi@0 136 for (int i=0; i<ARRLEN; i++) {
aoqi@0 137 errn += verify("test_vi_neg: a2", i, a2[i], (byte)123);
aoqi@0 138 }
aoqi@0 139 test_cp_neg(a1, a2);
aoqi@0 140 for (int i=0; i<ARRLEN; i++) {
aoqi@0 141 errn += verify("test_cp_neg: a1", i, a1[i], (byte)123);
aoqi@0 142 }
aoqi@0 143 test_2ci_neg(a1, a2);
aoqi@0 144 for (int i=0; i<ARRLEN; i++) {
aoqi@0 145 errn += verify("test_2ci_neg: a1", i, a1[i], (byte)-123);
aoqi@0 146 errn += verify("test_2ci_neg: a2", i, a2[i], (byte)-103);
aoqi@0 147 }
aoqi@0 148 test_2vi_neg(a1, a2, (byte)123, (byte)103);
aoqi@0 149 for (int i=0; i<ARRLEN; i++) {
aoqi@0 150 errn += verify("test_2vi_neg: a1", i, a1[i], (byte)123);
aoqi@0 151 errn += verify("test_2vi_neg: a2", i, a2[i], (byte)103);
aoqi@0 152 }
aoqi@0 153 // Reset for opposite stride
aoqi@0 154 for (int i=0; i<ARRLEN; i++) {
aoqi@0 155 a1[i] = -1;
aoqi@0 156 a2[i] = -1;
aoqi@0 157 }
aoqi@0 158 test_ci_oppos(a1);
aoqi@0 159 for (int i=0; i<ARRLEN; i++) {
aoqi@0 160 errn += verify("test_ci_oppos: a1", i, a1[i], (byte)-123);
aoqi@0 161 }
aoqi@0 162 test_vi_oppos(a2, (byte)123);
aoqi@0 163 for (int i=0; i<ARRLEN; i++) {
aoqi@0 164 errn += verify("test_vi_oppos: a2", i, a2[i], (byte)123);
aoqi@0 165 }
aoqi@0 166 test_cp_oppos(a1, a2);
aoqi@0 167 for (int i=0; i<ARRLEN; i++) {
aoqi@0 168 errn += verify("test_cp_oppos: a1", i, a1[i], (byte)123);
aoqi@0 169 }
aoqi@0 170 test_2ci_oppos(a1, a2);
aoqi@0 171 for (int i=0; i<ARRLEN; i++) {
aoqi@0 172 errn += verify("test_2ci_oppos: a1", i, a1[i], (byte)-123);
aoqi@0 173 errn += verify("test_2ci_oppos: a2", i, a2[i], (byte)-103);
aoqi@0 174 }
aoqi@0 175 test_2vi_oppos(a1, a2, (byte)123, (byte)103);
aoqi@0 176 for (int i=0; i<ARRLEN; i++) {
aoqi@0 177 errn += verify("test_2vi_oppos: a1", i, a1[i], (byte)123);
aoqi@0 178 errn += verify("test_2vi_oppos: a2", i, a2[i], (byte)103);
aoqi@0 179 }
aoqi@0 180 // Reset for indexing with offset
aoqi@0 181 for (int i=0; i<ARRLEN; i++) {
aoqi@0 182 a1[i] = -1;
aoqi@0 183 a2[i] = -1;
aoqi@0 184 }
aoqi@0 185 test_ci_off(a1);
aoqi@0 186 for (int i=OFFSET; i<ARRLEN; i++) {
aoqi@0 187 errn += verify("test_ci_off: a1", i, a1[i], (byte)-123);
aoqi@0 188 }
aoqi@0 189 test_vi_off(a2, (byte)123);
aoqi@0 190 for (int i=OFFSET; i<ARRLEN; i++) {
aoqi@0 191 errn += verify("test_vi_off: a2", i, a2[i], (byte)123);
aoqi@0 192 }
aoqi@0 193 test_cp_off(a1, a2);
aoqi@0 194 for (int i=OFFSET; i<ARRLEN; i++) {
aoqi@0 195 errn += verify("test_cp_off: a1", i, a1[i], (byte)123);
aoqi@0 196 }
aoqi@0 197 test_2ci_off(a1, a2);
aoqi@0 198 for (int i=OFFSET; i<ARRLEN; i++) {
aoqi@0 199 errn += verify("test_2ci_off: a1", i, a1[i], (byte)-123);
aoqi@0 200 errn += verify("test_2ci_off: a2", i, a2[i], (byte)-103);
aoqi@0 201 }
aoqi@0 202 test_2vi_off(a1, a2, (byte)123, (byte)103);
aoqi@0 203 for (int i=OFFSET; i<ARRLEN; i++) {
aoqi@0 204 errn += verify("test_2vi_off: a1", i, a1[i], (byte)123);
aoqi@0 205 errn += verify("test_2vi_off: a2", i, a2[i], (byte)103);
aoqi@0 206 }
aoqi@0 207 for (int i=0; i<OFFSET; i++) {
aoqi@0 208 errn += verify("test_2vi_off: a1", i, a1[i], (byte)-1);
aoqi@0 209 errn += verify("test_2vi_off: a2", i, a2[i], (byte)-1);
aoqi@0 210 }
aoqi@0 211 // Reset for indexing with invariant offset
aoqi@0 212 for (int i=0; i<ARRLEN; i++) {
aoqi@0 213 a1[i] = -1;
aoqi@0 214 a2[i] = -1;
aoqi@0 215 }
aoqi@0 216 test_ci_inv(a1, OFFSET);
aoqi@0 217 for (int i=OFFSET; i<ARRLEN; i++) {
aoqi@0 218 errn += verify("test_ci_inv: a1", i, a1[i], (byte)-123);
aoqi@0 219 }
aoqi@0 220 test_vi_inv(a2, (byte)123, OFFSET);
aoqi@0 221 for (int i=OFFSET; i<ARRLEN; i++) {
aoqi@0 222 errn += verify("test_vi_inv: a2", i, a2[i], (byte)123);
aoqi@0 223 }
aoqi@0 224 test_cp_inv(a1, a2, OFFSET);
aoqi@0 225 for (int i=OFFSET; i<ARRLEN; i++) {
aoqi@0 226 errn += verify("test_cp_inv: a1", i, a1[i], (byte)123);
aoqi@0 227 }
aoqi@0 228 test_2ci_inv(a1, a2, OFFSET);
aoqi@0 229 for (int i=OFFSET; i<ARRLEN; i++) {
aoqi@0 230 errn += verify("test_2ci_inv: a1", i, a1[i], (byte)-123);
aoqi@0 231 errn += verify("test_2ci_inv: a2", i, a2[i], (byte)-103);
aoqi@0 232 }
aoqi@0 233 test_2vi_inv(a1, a2, (byte)123, (byte)103, OFFSET);
aoqi@0 234 for (int i=OFFSET; i<ARRLEN; i++) {
aoqi@0 235 errn += verify("test_2vi_inv: a1", i, a1[i], (byte)123);
aoqi@0 236 errn += verify("test_2vi_inv: a2", i, a2[i], (byte)103);
aoqi@0 237 }
aoqi@0 238 for (int i=0; i<OFFSET; i++) {
aoqi@0 239 errn += verify("test_2vi_inv: a1", i, a1[i], (byte)-1);
aoqi@0 240 errn += verify("test_2vi_inv: a2", i, a2[i], (byte)-1);
aoqi@0 241 }
aoqi@0 242 // Reset for indexing with scale
aoqi@0 243 for (int i=0; i<ARRLEN; i++) {
aoqi@0 244 a1[i] = -1;
aoqi@0 245 a2[i] = -1;
aoqi@0 246 }
aoqi@0 247 test_ci_scl(a1);
aoqi@0 248 for (int i=0; i<ARRLEN; i++) {
aoqi@0 249 int val = (i%SCALE != 0) ? -1 : -123;
aoqi@0 250 errn += verify("test_ci_scl: a1", i, a1[i], (byte)val);
aoqi@0 251 }
aoqi@0 252 test_vi_scl(a2, (byte)123);
aoqi@0 253 for (int i=0; i<ARRLEN; i++) {
aoqi@0 254 int val = (i%SCALE != 0) ? -1 : 123;
aoqi@0 255 errn += verify("test_vi_scl: a2", i, a2[i], (byte)val);
aoqi@0 256 }
aoqi@0 257 test_cp_scl(a1, a2);
aoqi@0 258 for (int i=0; i<ARRLEN; i++) {
aoqi@0 259 int val = (i%SCALE != 0) ? -1 : 123;
aoqi@0 260 errn += verify("test_cp_scl: a1", i, a1[i], (byte)val);
aoqi@0 261 }
aoqi@0 262 test_2ci_scl(a1, a2);
aoqi@0 263 for (int i=0; i<ARRLEN; i++) {
aoqi@0 264 if (i%SCALE != 0) {
aoqi@0 265 errn += verify("test_2ci_scl: a1", i, a1[i], (byte)-1);
aoqi@0 266 } else if (i*SCALE < ARRLEN) {
aoqi@0 267 errn += verify("test_2ci_scl: a1", i*SCALE, a1[i*SCALE], (byte)-123);
aoqi@0 268 }
aoqi@0 269 if (i%SCALE != 0) {
aoqi@0 270 errn += verify("test_2ci_scl: a2", i, a2[i], (byte)-1);
aoqi@0 271 } else if (i*SCALE < ARRLEN) {
aoqi@0 272 errn += verify("test_2ci_scl: a2", i*SCALE, a2[i*SCALE], (byte)-103);
aoqi@0 273 }
aoqi@0 274 }
aoqi@0 275 test_2vi_scl(a1, a2, (byte)123, (byte)103);
aoqi@0 276 for (int i=0; i<ARRLEN; i++) {
aoqi@0 277 if (i%SCALE != 0) {
aoqi@0 278 errn += verify("test_2vi_scl: a1", i, a1[i], (byte)-1);
aoqi@0 279 } else if (i*SCALE < ARRLEN) {
aoqi@0 280 errn += verify("test_2vi_scl: a1", i*SCALE, a1[i*SCALE], (byte)123);
aoqi@0 281 }
aoqi@0 282 if (i%SCALE != 0) {
aoqi@0 283 errn += verify("test_2vi_scl: a2", i, a2[i], (byte)-1);
aoqi@0 284 } else if (i*SCALE < ARRLEN) {
aoqi@0 285 errn += verify("test_2vi_scl: a2", i*SCALE, a2[i*SCALE], (byte)103);
aoqi@0 286 }
aoqi@0 287 }
aoqi@0 288 // Reset for 2 arrays with relative aligned offset
aoqi@0 289 for (int i=0; i<ARRLEN; i++) {
aoqi@0 290 a1[i] = -1;
aoqi@0 291 a2[i] = -1;
aoqi@0 292 }
aoqi@0 293 test_vi(a2, (byte)123);
aoqi@0 294 test_cp_alndst(a1, a2);
aoqi@0 295 for (int i=0; i<ALIGN_OFF; i++) {
aoqi@0 296 errn += verify("test_cp_alndst: a1", i, a1[i], (byte)-1);
aoqi@0 297 }
aoqi@0 298 for (int i=ALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 299 errn += verify("test_cp_alndst: a1", i, a1[i], (byte)123);
aoqi@0 300 }
aoqi@0 301 test_vi(a2, (byte)-123);
aoqi@0 302 test_cp_alnsrc(a1, a2);
aoqi@0 303 for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {
aoqi@0 304 errn += verify("test_cp_alnsrc: a1", i, a1[i], (byte)-123);
aoqi@0 305 }
aoqi@0 306 for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 307 errn += verify("test_cp_alnsrc: a1", i, a1[i], (byte)123);
aoqi@0 308 }
aoqi@0 309 for (int i=0; i<ARRLEN; i++) {
aoqi@0 310 a1[i] = -1;
aoqi@0 311 a2[i] = -1;
aoqi@0 312 }
aoqi@0 313 test_2ci_aln(a1, a2);
aoqi@0 314 for (int i=0; i<ALIGN_OFF; i++) {
aoqi@0 315 errn += verify("test_2ci_aln: a1", i, a1[i], (byte)-1);
aoqi@0 316 }
aoqi@0 317 for (int i=ALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 318 errn += verify("test_2ci_aln: a1", i, a1[i], (byte)-123);
aoqi@0 319 }
aoqi@0 320 for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {
aoqi@0 321 errn += verify("test_2ci_aln: a2", i, a2[i], (byte)-103);
aoqi@0 322 }
aoqi@0 323 for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 324 errn += verify("test_2ci_aln: a2", i, a2[i], (byte)-1);
aoqi@0 325 }
aoqi@0 326 for (int i=0; i<ARRLEN; i++) {
aoqi@0 327 a1[i] = -1;
aoqi@0 328 a2[i] = -1;
aoqi@0 329 }
aoqi@0 330 test_2vi_aln(a1, a2, (byte)123, (byte)103);
aoqi@0 331 for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {
aoqi@0 332 errn += verify("test_2vi_aln: a1", i, a1[i], (byte)123);
aoqi@0 333 }
aoqi@0 334 for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 335 errn += verify("test_2vi_aln: a1", i, a1[i], (byte)-1);
aoqi@0 336 }
aoqi@0 337 for (int i=0; i<ALIGN_OFF; i++) {
aoqi@0 338 errn += verify("test_2vi_aln: a2", i, a2[i], (byte)-1);
aoqi@0 339 }
aoqi@0 340 for (int i=ALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 341 errn += verify("test_2vi_aln: a2", i, a2[i], (byte)103);
aoqi@0 342 }
aoqi@0 343
aoqi@0 344 // Reset for 2 arrays with relative unaligned offset
aoqi@0 345 for (int i=0; i<ARRLEN; i++) {
aoqi@0 346 a1[i] = -1;
aoqi@0 347 a2[i] = -1;
aoqi@0 348 }
aoqi@0 349 test_vi(a2, (byte)123);
aoqi@0 350 test_cp_unalndst(a1, a2);
aoqi@0 351 for (int i=0; i<UNALIGN_OFF; i++) {
aoqi@0 352 errn += verify("test_cp_unalndst: a1", i, a1[i], (byte)-1);
aoqi@0 353 }
aoqi@0 354 for (int i=UNALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 355 errn += verify("test_cp_unalndst: a1", i, a1[i], (byte)123);
aoqi@0 356 }
aoqi@0 357 test_vi(a2, (byte)-123);
aoqi@0 358 test_cp_unalnsrc(a1, a2);
aoqi@0 359 for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {
aoqi@0 360 errn += verify("test_cp_unalnsrc: a1", i, a1[i], (byte)-123);
aoqi@0 361 }
aoqi@0 362 for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 363 errn += verify("test_cp_unalnsrc: a1", i, a1[i], (byte)123);
aoqi@0 364 }
aoqi@0 365 for (int i=0; i<ARRLEN; i++) {
aoqi@0 366 a1[i] = -1;
aoqi@0 367 a2[i] = -1;
aoqi@0 368 }
aoqi@0 369 test_2ci_unaln(a1, a2);
aoqi@0 370 for (int i=0; i<UNALIGN_OFF; i++) {
aoqi@0 371 errn += verify("test_2ci_unaln: a1", i, a1[i], (byte)-1);
aoqi@0 372 }
aoqi@0 373 for (int i=UNALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 374 errn += verify("test_2ci_unaln: a1", i, a1[i], (byte)-123);
aoqi@0 375 }
aoqi@0 376 for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {
aoqi@0 377 errn += verify("test_2ci_unaln: a2", i, a2[i], (byte)-103);
aoqi@0 378 }
aoqi@0 379 for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 380 errn += verify("test_2ci_unaln: a2", i, a2[i], (byte)-1);
aoqi@0 381 }
aoqi@0 382 for (int i=0; i<ARRLEN; i++) {
aoqi@0 383 a1[i] = -1;
aoqi@0 384 a2[i] = -1;
aoqi@0 385 }
aoqi@0 386 test_2vi_unaln(a1, a2, (byte)123, (byte)103);
aoqi@0 387 for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {
aoqi@0 388 errn += verify("test_2vi_unaln: a1", i, a1[i], (byte)123);
aoqi@0 389 }
aoqi@0 390 for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 391 errn += verify("test_2vi_unaln: a1", i, a1[i], (byte)-1);
aoqi@0 392 }
aoqi@0 393 for (int i=0; i<UNALIGN_OFF; i++) {
aoqi@0 394 errn += verify("test_2vi_unaln: a2", i, a2[i], (byte)-1);
aoqi@0 395 }
aoqi@0 396 for (int i=UNALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 397 errn += verify("test_2vi_unaln: a2", i, a2[i], (byte)103);
aoqi@0 398 }
aoqi@0 399
aoqi@0 400 // Reset for aligned overlap initialization
aoqi@0 401 for (int i=0; i<ALIGN_OFF; i++) {
aoqi@0 402 a1[i] = (byte)i;
aoqi@0 403 }
aoqi@0 404 for (int i=ALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 405 a1[i] = -1;
aoqi@0 406 }
aoqi@0 407 test_cp_alndst(a1, a1);
aoqi@0 408 for (int i=0; i<ARRLEN; i++) {
aoqi@0 409 int v = i%ALIGN_OFF;
aoqi@0 410 errn += verify("test_cp_alndst_overlap: a1", i, a1[i], (byte)v);
aoqi@0 411 }
aoqi@0 412 for (int i=0; i<ALIGN_OFF; i++) {
aoqi@0 413 a1[i+ALIGN_OFF] = -1;
aoqi@0 414 }
aoqi@0 415 test_cp_alnsrc(a1, a1);
aoqi@0 416 for (int i=0; i<ALIGN_OFF; i++) {
aoqi@0 417 errn += verify("test_cp_alnsrc_overlap: a1", i, a1[i], (byte)-1);
aoqi@0 418 }
aoqi@0 419 for (int i=ALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 420 int v = i%ALIGN_OFF;
aoqi@0 421 errn += verify("test_cp_alnsrc_overlap: a1", i, a1[i], (byte)v);
aoqi@0 422 }
aoqi@0 423 for (int i=0; i<ARRLEN; i++) {
aoqi@0 424 a1[i] = -1;
aoqi@0 425 }
aoqi@0 426 test_2ci_aln(a1, a1);
aoqi@0 427 for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {
aoqi@0 428 errn += verify("test_2ci_aln_overlap: a1", i, a1[i], (byte)-103);
aoqi@0 429 }
aoqi@0 430 for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 431 errn += verify("test_2ci_aln_overlap: a1", i, a1[i], (byte)-123);
aoqi@0 432 }
aoqi@0 433 for (int i=0; i<ARRLEN; i++) {
aoqi@0 434 a1[i] = -1;
aoqi@0 435 }
aoqi@0 436 test_2vi_aln(a1, a1, (byte)123, (byte)103);
aoqi@0 437 for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {
aoqi@0 438 errn += verify("test_2vi_aln_overlap: a1", i, a1[i], (byte)123);
aoqi@0 439 }
aoqi@0 440 for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 441 errn += verify("test_2vi_aln_overlap: a1", i, a1[i], (byte)103);
aoqi@0 442 }
aoqi@0 443
aoqi@0 444 // Reset for unaligned overlap initialization
aoqi@0 445 for (int i=0; i<UNALIGN_OFF; i++) {
aoqi@0 446 a1[i] = (byte)i;
aoqi@0 447 }
aoqi@0 448 for (int i=UNALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 449 a1[i] = -1;
aoqi@0 450 }
aoqi@0 451 test_cp_unalndst(a1, a1);
aoqi@0 452 for (int i=0; i<ARRLEN; i++) {
aoqi@0 453 int v = i%UNALIGN_OFF;
aoqi@0 454 errn += verify("test_cp_unalndst_overlap: a1", i, a1[i], (byte)v);
aoqi@0 455 }
aoqi@0 456 for (int i=0; i<UNALIGN_OFF; i++) {
aoqi@0 457 a1[i+UNALIGN_OFF] = -1;
aoqi@0 458 }
aoqi@0 459 test_cp_unalnsrc(a1, a1);
aoqi@0 460 for (int i=0; i<UNALIGN_OFF; i++) {
aoqi@0 461 errn += verify("test_cp_unalnsrc_overlap: a1", i, a1[i], (byte)-1);
aoqi@0 462 }
aoqi@0 463 for (int i=UNALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 464 int v = i%UNALIGN_OFF;
aoqi@0 465 errn += verify("test_cp_unalnsrc_overlap: a1", i, a1[i], (byte)v);
aoqi@0 466 }
aoqi@0 467 for (int i=0; i<ARRLEN; i++) {
aoqi@0 468 a1[i] = -1;
aoqi@0 469 }
aoqi@0 470 test_2ci_unaln(a1, a1);
aoqi@0 471 for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {
aoqi@0 472 errn += verify("test_2ci_unaln_overlap: a1", i, a1[i], (byte)-103);
aoqi@0 473 }
aoqi@0 474 for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 475 errn += verify("test_2ci_unaln_overlap: a1", i, a1[i], (byte)-123);
aoqi@0 476 }
aoqi@0 477 for (int i=0; i<ARRLEN; i++) {
aoqi@0 478 a1[i] = -1;
aoqi@0 479 }
aoqi@0 480 test_2vi_unaln(a1, a1, (byte)123, (byte)103);
aoqi@0 481 for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {
aoqi@0 482 errn += verify("test_2vi_unaln_overlap: a1", i, a1[i], (byte)123);
aoqi@0 483 }
aoqi@0 484 for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {
aoqi@0 485 errn += verify("test_2vi_unaln_overlap: a1", i, a1[i], (byte)103);
aoqi@0 486 }
aoqi@0 487
aoqi@0 488 }
aoqi@0 489
aoqi@0 490 if (errn > 0)
aoqi@0 491 return errn;
aoqi@0 492
aoqi@0 493 System.out.println("Time");
aoqi@0 494 long start, end;
aoqi@0 495 start = System.currentTimeMillis();
aoqi@0 496 for (int i=0; i<ITERS; i++) {
aoqi@0 497 test_ci(a1);
aoqi@0 498 }
aoqi@0 499 end = System.currentTimeMillis();
aoqi@0 500 System.out.println("test_ci: " + (end - start));
aoqi@0 501 start = System.currentTimeMillis();
aoqi@0 502 for (int i=0; i<ITERS; i++) {
aoqi@0 503 test_vi(a2, (byte)123);
aoqi@0 504 }
aoqi@0 505 end = System.currentTimeMillis();
aoqi@0 506 System.out.println("test_vi: " + (end - start));
aoqi@0 507 start = System.currentTimeMillis();
aoqi@0 508 for (int i=0; i<ITERS; i++) {
aoqi@0 509 test_cp(a1, a2);
aoqi@0 510 }
aoqi@0 511 end = System.currentTimeMillis();
aoqi@0 512 System.out.println("test_cp: " + (end - start));
aoqi@0 513 start = System.currentTimeMillis();
aoqi@0 514 for (int i=0; i<ITERS; i++) {
aoqi@0 515 test_2ci(a1, a2);
aoqi@0 516 }
aoqi@0 517 end = System.currentTimeMillis();
aoqi@0 518 System.out.println("test_2ci: " + (end - start));
aoqi@0 519 start = System.currentTimeMillis();
aoqi@0 520 for (int i=0; i<ITERS; i++) {
aoqi@0 521 test_2vi(a1, a2, (byte)123, (byte)103);
aoqi@0 522 }
aoqi@0 523 end = System.currentTimeMillis();
aoqi@0 524 System.out.println("test_2vi: " + (end - start));
aoqi@0 525
aoqi@0 526 start = System.currentTimeMillis();
aoqi@0 527 for (int i=0; i<ITERS; i++) {
aoqi@0 528 test_ci_neg(a1);
aoqi@0 529 }
aoqi@0 530 end = System.currentTimeMillis();
aoqi@0 531 System.out.println("test_ci_neg: " + (end - start));
aoqi@0 532 start = System.currentTimeMillis();
aoqi@0 533 for (int i=0; i<ITERS; i++) {
aoqi@0 534 test_vi_neg(a2, (byte)123);
aoqi@0 535 }
aoqi@0 536 end = System.currentTimeMillis();
aoqi@0 537 System.out.println("test_vi_neg: " + (end - start));
aoqi@0 538 start = System.currentTimeMillis();
aoqi@0 539 for (int i=0; i<ITERS; i++) {
aoqi@0 540 test_cp_neg(a1, a2);
aoqi@0 541 }
aoqi@0 542 end = System.currentTimeMillis();
aoqi@0 543 System.out.println("test_cp_neg: " + (end - start));
aoqi@0 544 start = System.currentTimeMillis();
aoqi@0 545 for (int i=0; i<ITERS; i++) {
aoqi@0 546 test_2ci_neg(a1, a2);
aoqi@0 547 }
aoqi@0 548 end = System.currentTimeMillis();
aoqi@0 549 System.out.println("test_2ci_neg: " + (end - start));
aoqi@0 550 start = System.currentTimeMillis();
aoqi@0 551 for (int i=0; i<ITERS; i++) {
aoqi@0 552 test_2vi_neg(a1, a2, (byte)123, (byte)103);
aoqi@0 553 }
aoqi@0 554 end = System.currentTimeMillis();
aoqi@0 555 System.out.println("test_2vi_neg: " + (end - start));
aoqi@0 556
aoqi@0 557 start = System.currentTimeMillis();
aoqi@0 558 for (int i=0; i<ITERS; i++) {
aoqi@0 559 test_ci_oppos(a1);
aoqi@0 560 }
aoqi@0 561 end = System.currentTimeMillis();
aoqi@0 562 System.out.println("test_ci_oppos: " + (end - start));
aoqi@0 563 start = System.currentTimeMillis();
aoqi@0 564 for (int i=0; i<ITERS; i++) {
aoqi@0 565 test_vi_oppos(a2, (byte)123);
aoqi@0 566 }
aoqi@0 567 end = System.currentTimeMillis();
aoqi@0 568 System.out.println("test_vi_oppos: " + (end - start));
aoqi@0 569 start = System.currentTimeMillis();
aoqi@0 570 for (int i=0; i<ITERS; i++) {
aoqi@0 571 test_cp_oppos(a1, a2);
aoqi@0 572 }
aoqi@0 573 end = System.currentTimeMillis();
aoqi@0 574 System.out.println("test_cp_oppos: " + (end - start));
aoqi@0 575 start = System.currentTimeMillis();
aoqi@0 576 for (int i=0; i<ITERS; i++) {
aoqi@0 577 test_2ci_oppos(a1, a2);
aoqi@0 578 }
aoqi@0 579 end = System.currentTimeMillis();
aoqi@0 580 System.out.println("test_2ci_oppos: " + (end - start));
aoqi@0 581 start = System.currentTimeMillis();
aoqi@0 582 for (int i=0; i<ITERS; i++) {
aoqi@0 583 test_2vi_oppos(a1, a2, (byte)123, (byte)103);
aoqi@0 584 }
aoqi@0 585 end = System.currentTimeMillis();
aoqi@0 586 System.out.println("test_2vi_oppos: " + (end - start));
aoqi@0 587
aoqi@0 588 start = System.currentTimeMillis();
aoqi@0 589 for (int i=0; i<ITERS; i++) {
aoqi@0 590 test_ci_off(a1);
aoqi@0 591 }
aoqi@0 592 end = System.currentTimeMillis();
aoqi@0 593 System.out.println("test_ci_off: " + (end - start));
aoqi@0 594 start = System.currentTimeMillis();
aoqi@0 595 for (int i=0; i<ITERS; i++) {
aoqi@0 596 test_vi_off(a2, (byte)123);
aoqi@0 597 }
aoqi@0 598 end = System.currentTimeMillis();
aoqi@0 599 System.out.println("test_vi_off: " + (end - start));
aoqi@0 600 start = System.currentTimeMillis();
aoqi@0 601 for (int i=0; i<ITERS; i++) {
aoqi@0 602 test_cp_off(a1, a2);
aoqi@0 603 }
aoqi@0 604 end = System.currentTimeMillis();
aoqi@0 605 System.out.println("test_cp_off: " + (end - start));
aoqi@0 606 start = System.currentTimeMillis();
aoqi@0 607 for (int i=0; i<ITERS; i++) {
aoqi@0 608 test_2ci_off(a1, a2);
aoqi@0 609 }
aoqi@0 610 end = System.currentTimeMillis();
aoqi@0 611 System.out.println("test_2ci_off: " + (end - start));
aoqi@0 612 start = System.currentTimeMillis();
aoqi@0 613 for (int i=0; i<ITERS; i++) {
aoqi@0 614 test_2vi_off(a1, a2, (byte)123, (byte)103);
aoqi@0 615 }
aoqi@0 616 end = System.currentTimeMillis();
aoqi@0 617 System.out.println("test_2vi_off: " + (end - start));
aoqi@0 618
aoqi@0 619 start = System.currentTimeMillis();
aoqi@0 620 for (int i=0; i<ITERS; i++) {
aoqi@0 621 test_ci_inv(a1, OFFSET);
aoqi@0 622 }
aoqi@0 623 end = System.currentTimeMillis();
aoqi@0 624 System.out.println("test_ci_inv: " + (end - start));
aoqi@0 625 start = System.currentTimeMillis();
aoqi@0 626 for (int i=0; i<ITERS; i++) {
aoqi@0 627 test_vi_inv(a2, (byte)123, OFFSET);
aoqi@0 628 }
aoqi@0 629 end = System.currentTimeMillis();
aoqi@0 630 System.out.println("test_vi_inv: " + (end - start));
aoqi@0 631 start = System.currentTimeMillis();
aoqi@0 632 for (int i=0; i<ITERS; i++) {
aoqi@0 633 test_cp_inv(a1, a2, OFFSET);
aoqi@0 634 }
aoqi@0 635 end = System.currentTimeMillis();
aoqi@0 636 System.out.println("test_cp_inv: " + (end - start));
aoqi@0 637 start = System.currentTimeMillis();
aoqi@0 638 for (int i=0; i<ITERS; i++) {
aoqi@0 639 test_2ci_inv(a1, a2, OFFSET);
aoqi@0 640 }
aoqi@0 641 end = System.currentTimeMillis();
aoqi@0 642 System.out.println("test_2ci_inv: " + (end - start));
aoqi@0 643 start = System.currentTimeMillis();
aoqi@0 644 for (int i=0; i<ITERS; i++) {
aoqi@0 645 test_2vi_inv(a1, a2, (byte)123, (byte)103, OFFSET);
aoqi@0 646 }
aoqi@0 647 end = System.currentTimeMillis();
aoqi@0 648 System.out.println("test_2vi_inv: " + (end - start));
aoqi@0 649
aoqi@0 650 start = System.currentTimeMillis();
aoqi@0 651 for (int i=0; i<ITERS; i++) {
aoqi@0 652 test_ci_scl(a1);
aoqi@0 653 }
aoqi@0 654 end = System.currentTimeMillis();
aoqi@0 655 System.out.println("test_ci_scl: " + (end - start));
aoqi@0 656 start = System.currentTimeMillis();
aoqi@0 657 for (int i=0; i<ITERS; i++) {
aoqi@0 658 test_vi_scl(a2, (byte)123);
aoqi@0 659 }
aoqi@0 660 end = System.currentTimeMillis();
aoqi@0 661 System.out.println("test_vi_scl: " + (end - start));
aoqi@0 662 start = System.currentTimeMillis();
aoqi@0 663 for (int i=0; i<ITERS; i++) {
aoqi@0 664 test_cp_scl(a1, a2);
aoqi@0 665 }
aoqi@0 666 end = System.currentTimeMillis();
aoqi@0 667 System.out.println("test_cp_scl: " + (end - start));
aoqi@0 668 start = System.currentTimeMillis();
aoqi@0 669 for (int i=0; i<ITERS; i++) {
aoqi@0 670 test_2ci_scl(a1, a2);
aoqi@0 671 }
aoqi@0 672 end = System.currentTimeMillis();
aoqi@0 673 System.out.println("test_2ci_scl: " + (end - start));
aoqi@0 674 start = System.currentTimeMillis();
aoqi@0 675 for (int i=0; i<ITERS; i++) {
aoqi@0 676 test_2vi_scl(a1, a2, (byte)123, (byte)103);
aoqi@0 677 }
aoqi@0 678 end = System.currentTimeMillis();
aoqi@0 679 System.out.println("test_2vi_scl: " + (end - start));
aoqi@0 680
aoqi@0 681 start = System.currentTimeMillis();
aoqi@0 682 for (int i=0; i<ITERS; i++) {
aoqi@0 683 test_cp_alndst(a1, a2);
aoqi@0 684 }
aoqi@0 685 end = System.currentTimeMillis();
aoqi@0 686 System.out.println("test_cp_alndst: " + (end - start));
aoqi@0 687 start = System.currentTimeMillis();
aoqi@0 688 for (int i=0; i<ITERS; i++) {
aoqi@0 689 test_cp_alnsrc(a1, a2);
aoqi@0 690 }
aoqi@0 691 end = System.currentTimeMillis();
aoqi@0 692 System.out.println("test_cp_alnsrc: " + (end - start));
aoqi@0 693 start = System.currentTimeMillis();
aoqi@0 694 for (int i=0; i<ITERS; i++) {
aoqi@0 695 test_2ci_aln(a1, a2);
aoqi@0 696 }
aoqi@0 697 end = System.currentTimeMillis();
aoqi@0 698 System.out.println("test_2ci_aln: " + (end - start));
aoqi@0 699 start = System.currentTimeMillis();
aoqi@0 700 for (int i=0; i<ITERS; i++) {
aoqi@0 701 test_2vi_aln(a1, a2, (byte)123, (byte)103);
aoqi@0 702 }
aoqi@0 703 end = System.currentTimeMillis();
aoqi@0 704 System.out.println("test_2vi_aln: " + (end - start));
aoqi@0 705
aoqi@0 706 start = System.currentTimeMillis();
aoqi@0 707 for (int i=0; i<ITERS; i++) {
aoqi@0 708 test_cp_unalndst(a1, a2);
aoqi@0 709 }
aoqi@0 710 end = System.currentTimeMillis();
aoqi@0 711 System.out.println("test_cp_unalndst: " + (end - start));
aoqi@0 712 start = System.currentTimeMillis();
aoqi@0 713 for (int i=0; i<ITERS; i++) {
aoqi@0 714 test_cp_unalnsrc(a1, a2);
aoqi@0 715 }
aoqi@0 716 end = System.currentTimeMillis();
aoqi@0 717 System.out.println("test_cp_unalnsrc: " + (end - start));
aoqi@0 718 start = System.currentTimeMillis();
aoqi@0 719 for (int i=0; i<ITERS; i++) {
aoqi@0 720 test_2ci_unaln(a1, a2);
aoqi@0 721 }
aoqi@0 722 end = System.currentTimeMillis();
aoqi@0 723 System.out.println("test_2ci_unaln: " + (end - start));
aoqi@0 724 start = System.currentTimeMillis();
aoqi@0 725 for (int i=0; i<ITERS; i++) {
aoqi@0 726 test_2vi_unaln(a1, a2, (byte)123, (byte)103);
aoqi@0 727 }
aoqi@0 728 end = System.currentTimeMillis();
aoqi@0 729 System.out.println("test_2vi_unaln: " + (end - start));
aoqi@0 730
aoqi@0 731 return errn;
aoqi@0 732 }
aoqi@0 733
aoqi@0 734 static void test_ci(byte[] a) {
aoqi@0 735 for (int i = 0; i < a.length; i+=1) {
aoqi@0 736 a[i] = -123;
aoqi@0 737 }
aoqi@0 738 }
aoqi@0 739 static void test_vi(byte[] a, byte b) {
aoqi@0 740 for (int i = 0; i < a.length; i+=1) {
aoqi@0 741 a[i] = b;
aoqi@0 742 }
aoqi@0 743 }
aoqi@0 744 static void test_cp(byte[] a, byte[] b) {
aoqi@0 745 for (int i = 0; i < a.length; i+=1) {
aoqi@0 746 a[i] = b[i];
aoqi@0 747 }
aoqi@0 748 }
aoqi@0 749 static void test_2ci(byte[] a, byte[] b) {
aoqi@0 750 for (int i = 0; i < a.length; i+=1) {
aoqi@0 751 a[i] = -123;
aoqi@0 752 b[i] = -103;
aoqi@0 753 }
aoqi@0 754 }
aoqi@0 755 static void test_2vi(byte[] a, byte[] b, byte c, byte d) {
aoqi@0 756 for (int i = 0; i < a.length; i+=1) {
aoqi@0 757 a[i] = c;
aoqi@0 758 b[i] = d;
aoqi@0 759 }
aoqi@0 760 }
aoqi@0 761 static void test_ci_neg(byte[] a) {
aoqi@0 762 for (int i = a.length-1; i >= 0; i-=1) {
aoqi@0 763 a[i] = -123;
aoqi@0 764 }
aoqi@0 765 }
aoqi@0 766 static void test_vi_neg(byte[] a, byte b) {
aoqi@0 767 for (int i = a.length-1; i >= 0; i-=1) {
aoqi@0 768 a[i] = b;
aoqi@0 769 }
aoqi@0 770 }
aoqi@0 771 static void test_cp_neg(byte[] a, byte[] b) {
aoqi@0 772 for (int i = a.length-1; i >= 0; i-=1) {
aoqi@0 773 a[i] = b[i];
aoqi@0 774 }
aoqi@0 775 }
aoqi@0 776 static void test_2ci_neg(byte[] a, byte[] b) {
aoqi@0 777 for (int i = a.length-1; i >= 0; i-=1) {
aoqi@0 778 a[i] = -123;
aoqi@0 779 b[i] = -103;
aoqi@0 780 }
aoqi@0 781 }
aoqi@0 782 static void test_2vi_neg(byte[] a, byte[] b, byte c, byte d) {
aoqi@0 783 for (int i = a.length-1; i >= 0; i-=1) {
aoqi@0 784 a[i] = c;
aoqi@0 785 b[i] = d;
aoqi@0 786 }
aoqi@0 787 }
aoqi@0 788 static void test_ci_oppos(byte[] a) {
aoqi@0 789 int limit = a.length-1;
aoqi@0 790 for (int i = 0; i < a.length; i+=1) {
aoqi@0 791 a[limit-i] = -123;
aoqi@0 792 }
aoqi@0 793 }
aoqi@0 794 static void test_vi_oppos(byte[] a, byte b) {
aoqi@0 795 int limit = a.length-1;
aoqi@0 796 for (int i = limit; i >= 0; i-=1) {
aoqi@0 797 a[limit-i] = b;
aoqi@0 798 }
aoqi@0 799 }
aoqi@0 800 static void test_cp_oppos(byte[] a, byte[] b) {
aoqi@0 801 int limit = a.length-1;
aoqi@0 802 for (int i = 0; i < a.length; i+=1) {
aoqi@0 803 a[i] = b[limit-i];
aoqi@0 804 }
aoqi@0 805 }
aoqi@0 806 static void test_2ci_oppos(byte[] a, byte[] b) {
aoqi@0 807 int limit = a.length-1;
aoqi@0 808 for (int i = 0; i < a.length; i+=1) {
aoqi@0 809 a[limit-i] = -123;
aoqi@0 810 b[i] = -103;
aoqi@0 811 }
aoqi@0 812 }
aoqi@0 813 static void test_2vi_oppos(byte[] a, byte[] b, byte c, byte d) {
aoqi@0 814 int limit = a.length-1;
aoqi@0 815 for (int i = limit; i >= 0; i-=1) {
aoqi@0 816 a[i] = c;
aoqi@0 817 b[limit-i] = d;
aoqi@0 818 }
aoqi@0 819 }
aoqi@0 820 static void test_ci_off(byte[] a) {
aoqi@0 821 for (int i = 0; i < a.length-OFFSET; i+=1) {
aoqi@0 822 a[i+OFFSET] = -123;
aoqi@0 823 }
aoqi@0 824 }
aoqi@0 825 static void test_vi_off(byte[] a, byte b) {
aoqi@0 826 for (int i = 0; i < a.length-OFFSET; i+=1) {
aoqi@0 827 a[i+OFFSET] = b;
aoqi@0 828 }
aoqi@0 829 }
aoqi@0 830 static void test_cp_off(byte[] a, byte[] b) {
aoqi@0 831 for (int i = 0; i < a.length-OFFSET; i+=1) {
aoqi@0 832 a[i+OFFSET] = b[i+OFFSET];
aoqi@0 833 }
aoqi@0 834 }
aoqi@0 835 static void test_2ci_off(byte[] a, byte[] b) {
aoqi@0 836 for (int i = 0; i < a.length-OFFSET; i+=1) {
aoqi@0 837 a[i+OFFSET] = -123;
aoqi@0 838 b[i+OFFSET] = -103;
aoqi@0 839 }
aoqi@0 840 }
aoqi@0 841 static void test_2vi_off(byte[] a, byte[] b, byte c, byte d) {
aoqi@0 842 for (int i = 0; i < a.length-OFFSET; i+=1) {
aoqi@0 843 a[i+OFFSET] = c;
aoqi@0 844 b[i+OFFSET] = d;
aoqi@0 845 }
aoqi@0 846 }
aoqi@0 847 static void test_ci_inv(byte[] a, int k) {
aoqi@0 848 for (int i = 0; i < a.length-k; i+=1) {
aoqi@0 849 a[i+k] = -123;
aoqi@0 850 }
aoqi@0 851 }
aoqi@0 852 static void test_vi_inv(byte[] a, byte b, int k) {
aoqi@0 853 for (int i = 0; i < a.length-k; i+=1) {
aoqi@0 854 a[i+k] = b;
aoqi@0 855 }
aoqi@0 856 }
aoqi@0 857 static void test_cp_inv(byte[] a, byte[] b, int k) {
aoqi@0 858 for (int i = 0; i < a.length-k; i+=1) {
aoqi@0 859 a[i+k] = b[i+k];
aoqi@0 860 }
aoqi@0 861 }
aoqi@0 862 static void test_2ci_inv(byte[] a, byte[] b, int k) {
aoqi@0 863 for (int i = 0; i < a.length-k; i+=1) {
aoqi@0 864 a[i+k] = -123;
aoqi@0 865 b[i+k] = -103;
aoqi@0 866 }
aoqi@0 867 }
aoqi@0 868 static void test_2vi_inv(byte[] a, byte[] b, byte c, byte d, int k) {
aoqi@0 869 for (int i = 0; i < a.length-k; i+=1) {
aoqi@0 870 a[i+k] = c;
aoqi@0 871 b[i+k] = d;
aoqi@0 872 }
aoqi@0 873 }
aoqi@0 874 static void test_ci_scl(byte[] a) {
aoqi@0 875 for (int i = 0; i*SCALE < a.length; i+=1) {
aoqi@0 876 a[i*SCALE] = -123;
aoqi@0 877 }
aoqi@0 878 }
aoqi@0 879 static void test_vi_scl(byte[] a, byte b) {
aoqi@0 880 for (int i = 0; i*SCALE < a.length; i+=1) {
aoqi@0 881 a[i*SCALE] = b;
aoqi@0 882 }
aoqi@0 883 }
aoqi@0 884 static void test_cp_scl(byte[] a, byte[] b) {
aoqi@0 885 for (int i = 0; i*SCALE < a.length; i+=1) {
aoqi@0 886 a[i*SCALE] = b[i*SCALE];
aoqi@0 887 }
aoqi@0 888 }
aoqi@0 889 static void test_2ci_scl(byte[] a, byte[] b) {
aoqi@0 890 for (int i = 0; i*SCALE < a.length; i+=1) {
aoqi@0 891 a[i*SCALE] = -123;
aoqi@0 892 b[i*SCALE] = -103;
aoqi@0 893 }
aoqi@0 894 }
aoqi@0 895 static void test_2vi_scl(byte[] a, byte[] b, byte c, byte d) {
aoqi@0 896 for (int i = 0; i*SCALE < a.length; i+=1) {
aoqi@0 897 a[i*SCALE] = c;
aoqi@0 898 b[i*SCALE] = d;
aoqi@0 899 }
aoqi@0 900 }
aoqi@0 901 static void test_cp_alndst(byte[] a, byte[] b) {
aoqi@0 902 for (int i = 0; i < a.length-ALIGN_OFF; i+=1) {
aoqi@0 903 a[i+ALIGN_OFF] = b[i];
aoqi@0 904 }
aoqi@0 905 }
aoqi@0 906 static void test_cp_alnsrc(byte[] a, byte[] b) {
aoqi@0 907 for (int i = 0; i < a.length-ALIGN_OFF; i+=1) {
aoqi@0 908 a[i] = b[i+ALIGN_OFF];
aoqi@0 909 }
aoqi@0 910 }
aoqi@0 911 static void test_2ci_aln(byte[] a, byte[] b) {
aoqi@0 912 for (int i = 0; i < a.length-ALIGN_OFF; i+=1) {
aoqi@0 913 a[i+ALIGN_OFF] = -123;
aoqi@0 914 b[i] = -103;
aoqi@0 915 }
aoqi@0 916 }
aoqi@0 917 static void test_2vi_aln(byte[] a, byte[] b, byte c, byte d) {
aoqi@0 918 for (int i = 0; i < a.length-ALIGN_OFF; i+=1) {
aoqi@0 919 a[i] = c;
aoqi@0 920 b[i+ALIGN_OFF] = d;
aoqi@0 921 }
aoqi@0 922 }
aoqi@0 923 static void test_cp_unalndst(byte[] a, byte[] b) {
aoqi@0 924 for (int i = 0; i < a.length-UNALIGN_OFF; i+=1) {
aoqi@0 925 a[i+UNALIGN_OFF] = b[i];
aoqi@0 926 }
aoqi@0 927 }
aoqi@0 928 static void test_cp_unalnsrc(byte[] a, byte[] b) {
aoqi@0 929 for (int i = 0; i < a.length-UNALIGN_OFF; i+=1) {
aoqi@0 930 a[i] = b[i+UNALIGN_OFF];
aoqi@0 931 }
aoqi@0 932 }
aoqi@0 933 static void test_2ci_unaln(byte[] a, byte[] b) {
aoqi@0 934 for (int i = 0; i < a.length-UNALIGN_OFF; i+=1) {
aoqi@0 935 a[i+UNALIGN_OFF] = -123;
aoqi@0 936 b[i] = -103;
aoqi@0 937 }
aoqi@0 938 }
aoqi@0 939 static void test_2vi_unaln(byte[] a, byte[] b, byte c, byte d) {
aoqi@0 940 for (int i = 0; i < a.length-UNALIGN_OFF; i+=1) {
aoqi@0 941 a[i] = c;
aoqi@0 942 b[i+UNALIGN_OFF] = d;
aoqi@0 943 }
aoqi@0 944 }
aoqi@0 945
aoqi@0 946 static int verify(String text, int i, byte elem, byte val) {
aoqi@0 947 if (elem != val) {
aoqi@0 948 System.err.println(text + "[" + i + "] = " + elem + " != " + val);
aoqi@0 949 return 1;
aoqi@0 950 }
aoqi@0 951 return 0;
aoqi@0 952 }
aoqi@0 953 }

mercurial