825 uint64_t b = 0xFFFFFFFFULL ^ a;
826 uint64_t c = 0xFFFFFFFFULL ^ (
x |
y);
827 uint64_t d =
x & (
y ^ 0xFFFFFFFFULL);
831 C = ((c >> 1) ^ (b & (d >> 1))) ^ c;
832 D = ((a & (c >> 1)) ^ (d >> 1)) ^ d;
841 A = ((a & (a >> 2)) ^ (b & (b >> 2)));
842 B = ((a & (b >> 2)) ^ (b & ((a ^ b) >> 2)));
843 C ^= ((a & (c >> 2)) ^ (b & (d >> 2)));
844 D ^= ((b & (c >> 2)) ^ ((a ^ b) & (d >> 2)));
853 A = ((a & (a >> 4)) ^ (b & (b >> 4)));
854 B = ((a & (b >> 4)) ^ (b & ((a ^ b) >> 4)));
855 C ^= ((a & (c >> 4)) ^ (b & (d >> 4)));
856 D ^= ((b & (c >> 4)) ^ ((a ^ b) & (d >> 4)));
865 A = ((a & (a >> 8)) ^ (b & (b >> 8)));
866 B = ((a & (b >> 8)) ^ (b & ((a ^ b) >> 8)));
867 C ^= ((a & (c >> 8)) ^ (b & (d >> 8)));
868 D ^= ((b & (c >> 8)) ^ ((a ^ b) & (d >> 8)));
877 C ^= ((a & (c >> 16)) ^ (b & (d >> 16)));
878 D ^= ((b & (c >> 16)) ^ ((a ^ b) & (d >> 16)));
882 uint64_t a = C ^ (C >> 1);
883 uint64_t b = D ^ (D >> 1);
887 uint64_t i1 = b | (0xFFFFFFFFULL ^ (i0 | a));
static uint64_t uint64_interleave_2(uint64_t x, uint64_t y)