tuple-return

Benchmark created on


Description

test tuple, global variable vs temporary array

Setup

var h$ret1 = 0;

function h$hs_uncheckedShiftLWord64(h,l,n) {
  var rh, rl;
  n &= 63;
  if (n == 0) {
    rh = h;
    rl = l;
  } else if (n === 32) {
    rh = l;
    rl = 0;
  } else if (n < 32) {
    rh = (((h << n) | (l >>> (32 - n)))>>>0);
    rl = ((l << n)>>>0);
  } else {
    rh = ((l << (n - 32))>>>0);
    rl = 0;
  }
  { h$ret1 = (rl); return (rh); };
}

function h$hs_uncheckedShiftLWord64a(h,l,n) {
  var rh, rl;
  n &= 63;
  if (n == 0) {
    rh = h;
    rl = l;
  } else if (n === 32) {
    rh = l;
    rl = 0;
  } else if (n < 32) {
    rh = (((h << n) | (l >>> (32 - n)))>>>0);
    rl = ((l << n)>>>0);
  } else {
    rh = ((l << (n - 32))>>>0);
    rl = 0;
  }
  { return [rh, rl]; };
}

Test runner

Ready to run.

Testing in
TestOps/sec
ret1
var xl = 1, xh = 0;
for(var i=0;i<63;i++) {
	var r = h$hs_uncheckedShiftLWord64(xh, xl, 1);
	xl = h$ret1;
	xh = r;
}
ready
array
var xl = 1, xh = 0;
for(var i=0;i<63;i++) {
	var r = h$hs_uncheckedShiftLWord64a(xh, xl, 1);
	xl = r[1];
	xh = r[0];
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.