code: private static int merging2(int[] buffer, int x) {
  		int cnt1 = buffer[x];
  		int cnt2 = buffer[x + 1];
  		final int w = buffer[x + 2];
  		cnt1 = cnt1 - ((cnt1 >>> 1) & 0x55555555) + (w & 0x55555555);
  		cnt2 = cnt2 - ((cnt2 >>> 1) & 0x55555555) + ((w >>> 1) & 0x55555555);
  		cnt1 = (cnt1 & 0x33333333) + ((cnt1 >>> 2) & 0x33333333);
  		cnt2 = (cnt2 & 0x33333333) + ((cnt2 >>> 2) & 0x33333333);
  		cnt1 += cnt2;
  		cnt1 = (cnt1 & 0x0F0F0F0F) + ((cnt1 >>> 4) & 0x0F0F0F0F);
  		cnt1 += cnt1 >>> 8;
  		cnt1 += cnt1 >>> 16;
  		return cnt1 & 0x000000FF;
  	}
docs: used by count()