code: private static int merging3_2(int[] buffer, int x) {
  		int cnt1;
  		int cnt2;
  		int cnt = 0;
  		for (int i = x; i < x + 48; i += 6) {
  			cnt1 = buffer[i + 1];
  			cnt2 = buffer[i + 3];
  			final int w = buffer[i + 5];
  			cnt1 = cnt1 - ((cnt1 >>> 1) & 0x55555555) + (w & 0x55555555);
  			cnt2 = cnt2 - ((cnt2 >>> 1) & 0x55555555) + ((w >>> 1) & 0x55555555);
  			cnt1 = (cnt1 & 0x33333333) + ((cnt1 >>> 2) & 0x33333333);
  			cnt1 += (cnt2 & 0x33333333) + ((cnt2 >>> 2) & 0x33333333);
  			cnt += (cnt1 & 0x0F0F0F0F) + ((cnt1 >>> 4) & 0x0F0F0F0F);
  		}
  		cnt = (cnt & 0x00FF00FF) + ((cnt >>> 8) & 0x00FF00FF);
  		cnt += cnt >>> 16;
  		return cnt & 0x00000FFFF;
  	}
docs: used by count_2()