1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/test/compiler/7200264/TestIntVect.java Wed Apr 27 01:25:04 2016 +0800 1.3 @@ -0,0 +1,650 @@ 1.4 +/* 1.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. 1.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.7 + * 1.8 + * This code is free software; you can redistribute it and/or modify it 1.9 + * under the terms of the GNU General Public License version 2 only, as 1.10 + * published by the Free Software Foundation. 1.11 + * 1.12 + * This code is distributed in the hope that it will be useful, but WITHOUT 1.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1.14 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1.15 + * version 2 for more details (a copy is included in the LICENSE file that 1.16 + * accompanied this code). 1.17 + * 1.18 + * You should have received a copy of the GNU General Public License version 1.19 + * 2 along with this work; if not, write to the Free Software Foundation, 1.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 1.21 + * 1.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 1.23 + * or visit www.oracle.com if you need additional information or have any 1.24 + * questions. 1.25 + * 1.26 + */ 1.27 + 1.28 +/** 1.29 + * @test 1.30 + * @bug 7200264 1.31 + * @summary 7192963 changes disabled shift vectors 1.32 + * 1.33 + * @run shell Test7200264.sh 1.34 + */ 1.35 + 1.36 +/* 1.37 + * Copy of test/compiler/6340864/TestIntVect.java without performance tests. 1.38 + */ 1.39 +public class TestIntVect { 1.40 + private static final int ARRLEN = 997; 1.41 + private static final int ITERS = 11000; 1.42 + private static final int ADD_INIT = Integer.MAX_VALUE-500; 1.43 + private static final int BIT_MASK = 0xEC80F731; 1.44 + private static final int VALUE = 15; 1.45 + private static final int SHIFT = 32; 1.46 + 1.47 + public static void main(String args[]) { 1.48 + System.out.println("Testing Integer vectors"); 1.49 + int errn = test(); 1.50 + if (errn > 0) { 1.51 + System.err.println("FAILED: " + errn + " errors"); 1.52 + System.exit(97); 1.53 + } 1.54 + System.out.println("PASSED"); 1.55 + } 1.56 + 1.57 + static int test() { 1.58 + int[] a0 = new int[ARRLEN]; 1.59 + int[] a1 = new int[ARRLEN]; 1.60 + int[] a2 = new int[ARRLEN]; 1.61 + int[] a3 = new int[ARRLEN]; 1.62 + int[] a4 = new int[ARRLEN]; 1.63 + long[] p2 = new long[ARRLEN/2]; 1.64 + // Initialize 1.65 + int gold_sum = 0; 1.66 + for (int i=0; i<ARRLEN; i++) { 1.67 + int val = (int)(ADD_INIT+i); 1.68 + gold_sum += val; 1.69 + a1[i] = val; 1.70 + a2[i] = (int)VALUE; 1.71 + a3[i] = (int)-VALUE; 1.72 + a4[i] = (int)BIT_MASK; 1.73 + } 1.74 + System.out.println("Warmup"); 1.75 + for (int i=0; i<ITERS; i++) { 1.76 + test_sum(a1); 1.77 + test_addc(a0, a1); 1.78 + test_addv(a0, a1, (int)VALUE); 1.79 + test_adda(a0, a1, a2); 1.80 + test_subc(a0, a1); 1.81 + test_subv(a0, a1, (int)VALUE); 1.82 + test_suba(a0, a1, a2); 1.83 + test_mulc(a0, a1); 1.84 + test_mulv(a0, a1, (int)VALUE); 1.85 + test_mula(a0, a1, a2); 1.86 + test_divc(a0, a1); 1.87 + test_divv(a0, a1, (int)VALUE); 1.88 + test_diva(a0, a1, a2); 1.89 + test_mulc_n(a0, a1); 1.90 + test_mulv(a0, a1, (int)-VALUE); 1.91 + test_mula(a0, a1, a3); 1.92 + test_divc_n(a0, a1); 1.93 + test_divv(a0, a1, (int)-VALUE); 1.94 + test_diva(a0, a1, a3); 1.95 + test_andc(a0, a1); 1.96 + test_andv(a0, a1, (int)BIT_MASK); 1.97 + test_anda(a0, a1, a4); 1.98 + test_orc(a0, a1); 1.99 + test_orv(a0, a1, (int)BIT_MASK); 1.100 + test_ora(a0, a1, a4); 1.101 + test_xorc(a0, a1); 1.102 + test_xorv(a0, a1, (int)BIT_MASK); 1.103 + test_xora(a0, a1, a4); 1.104 + test_sllc(a0, a1); 1.105 + test_sllv(a0, a1, VALUE); 1.106 + test_srlc(a0, a1); 1.107 + test_srlv(a0, a1, VALUE); 1.108 + test_srac(a0, a1); 1.109 + test_srav(a0, a1, VALUE); 1.110 + test_sllc_n(a0, a1); 1.111 + test_sllv(a0, a1, -VALUE); 1.112 + test_srlc_n(a0, a1); 1.113 + test_srlv(a0, a1, -VALUE); 1.114 + test_srac_n(a0, a1); 1.115 + test_srav(a0, a1, -VALUE); 1.116 + test_sllc_o(a0, a1); 1.117 + test_sllv(a0, a1, SHIFT); 1.118 + test_srlc_o(a0, a1); 1.119 + test_srlv(a0, a1, SHIFT); 1.120 + test_srac_o(a0, a1); 1.121 + test_srav(a0, a1, SHIFT); 1.122 + test_sllc_on(a0, a1); 1.123 + test_sllv(a0, a1, -SHIFT); 1.124 + test_srlc_on(a0, a1); 1.125 + test_srlv(a0, a1, -SHIFT); 1.126 + test_srac_on(a0, a1); 1.127 + test_srav(a0, a1, -SHIFT); 1.128 + test_pack2(p2, a1); 1.129 + test_unpack2(a0, p2); 1.130 + test_pack2_swap(p2, a1); 1.131 + test_unpack2_swap(a0, p2); 1.132 + } 1.133 + // Test and verify results 1.134 + System.out.println("Verification"); 1.135 + int errn = 0; 1.136 + { 1.137 + int sum = test_sum(a1); 1.138 + if (sum != gold_sum) { 1.139 + System.err.println("test_sum: " + sum + " != " + gold_sum); 1.140 + errn++; 1.141 + } 1.142 + 1.143 + test_addc(a0, a1); 1.144 + for (int i=0; i<ARRLEN; i++) { 1.145 + errn += verify("test_addc: ", i, a0[i], (int)((int)(ADD_INIT+i)+VALUE)); 1.146 + } 1.147 + test_addv(a0, a1, (int)VALUE); 1.148 + for (int i=0; i<ARRLEN; i++) { 1.149 + errn += verify("test_addv: ", i, a0[i], (int)((int)(ADD_INIT+i)+VALUE)); 1.150 + } 1.151 + test_adda(a0, a1, a2); 1.152 + for (int i=0; i<ARRLEN; i++) { 1.153 + errn += verify("test_adda: ", i, a0[i], (int)((int)(ADD_INIT+i)+VALUE)); 1.154 + } 1.155 + 1.156 + test_subc(a0, a1); 1.157 + for (int i=0; i<ARRLEN; i++) { 1.158 + errn += verify("test_subc: ", i, a0[i], (int)((int)(ADD_INIT+i)-VALUE)); 1.159 + } 1.160 + test_subv(a0, a1, (int)VALUE); 1.161 + for (int i=0; i<ARRLEN; i++) { 1.162 + errn += verify("test_subv: ", i, a0[i], (int)((int)(ADD_INIT+i)-VALUE)); 1.163 + } 1.164 + test_suba(a0, a1, a2); 1.165 + for (int i=0; i<ARRLEN; i++) { 1.166 + errn += verify("test_suba: ", i, a0[i], (int)((int)(ADD_INIT+i)-VALUE)); 1.167 + } 1.168 + 1.169 + test_mulc(a0, a1); 1.170 + for (int i=0; i<ARRLEN; i++) { 1.171 + errn += verify("test_mulc: ", i, a0[i], (int)((int)(ADD_INIT+i)*VALUE)); 1.172 + } 1.173 + test_mulv(a0, a1, (int)VALUE); 1.174 + for (int i=0; i<ARRLEN; i++) { 1.175 + errn += verify("test_mulv: ", i, a0[i], (int)((int)(ADD_INIT+i)*VALUE)); 1.176 + } 1.177 + test_mula(a0, a1, a2); 1.178 + for (int i=0; i<ARRLEN; i++) { 1.179 + errn += verify("test_mula: ", i, a0[i], (int)((int)(ADD_INIT+i)*VALUE)); 1.180 + } 1.181 + 1.182 + test_divc(a0, a1); 1.183 + for (int i=0; i<ARRLEN; i++) { 1.184 + errn += verify("test_divc: ", i, a0[i], (int)((int)(ADD_INIT+i)/VALUE)); 1.185 + } 1.186 + test_divv(a0, a1, (int)VALUE); 1.187 + for (int i=0; i<ARRLEN; i++) { 1.188 + errn += verify("test_divv: ", i, a0[i], (int)((int)(ADD_INIT+i)/VALUE)); 1.189 + } 1.190 + test_diva(a0, a1, a2); 1.191 + for (int i=0; i<ARRLEN; i++) { 1.192 + errn += verify("test_diva: ", i, a0[i], (int)((int)(ADD_INIT+i)/VALUE)); 1.193 + } 1.194 + 1.195 + test_mulc_n(a0, a1); 1.196 + for (int i=0; i<ARRLEN; i++) { 1.197 + errn += verify("test_mulc_n: ", i, a0[i], (int)((int)(ADD_INIT+i)*(-VALUE))); 1.198 + } 1.199 + test_mulv(a0, a1, (int)-VALUE); 1.200 + for (int i=0; i<ARRLEN; i++) { 1.201 + errn += verify("test_mulv_n: ", i, a0[i], (int)((int)(ADD_INIT+i)*(-VALUE))); 1.202 + } 1.203 + test_mula(a0, a1, a3); 1.204 + for (int i=0; i<ARRLEN; i++) { 1.205 + errn += verify("test_mula_n: ", i, a0[i], (int)((int)(ADD_INIT+i)*(-VALUE))); 1.206 + } 1.207 + 1.208 + test_divc_n(a0, a1); 1.209 + for (int i=0; i<ARRLEN; i++) { 1.210 + errn += verify("test_divc_n: ", i, a0[i], (int)((int)(ADD_INIT+i)/(-VALUE))); 1.211 + } 1.212 + test_divv(a0, a1, (int)-VALUE); 1.213 + for (int i=0; i<ARRLEN; i++) { 1.214 + errn += verify("test_divv_n: ", i, a0[i], (int)((int)(ADD_INIT+i)/(-VALUE))); 1.215 + } 1.216 + test_diva(a0, a1, a3); 1.217 + for (int i=0; i<ARRLEN; i++) { 1.218 + errn += verify("test_diva_n: ", i, a0[i], (int)((int)(ADD_INIT+i)/(-VALUE))); 1.219 + } 1.220 + 1.221 + test_andc(a0, a1); 1.222 + for (int i=0; i<ARRLEN; i++) { 1.223 + errn += verify("test_andc: ", i, a0[i], (int)((int)(ADD_INIT+i)&BIT_MASK)); 1.224 + } 1.225 + test_andv(a0, a1, (int)BIT_MASK); 1.226 + for (int i=0; i<ARRLEN; i++) { 1.227 + errn += verify("test_andv: ", i, a0[i], (int)((int)(ADD_INIT+i)&BIT_MASK)); 1.228 + } 1.229 + test_anda(a0, a1, a4); 1.230 + for (int i=0; i<ARRLEN; i++) { 1.231 + errn += verify("test_anda: ", i, a0[i], (int)((int)(ADD_INIT+i)&BIT_MASK)); 1.232 + } 1.233 + 1.234 + test_orc(a0, a1); 1.235 + for (int i=0; i<ARRLEN; i++) { 1.236 + errn += verify("test_orc: ", i, a0[i], (int)((int)(ADD_INIT+i)|BIT_MASK)); 1.237 + } 1.238 + test_orv(a0, a1, (int)BIT_MASK); 1.239 + for (int i=0; i<ARRLEN; i++) { 1.240 + errn += verify("test_orv: ", i, a0[i], (int)((int)(ADD_INIT+i)|BIT_MASK)); 1.241 + } 1.242 + test_ora(a0, a1, a4); 1.243 + for (int i=0; i<ARRLEN; i++) { 1.244 + errn += verify("test_ora: ", i, a0[i], (int)((int)(ADD_INIT+i)|BIT_MASK)); 1.245 + } 1.246 + 1.247 + test_xorc(a0, a1); 1.248 + for (int i=0; i<ARRLEN; i++) { 1.249 + errn += verify("test_xorc: ", i, a0[i], (int)((int)(ADD_INIT+i)^BIT_MASK)); 1.250 + } 1.251 + test_xorv(a0, a1, (int)BIT_MASK); 1.252 + for (int i=0; i<ARRLEN; i++) { 1.253 + errn += verify("test_xorv: ", i, a0[i], (int)((int)(ADD_INIT+i)^BIT_MASK)); 1.254 + } 1.255 + test_xora(a0, a1, a4); 1.256 + for (int i=0; i<ARRLEN; i++) { 1.257 + errn += verify("test_xora: ", i, a0[i], (int)((int)(ADD_INIT+i)^BIT_MASK)); 1.258 + } 1.259 + 1.260 + test_sllc(a0, a1); 1.261 + for (int i=0; i<ARRLEN; i++) { 1.262 + errn += verify("test_sllc: ", i, a0[i], (int)((int)(ADD_INIT+i)<<VALUE)); 1.263 + } 1.264 + test_sllv(a0, a1, VALUE); 1.265 + for (int i=0; i<ARRLEN; i++) { 1.266 + errn += verify("test_sllv: ", i, a0[i], (int)((int)(ADD_INIT+i)<<VALUE)); 1.267 + } 1.268 + 1.269 + test_srlc(a0, a1); 1.270 + for (int i=0; i<ARRLEN; i++) { 1.271 + errn += verify("test_srlc: ", i, a0[i], (int)((int)(ADD_INIT+i)>>>VALUE)); 1.272 + } 1.273 + test_srlv(a0, a1, VALUE); 1.274 + for (int i=0; i<ARRLEN; i++) { 1.275 + errn += verify("test_srlv: ", i, a0[i], (int)((int)(ADD_INIT+i)>>>VALUE)); 1.276 + } 1.277 + 1.278 + test_srac(a0, a1); 1.279 + for (int i=0; i<ARRLEN; i++) { 1.280 + errn += verify("test_srac: ", i, a0[i], (int)((int)(ADD_INIT+i)>>VALUE)); 1.281 + } 1.282 + test_srav(a0, a1, VALUE); 1.283 + for (int i=0; i<ARRLEN; i++) { 1.284 + errn += verify("test_srav: ", i, a0[i], (int)((int)(ADD_INIT+i)>>VALUE)); 1.285 + } 1.286 + 1.287 + test_sllc_n(a0, a1); 1.288 + for (int i=0; i<ARRLEN; i++) { 1.289 + errn += verify("test_sllc_n: ", i, a0[i], (int)((int)(ADD_INIT+i)<<(-VALUE))); 1.290 + } 1.291 + test_sllv(a0, a1, -VALUE); 1.292 + for (int i=0; i<ARRLEN; i++) { 1.293 + errn += verify("test_sllv_n: ", i, a0[i], (int)((int)(ADD_INIT+i)<<(-VALUE))); 1.294 + } 1.295 + 1.296 + test_srlc_n(a0, a1); 1.297 + for (int i=0; i<ARRLEN; i++) { 1.298 + errn += verify("test_srlc_n: ", i, a0[i], (int)((int)(ADD_INIT+i)>>>(-VALUE))); 1.299 + } 1.300 + test_srlv(a0, a1, -VALUE); 1.301 + for (int i=0; i<ARRLEN; i++) { 1.302 + errn += verify("test_srlv_n: ", i, a0[i], (int)((int)(ADD_INIT+i)>>>(-VALUE))); 1.303 + } 1.304 + 1.305 + test_srac_n(a0, a1); 1.306 + for (int i=0; i<ARRLEN; i++) { 1.307 + errn += verify("test_srac_n: ", i, a0[i], (int)((int)(ADD_INIT+i)>>(-VALUE))); 1.308 + } 1.309 + test_srav(a0, a1, -VALUE); 1.310 + for (int i=0; i<ARRLEN; i++) { 1.311 + errn += verify("test_srav_n: ", i, a0[i], (int)((int)(ADD_INIT+i)>>(-VALUE))); 1.312 + } 1.313 + 1.314 + test_sllc_o(a0, a1); 1.315 + for (int i=0; i<ARRLEN; i++) { 1.316 + errn += verify("test_sllc_o: ", i, a0[i], (int)((int)(ADD_INIT+i)<<SHIFT)); 1.317 + } 1.318 + test_sllv(a0, a1, SHIFT); 1.319 + for (int i=0; i<ARRLEN; i++) { 1.320 + errn += verify("test_sllv_o: ", i, a0[i], (int)((int)(ADD_INIT+i)<<SHIFT)); 1.321 + } 1.322 + 1.323 + test_srlc_o(a0, a1); 1.324 + for (int i=0; i<ARRLEN; i++) { 1.325 + errn += verify("test_srlc_o: ", i, a0[i], (int)((int)(ADD_INIT+i)>>>SHIFT)); 1.326 + } 1.327 + test_srlv(a0, a1, SHIFT); 1.328 + for (int i=0; i<ARRLEN; i++) { 1.329 + errn += verify("test_srlv_o: ", i, a0[i], (int)((int)(ADD_INIT+i)>>>SHIFT)); 1.330 + } 1.331 + 1.332 + test_srac_o(a0, a1); 1.333 + for (int i=0; i<ARRLEN; i++) { 1.334 + errn += verify("test_srac_o: ", i, a0[i], (int)((int)(ADD_INIT+i)>>SHIFT)); 1.335 + } 1.336 + test_srav(a0, a1, SHIFT); 1.337 + for (int i=0; i<ARRLEN; i++) { 1.338 + errn += verify("test_srav_o: ", i, a0[i], (int)((int)(ADD_INIT+i)>>SHIFT)); 1.339 + } 1.340 + 1.341 + test_sllc_on(a0, a1); 1.342 + for (int i=0; i<ARRLEN; i++) { 1.343 + errn += verify("test_sllc_on: ", i, a0[i], (int)((int)(ADD_INIT+i)<<(-SHIFT))); 1.344 + } 1.345 + test_sllv(a0, a1, -SHIFT); 1.346 + for (int i=0; i<ARRLEN; i++) { 1.347 + errn += verify("test_sllv_on: ", i, a0[i], (int)((int)(ADD_INIT+i)<<(-SHIFT))); 1.348 + } 1.349 + 1.350 + test_srlc_on(a0, a1); 1.351 + for (int i=0; i<ARRLEN; i++) { 1.352 + errn += verify("test_srlc_on: ", i, a0[i], (int)((int)(ADD_INIT+i)>>>(-SHIFT))); 1.353 + } 1.354 + test_srlv(a0, a1, -SHIFT); 1.355 + for (int i=0; i<ARRLEN; i++) { 1.356 + errn += verify("test_srlv_on: ", i, a0[i], (int)((int)(ADD_INIT+i)>>>(-SHIFT))); 1.357 + } 1.358 + 1.359 + test_srac_on(a0, a1); 1.360 + for (int i=0; i<ARRLEN; i++) { 1.361 + errn += verify("test_srac_on: ", i, a0[i], (int)((int)(ADD_INIT+i)>>(-SHIFT))); 1.362 + } 1.363 + test_srav(a0, a1, -SHIFT); 1.364 + for (int i=0; i<ARRLEN; i++) { 1.365 + errn += verify("test_srav_on: ", i, a0[i], (int)((int)(ADD_INIT+i)>>(-SHIFT))); 1.366 + } 1.367 + 1.368 + test_pack2(p2, a1); 1.369 + for (int i=0; i<ARRLEN/2; i++) { 1.370 + errn += verify("test_pack2: ", i, p2[i], ((long)(ADD_INIT+2*i) & 0xFFFFFFFFl) | ((long)(ADD_INIT+2*i+1) << 32)); 1.371 + } 1.372 + for (int i=0; i<ARRLEN; i++) { 1.373 + a0[i] = -1; 1.374 + } 1.375 + test_unpack2(a0, p2); 1.376 + for (int i=0; i<(ARRLEN&(-2)); i++) { 1.377 + errn += verify("test_unpack2: ", i, a0[i], (ADD_INIT+i)); 1.378 + } 1.379 + 1.380 + test_pack2_swap(p2, a1); 1.381 + for (int i=0; i<ARRLEN/2; i++) { 1.382 + errn += verify("test_pack2_swap: ", i, p2[i], ((long)(ADD_INIT+2*i+1) & 0xFFFFFFFFl) | ((long)(ADD_INIT+2*i) << 32)); 1.383 + } 1.384 + for (int i=0; i<ARRLEN; i++) { 1.385 + a0[i] = -1; 1.386 + } 1.387 + test_unpack2_swap(a0, p2); 1.388 + for (int i=0; i<(ARRLEN&(-2)); i++) { 1.389 + errn += verify("test_unpack2_swap: ", i, a0[i], (ADD_INIT+i)); 1.390 + } 1.391 + 1.392 + } 1.393 + 1.394 + return errn; 1.395 + } 1.396 + 1.397 + static int test_sum(int[] a1) { 1.398 + int sum = 0; 1.399 + for (int i = 0; i < a1.length; i+=1) { 1.400 + sum += a1[i]; 1.401 + } 1.402 + return sum; 1.403 + } 1.404 + 1.405 + static void test_addc(int[] a0, int[] a1) { 1.406 + for (int i = 0; i < a0.length; i+=1) { 1.407 + a0[i] = (int)(a1[i]+VALUE); 1.408 + } 1.409 + } 1.410 + static void test_addv(int[] a0, int[] a1, int b) { 1.411 + for (int i = 0; i < a0.length; i+=1) { 1.412 + a0[i] = (int)(a1[i]+b); 1.413 + } 1.414 + } 1.415 + static void test_adda(int[] a0, int[] a1, int[] a2) { 1.416 + for (int i = 0; i < a0.length; i+=1) { 1.417 + a0[i] = (int)(a1[i]+a2[i]); 1.418 + } 1.419 + } 1.420 + 1.421 + static void test_subc(int[] a0, int[] a1) { 1.422 + for (int i = 0; i < a0.length; i+=1) { 1.423 + a0[i] = (int)(a1[i]-VALUE); 1.424 + } 1.425 + } 1.426 + static void test_subv(int[] a0, int[] a1, int b) { 1.427 + for (int i = 0; i < a0.length; i+=1) { 1.428 + a0[i] = (int)(a1[i]-b); 1.429 + } 1.430 + } 1.431 + static void test_suba(int[] a0, int[] a1, int[] a2) { 1.432 + for (int i = 0; i < a0.length; i+=1) { 1.433 + a0[i] = (int)(a1[i]-a2[i]); 1.434 + } 1.435 + } 1.436 + 1.437 + static void test_mulc(int[] a0, int[] a1) { 1.438 + for (int i = 0; i < a0.length; i+=1) { 1.439 + a0[i] = (int)(a1[i]*VALUE); 1.440 + } 1.441 + } 1.442 + static void test_mulc_n(int[] a0, int[] a1) { 1.443 + for (int i = 0; i < a0.length; i+=1) { 1.444 + a0[i] = (int)(a1[i]*(-VALUE)); 1.445 + } 1.446 + } 1.447 + static void test_mulv(int[] a0, int[] a1, int b) { 1.448 + for (int i = 0; i < a0.length; i+=1) { 1.449 + a0[i] = (int)(a1[i]*b); 1.450 + } 1.451 + } 1.452 + static void test_mula(int[] a0, int[] a1, int[] a2) { 1.453 + for (int i = 0; i < a0.length; i+=1) { 1.454 + a0[i] = (int)(a1[i]*a2[i]); 1.455 + } 1.456 + } 1.457 + 1.458 + static void test_divc(int[] a0, int[] a1) { 1.459 + for (int i = 0; i < a0.length; i+=1) { 1.460 + a0[i] = (int)(a1[i]/VALUE); 1.461 + } 1.462 + } 1.463 + static void test_divc_n(int[] a0, int[] a1) { 1.464 + for (int i = 0; i < a0.length; i+=1) { 1.465 + a0[i] = (int)(a1[i]/(-VALUE)); 1.466 + } 1.467 + } 1.468 + static void test_divv(int[] a0, int[] a1, int b) { 1.469 + for (int i = 0; i < a0.length; i+=1) { 1.470 + a0[i] = (int)(a1[i]/b); 1.471 + } 1.472 + } 1.473 + static void test_diva(int[] a0, int[] a1, int[] a2) { 1.474 + for (int i = 0; i < a0.length; i+=1) { 1.475 + a0[i] = (int)(a1[i]/a2[i]); 1.476 + } 1.477 + } 1.478 + 1.479 + static void test_andc(int[] a0, int[] a1) { 1.480 + for (int i = 0; i < a0.length; i+=1) { 1.481 + a0[i] = (int)(a1[i]&BIT_MASK); 1.482 + } 1.483 + } 1.484 + static void test_andv(int[] a0, int[] a1, int b) { 1.485 + for (int i = 0; i < a0.length; i+=1) { 1.486 + a0[i] = (int)(a1[i]&b); 1.487 + } 1.488 + } 1.489 + static void test_anda(int[] a0, int[] a1, int[] a2) { 1.490 + for (int i = 0; i < a0.length; i+=1) { 1.491 + a0[i] = (int)(a1[i]&a2[i]); 1.492 + } 1.493 + } 1.494 + 1.495 + static void test_orc(int[] a0, int[] a1) { 1.496 + for (int i = 0; i < a0.length; i+=1) { 1.497 + a0[i] = (int)(a1[i]|BIT_MASK); 1.498 + } 1.499 + } 1.500 + static void test_orv(int[] a0, int[] a1, int b) { 1.501 + for (int i = 0; i < a0.length; i+=1) { 1.502 + a0[i] = (int)(a1[i]|b); 1.503 + } 1.504 + } 1.505 + static void test_ora(int[] a0, int[] a1, int[] a2) { 1.506 + for (int i = 0; i < a0.length; i+=1) { 1.507 + a0[i] = (int)(a1[i]|a2[i]); 1.508 + } 1.509 + } 1.510 + 1.511 + static void test_xorc(int[] a0, int[] a1) { 1.512 + for (int i = 0; i < a0.length; i+=1) { 1.513 + a0[i] = (int)(a1[i]^BIT_MASK); 1.514 + } 1.515 + } 1.516 + static void test_xorv(int[] a0, int[] a1, int b) { 1.517 + for (int i = 0; i < a0.length; i+=1) { 1.518 + a0[i] = (int)(a1[i]^b); 1.519 + } 1.520 + } 1.521 + static void test_xora(int[] a0, int[] a1, int[] a2) { 1.522 + for (int i = 0; i < a0.length; i+=1) { 1.523 + a0[i] = (int)(a1[i]^a2[i]); 1.524 + } 1.525 + } 1.526 + 1.527 + static void test_sllc(int[] a0, int[] a1) { 1.528 + for (int i = 0; i < a0.length; i+=1) { 1.529 + a0[i] = (int)(a1[i]<<VALUE); 1.530 + } 1.531 + } 1.532 + static void test_sllc_n(int[] a0, int[] a1) { 1.533 + for (int i = 0; i < a0.length; i+=1) { 1.534 + a0[i] = (int)(a1[i]<<(-VALUE)); 1.535 + } 1.536 + } 1.537 + static void test_sllc_o(int[] a0, int[] a1) { 1.538 + for (int i = 0; i < a0.length; i+=1) { 1.539 + a0[i] = (int)(a1[i]<<SHIFT); 1.540 + } 1.541 + } 1.542 + static void test_sllc_on(int[] a0, int[] a1) { 1.543 + for (int i = 0; i < a0.length; i+=1) { 1.544 + a0[i] = (int)(a1[i]<<(-SHIFT)); 1.545 + } 1.546 + } 1.547 + static void test_sllv(int[] a0, int[] a1, int b) { 1.548 + for (int i = 0; i < a0.length; i+=1) { 1.549 + a0[i] = (int)(a1[i]<<b); 1.550 + } 1.551 + } 1.552 + 1.553 + static void test_srlc(int[] a0, int[] a1) { 1.554 + for (int i = 0; i < a0.length; i+=1) { 1.555 + a0[i] = (int)(a1[i]>>>VALUE); 1.556 + } 1.557 + } 1.558 + static void test_srlc_n(int[] a0, int[] a1) { 1.559 + for (int i = 0; i < a0.length; i+=1) { 1.560 + a0[i] = (int)(a1[i]>>>(-VALUE)); 1.561 + } 1.562 + } 1.563 + static void test_srlc_o(int[] a0, int[] a1) { 1.564 + for (int i = 0; i < a0.length; i+=1) { 1.565 + a0[i] = (int)(a1[i]>>>SHIFT); 1.566 + } 1.567 + } 1.568 + static void test_srlc_on(int[] a0, int[] a1) { 1.569 + for (int i = 0; i < a0.length; i+=1) { 1.570 + a0[i] = (int)(a1[i]>>>(-SHIFT)); 1.571 + } 1.572 + } 1.573 + static void test_srlv(int[] a0, int[] a1, int b) { 1.574 + for (int i = 0; i < a0.length; i+=1) { 1.575 + a0[i] = (int)(a1[i]>>>b); 1.576 + } 1.577 + } 1.578 + 1.579 + static void test_srac(int[] a0, int[] a1) { 1.580 + for (int i = 0; i < a0.length; i+=1) { 1.581 + a0[i] = (int)(a1[i]>>VALUE); 1.582 + } 1.583 + } 1.584 + static void test_srac_n(int[] a0, int[] a1) { 1.585 + for (int i = 0; i < a0.length; i+=1) { 1.586 + a0[i] = (int)(a1[i]>>(-VALUE)); 1.587 + } 1.588 + } 1.589 + static void test_srac_o(int[] a0, int[] a1) { 1.590 + for (int i = 0; i < a0.length; i+=1) { 1.591 + a0[i] = (int)(a1[i]>>SHIFT); 1.592 + } 1.593 + } 1.594 + static void test_srac_on(int[] a0, int[] a1) { 1.595 + for (int i = 0; i < a0.length; i+=1) { 1.596 + a0[i] = (int)(a1[i]>>(-SHIFT)); 1.597 + } 1.598 + } 1.599 + static void test_srav(int[] a0, int[] a1, int b) { 1.600 + for (int i = 0; i < a0.length; i+=1) { 1.601 + a0[i] = (int)(a1[i]>>b); 1.602 + } 1.603 + } 1.604 + 1.605 + static void test_pack2(long[] p2, int[] a1) { 1.606 + if (p2.length*2 > a1.length) return; 1.607 + for (int i = 0; i < p2.length; i+=1) { 1.608 + long l0 = (long)a1[i*2+0]; 1.609 + long l1 = (long)a1[i*2+1]; 1.610 + p2[i] = (l1 << 32) | (l0 & 0xFFFFFFFFl); 1.611 + } 1.612 + } 1.613 + static void test_unpack2(int[] a0, long[] p2) { 1.614 + if (p2.length*2 > a0.length) return; 1.615 + for (int i = 0; i < p2.length; i+=1) { 1.616 + long l = p2[i]; 1.617 + a0[i*2+0] = (int)(l & 0xFFFFFFFFl); 1.618 + a0[i*2+1] = (int)(l >> 32); 1.619 + } 1.620 + } 1.621 + static void test_pack2_swap(long[] p2, int[] a1) { 1.622 + if (p2.length*2 > a1.length) return; 1.623 + for (int i = 0; i < p2.length; i+=1) { 1.624 + long l0 = (long)a1[i*2+0]; 1.625 + long l1 = (long)a1[i*2+1]; 1.626 + p2[i] = (l0 << 32) | (l1 & 0xFFFFFFFFl); 1.627 + } 1.628 + } 1.629 + static void test_unpack2_swap(int[] a0, long[] p2) { 1.630 + if (p2.length*2 > a0.length) return; 1.631 + for (int i = 0; i < p2.length; i+=1) { 1.632 + long l = p2[i]; 1.633 + a0[i*2+0] = (int)(l >> 32); 1.634 + a0[i*2+1] = (int)(l & 0xFFFFFFFFl); 1.635 + } 1.636 + } 1.637 + 1.638 + static int verify(String text, int i, int elem, int val) { 1.639 + if (elem != val) { 1.640 + System.err.println(text + "[" + i + "] = " + elem + " != " + val); 1.641 + return 1; 1.642 + } 1.643 + return 0; 1.644 + } 1.645 + 1.646 + static int verify(String text, int i, long elem, long val) { 1.647 + if (elem != val) { 1.648 + System.err.println(text + "[" + i + "] = " + Long.toHexString(elem) + " != " + Long.toHexString(val)); 1.649 + return 1; 1.650 + } 1.651 + return 0; 1.652 + } 1.653 +}