test/compiler/6340864/TestLongVect.java

changeset 4204
b2c669fd8114
parent 4001
006050192a5a
child 6876
710a3c8b516e
     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) {

mercurial