1.1 --- a/test/compiler/6340864/TestLongVect.java Mon Oct 22 16:56:03 2012 -0700 1.2 +++ b/test/compiler/6340864/TestLongVect.java Tue Oct 23 13:06:37 2012 -0700 1.3 @@ -73,6 +73,7 @@ 1.4 test_subc(a0, a1); 1.5 test_subv(a0, a1, (long)VALUE); 1.6 test_suba(a0, a1, a2); 1.7 + 1.8 test_mulc(a0, a1); 1.9 test_mulv(a0, a1, (long)VALUE); 1.10 test_mula(a0, a1, a2); 1.11 @@ -85,6 +86,7 @@ 1.12 test_divc_n(a0, a1); 1.13 test_divv(a0, a1, (long)-VALUE); 1.14 test_diva(a0, a1, a3); 1.15 + 1.16 test_andc(a0, a1); 1.17 test_andv(a0, a1, (long)BIT_MASK); 1.18 test_anda(a0, a1, a4); 1.19 @@ -94,30 +96,48 @@ 1.20 test_xorc(a0, a1); 1.21 test_xorv(a0, a1, (long)BIT_MASK); 1.22 test_xora(a0, a1, a4); 1.23 + 1.24 test_sllc(a0, a1); 1.25 test_sllv(a0, a1, VALUE); 1.26 test_srlc(a0, a1); 1.27 test_srlv(a0, a1, VALUE); 1.28 test_srac(a0, a1); 1.29 test_srav(a0, a1, VALUE); 1.30 + 1.31 test_sllc_n(a0, a1); 1.32 test_sllv(a0, a1, -VALUE); 1.33 test_srlc_n(a0, a1); 1.34 test_srlv(a0, a1, -VALUE); 1.35 test_srac_n(a0, a1); 1.36 test_srav(a0, a1, -VALUE); 1.37 + 1.38 test_sllc_o(a0, a1); 1.39 test_sllv(a0, a1, SHIFT); 1.40 test_srlc_o(a0, a1); 1.41 test_srlv(a0, a1, SHIFT); 1.42 test_srac_o(a0, a1); 1.43 test_srav(a0, a1, SHIFT); 1.44 + 1.45 test_sllc_on(a0, a1); 1.46 test_sllv(a0, a1, -SHIFT); 1.47 test_srlc_on(a0, a1); 1.48 test_srlv(a0, a1, -SHIFT); 1.49 test_srac_on(a0, a1); 1.50 test_srav(a0, a1, -SHIFT); 1.51 + 1.52 + test_sllc_add(a0, a1); 1.53 + test_sllv_add(a0, a1, ADD_INIT); 1.54 + test_srlc_add(a0, a1); 1.55 + test_srlv_add(a0, a1, ADD_INIT); 1.56 + test_srac_add(a0, a1); 1.57 + test_srav_add(a0, a1, ADD_INIT); 1.58 + 1.59 + test_sllc_and(a0, a1); 1.60 + test_sllv_and(a0, a1, BIT_MASK); 1.61 + test_srlc_and(a0, a1); 1.62 + test_srlv_and(a0, a1, BIT_MASK); 1.63 + test_srac_and(a0, a1); 1.64 + test_srav_and(a0, a1, BIT_MASK); 1.65 } 1.66 // Test and verify results 1.67 System.out.println("Verification"); 1.68 @@ -354,6 +374,60 @@ 1.69 errn += verify("test_srav_on: ", i, a0[i], (long)((long)(ADD_INIT+i)>>(-SHIFT))); 1.70 } 1.71 1.72 + test_sllc_add(a0, a1); 1.73 + for (int i=0; i<ARRLEN; i++) { 1.74 + errn += verify("test_sllc_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)<<VALUE)); 1.75 + } 1.76 + test_sllv_add(a0, a1, ADD_INIT); 1.77 + for (int i=0; i<ARRLEN; i++) { 1.78 + errn += verify("test_sllv_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)<<VALUE)); 1.79 + } 1.80 + 1.81 + test_srlc_add(a0, a1); 1.82 + for (int i=0; i<ARRLEN; i++) { 1.83 + errn += verify("test_srlc_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)>>>VALUE)); 1.84 + } 1.85 + test_srlv_add(a0, a1, ADD_INIT); 1.86 + for (int i=0; i<ARRLEN; i++) { 1.87 + errn += verify("test_srlv_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)>>>VALUE)); 1.88 + } 1.89 + 1.90 + test_srac_add(a0, a1); 1.91 + for (int i=0; i<ARRLEN; i++) { 1.92 + errn += verify("test_srac_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)>>VALUE)); 1.93 + } 1.94 + test_srav_add(a0, a1, ADD_INIT); 1.95 + for (int i=0; i<ARRLEN; i++) { 1.96 + errn += verify("test_srav_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)>>VALUE)); 1.97 + } 1.98 + 1.99 + test_sllc_and(a0, a1); 1.100 + for (int i=0; i<ARRLEN; i++) { 1.101 + errn += verify("test_sllc_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)<<VALUE)); 1.102 + } 1.103 + test_sllv_and(a0, a1, BIT_MASK); 1.104 + for (int i=0; i<ARRLEN; i++) { 1.105 + errn += verify("test_sllv_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)<<VALUE)); 1.106 + } 1.107 + 1.108 + test_srlc_and(a0, a1); 1.109 + for (int i=0; i<ARRLEN; i++) { 1.110 + errn += verify("test_srlc_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)>>>VALUE)); 1.111 + } 1.112 + test_srlv_and(a0, a1, BIT_MASK); 1.113 + for (int i=0; i<ARRLEN; i++) { 1.114 + errn += verify("test_srlv_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)>>>VALUE)); 1.115 + } 1.116 + 1.117 + test_srac_and(a0, a1); 1.118 + for (int i=0; i<ARRLEN; i++) { 1.119 + errn += verify("test_srac_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)>>VALUE)); 1.120 + } 1.121 + test_srav_and(a0, a1, BIT_MASK); 1.122 + for (int i=0; i<ARRLEN; i++) { 1.123 + errn += verify("test_srav_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)>>VALUE)); 1.124 + } 1.125 + 1.126 } 1.127 1.128 if (errn > 0) 1.129 @@ -696,6 +770,84 @@ 1.130 end = System.currentTimeMillis(); 1.131 System.out.println("test_srav_on: " + (end - start)); 1.132 1.133 + start = System.currentTimeMillis(); 1.134 + for (int i=0; i<ITERS; i++) { 1.135 + test_sllc_add(a0, a1); 1.136 + } 1.137 + end = System.currentTimeMillis(); 1.138 + System.out.println("test_sllc_add: " + (end - start)); 1.139 + start = System.currentTimeMillis(); 1.140 + for (int i=0; i<ITERS; i++) { 1.141 + test_sllv_add(a0, a1, ADD_INIT); 1.142 + } 1.143 + end = System.currentTimeMillis(); 1.144 + System.out.println("test_sllv_add: " + (end - start)); 1.145 + 1.146 + start = System.currentTimeMillis(); 1.147 + for (int i=0; i<ITERS; i++) { 1.148 + test_srlc_add(a0, a1); 1.149 + } 1.150 + end = System.currentTimeMillis(); 1.151 + System.out.println("test_srlc_add: " + (end - start)); 1.152 + start = System.currentTimeMillis(); 1.153 + for (int i=0; i<ITERS; i++) { 1.154 + test_srlv_add(a0, a1, ADD_INIT); 1.155 + } 1.156 + end = System.currentTimeMillis(); 1.157 + System.out.println("test_srlv_add: " + (end - start)); 1.158 + 1.159 + start = System.currentTimeMillis(); 1.160 + for (int i=0; i<ITERS; i++) { 1.161 + test_srac_add(a0, a1); 1.162 + } 1.163 + end = System.currentTimeMillis(); 1.164 + System.out.println("test_srac_add: " + (end - start)); 1.165 + start = System.currentTimeMillis(); 1.166 + for (int i=0; i<ITERS; i++) { 1.167 + test_srav_add(a0, a1, ADD_INIT); 1.168 + } 1.169 + end = System.currentTimeMillis(); 1.170 + System.out.println("test_srav_add: " + (end - start)); 1.171 + 1.172 + start = System.currentTimeMillis(); 1.173 + for (int i=0; i<ITERS; i++) { 1.174 + test_sllc_and(a0, a1); 1.175 + } 1.176 + end = System.currentTimeMillis(); 1.177 + System.out.println("test_sllc_and: " + (end - start)); 1.178 + start = System.currentTimeMillis(); 1.179 + for (int i=0; i<ITERS; i++) { 1.180 + test_sllv_and(a0, a1, BIT_MASK); 1.181 + } 1.182 + end = System.currentTimeMillis(); 1.183 + System.out.println("test_sllv_and: " + (end - start)); 1.184 + 1.185 + start = System.currentTimeMillis(); 1.186 + for (int i=0; i<ITERS; i++) { 1.187 + test_srlc_and(a0, a1); 1.188 + } 1.189 + end = System.currentTimeMillis(); 1.190 + System.out.println("test_srlc_and: " + (end - start)); 1.191 + start = System.currentTimeMillis(); 1.192 + for (int i=0; i<ITERS; i++) { 1.193 + test_srlv_and(a0, a1, BIT_MASK); 1.194 + } 1.195 + end = System.currentTimeMillis(); 1.196 + System.out.println("test_srlv_and: " + (end - start)); 1.197 + 1.198 + start = System.currentTimeMillis(); 1.199 + for (int i=0; i<ITERS; i++) { 1.200 + test_srac_and(a0, a1); 1.201 + } 1.202 + end = System.currentTimeMillis(); 1.203 + System.out.println("test_srac_and: " + (end - start)); 1.204 + start = System.currentTimeMillis(); 1.205 + for (int i=0; i<ITERS; i++) { 1.206 + test_srav_and(a0, a1, BIT_MASK); 1.207 + } 1.208 + end = System.currentTimeMillis(); 1.209 + System.out.println("test_srav_and: " + (end - start)); 1.210 + 1.211 return errn; 1.212 } 1.213 1.214 @@ -854,6 +1006,26 @@ 1.215 a0[i] = (long)(a1[i]<<b); 1.216 } 1.217 } 1.218 + static void test_sllc_add(long[] a0, long[] a1) { 1.219 + for (int i = 0; i < a0.length; i+=1) { 1.220 + a0[i] = (long)((a1[i] + ADD_INIT)<<VALUE); 1.221 + } 1.222 + } 1.223 + static void test_sllv_add(long[] a0, long[] a1, long b) { 1.224 + for (int i = 0; i < a0.length; i+=1) { 1.225 + a0[i] = (long)((a1[i] + b)<<VALUE); 1.226 + } 1.227 + } 1.228 + static void test_sllc_and(long[] a0, long[] a1) { 1.229 + for (int i = 0; i < a0.length; i+=1) { 1.230 + a0[i] = (long)((a1[i] & BIT_MASK)<<VALUE); 1.231 + } 1.232 + } 1.233 + static void test_sllv_and(long[] a0, long[] a1, long b) { 1.234 + for (int i = 0; i < a0.length; i+=1) { 1.235 + a0[i] = (long)((a1[i] & b)<<VALUE); 1.236 + } 1.237 + } 1.238 1.239 static void test_srlc(long[] a0, long[] a1) { 1.240 for (int i = 0; i < a0.length; i+=1) { 1.241 @@ -880,6 +1052,26 @@ 1.242 a0[i] = (long)(a1[i]>>>b); 1.243 } 1.244 } 1.245 + static void test_srlc_add(long[] a0, long[] a1) { 1.246 + for (int i = 0; i < a0.length; i+=1) { 1.247 + a0[i] = (long)((a1[i] + ADD_INIT)>>>VALUE); 1.248 + } 1.249 + } 1.250 + static void test_srlv_add(long[] a0, long[] a1, long b) { 1.251 + for (int i = 0; i < a0.length; i+=1) { 1.252 + a0[i] = (long)((a1[i] + b)>>>VALUE); 1.253 + } 1.254 + } 1.255 + static void test_srlc_and(long[] a0, long[] a1) { 1.256 + for (int i = 0; i < a0.length; i+=1) { 1.257 + a0[i] = (long)((a1[i] & BIT_MASK)>>>VALUE); 1.258 + } 1.259 + } 1.260 + static void test_srlv_and(long[] a0, long[] a1, long b) { 1.261 + for (int i = 0; i < a0.length; i+=1) { 1.262 + a0[i] = (long)((a1[i] & b)>>>VALUE); 1.263 + } 1.264 + } 1.265 1.266 static void test_srac(long[] a0, long[] a1) { 1.267 for (int i = 0; i < a0.length; i+=1) { 1.268 @@ -906,6 +1098,26 @@ 1.269 a0[i] = (long)(a1[i]>>b); 1.270 } 1.271 } 1.272 + static void test_srac_add(long[] a0, long[] a1) { 1.273 + for (int i = 0; i < a0.length; i+=1) { 1.274 + a0[i] = (long)((a1[i] + ADD_INIT)>>VALUE); 1.275 + } 1.276 + } 1.277 + static void test_srav_add(long[] a0, long[] a1, long b) { 1.278 + for (int i = 0; i < a0.length; i+=1) { 1.279 + a0[i] = (long)((a1[i] + b)>>VALUE); 1.280 + } 1.281 + } 1.282 + static void test_srac_and(long[] a0, long[] a1) { 1.283 + for (int i = 0; i < a0.length; i+=1) { 1.284 + a0[i] = (long)((a1[i] & BIT_MASK)>>VALUE); 1.285 + } 1.286 + } 1.287 + static void test_srav_and(long[] a0, long[] a1, long b) { 1.288 + for (int i = 0; i < a0.length; i+=1) { 1.289 + a0[i] = (long)((a1[i] & b)>>VALUE); 1.290 + } 1.291 + } 1.292 1.293 static int verify(String text, int i, long elem, long val) { 1.294 if (elem != val) {