js/src/jit-test/tests/sunspider/check-bitops-nsieve-bits.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/jit-test/tests/sunspider/check-bitops-nsieve-bits.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,40 @@
     1.4 +// The Great Computer Language Shootout
     1.5 +//  http://shootout.alioth.debian.org
     1.6 +//
     1.7 +//  Contributed by Ian Osgood
     1.8 +
     1.9 +var result = [];
    1.10 +
    1.11 +function pad(n,width) {
    1.12 +  var s = n.toString();
    1.13 +  while (s.length < width) s = ' ' + s;
    1.14 +  return s;
    1.15 +}
    1.16 +
    1.17 +function primes(isPrime, n) {
    1.18 +  var i, count = 0, m = 10000<<n, size = m+31>>5;
    1.19 +
    1.20 +  for (i=0; i<size; i++) isPrime[i] = 0xffffffff;
    1.21 +
    1.22 +  for (i=2; i<m; i++)
    1.23 +    if (isPrime[i>>5] & 1<<(i&31)) {
    1.24 +      for (var j=i+i; j<m; j+=i)
    1.25 +        result.push(isPrime[j>>5] &= ~(1<<(j&31)));
    1.26 +      count++;
    1.27 +    }
    1.28 +}
    1.29 +
    1.30 +function sieve() {
    1.31 +    for (var i = 4; i <= 4; i++) {
    1.32 +        var isPrime = new Array((10000<<i)+31>>5);
    1.33 +        primes(isPrime, i);
    1.34 +    }
    1.35 +}
    1.36 +
    1.37 +sieve();
    1.38 +
    1.39 +var ret = 0;
    1.40 +for (var i = 0; i < result.length; ++i)
    1.41 +  ret += result[i];
    1.42 +
    1.43 +assertEq(ret, -211235557404919)

mercurial