From: Chris Duncan Date: Thu, 9 Jan 2025 21:39:38 +0000 (-0800) Subject: Deprecate G function. X-Git-Url: https://zoso.dev/?a=commitdiff_plain;h=a01d9d2f29d15967c5a336b43e8874d8e6b21260;p=libnemo.git Deprecate G function. --- diff --git a/src/lib/nano-pow/shaders/gpu-compute.ts b/src/lib/nano-pow/shaders/gpu-compute.ts index 53e19e1..791539a 100644 --- a/src/lib/nano-pow/shaders/gpu-compute.ts +++ b/src/lib/nano-pow/shaders/gpu-compute.ts @@ -18,89 +18,6 @@ struct WORK { */ const BLAKE2B_IV32_1: u32 = 0x6A09E667u; - -/** -* G Mixing function -*/ -fn G ( - va0: ptr, va1: ptr, - vb0: ptr, vb1: ptr, - vc0: ptr, vc1: ptr, - vd0: ptr, vd1: ptr, - mx0: u32, mx1: u32, my0: u32, my1: u32 -) { - var o0: u32; - var o1: u32; - var xor0: u32; - var xor1: u32; - - // a = a + b - o0 = *va0 + *vb0; - o1 = *va1 + *vb1; - o1 = o1 + select(0u, 1u, o0 < *va0); - *va0 = o0; - *va1 = o1; - - // a = a + m[sigma[r][2*i+0]] - o0 = *va0 + mx0; - o1 = *va1 + mx1; - o1 = o1 + select(0u, 1u, o0 < *va0); - *va0 = o0; - *va1 = o1; - - // d = rotr64(d ^ a, 32) - xor0 = *vd0 ^ *va0; - xor1 = *vd1 ^ *va1; - *vd0 = xor1; - *vd1 = xor0; - - // c = c + d - o0 = *vc0 + *vd0; - o1 = *vc1 + *vd1; - o1 = o1 + select(0u, 1u, o0 < *vc0); - *vc0 = o0; - *vc1 = o1; - - // b = rotr64(b ^ c, 24) - xor0 = *vb0 ^ *vc0; - xor1 = *vb1 ^ *vc1; - *vb0 = (xor0 >> 24u) ^ (xor1 << 8u); - *vb1 = (xor1 >> 24u) ^ (xor0 << 8u); - - // a = a + b - o0 = *va0 + *vb0; - o1 = *va1 + *vb1; - o1 = o1 + select(0u, 1u, o0 < *va0); - *va0 = o0; - *va1 = o1; - - // a = a + m[sigma[r][2*i+1]] - o0 = *va0 + my0; - o1 = *va1 + my1; - o1 = o1 + select(0u, 1u, o0 < *va0); - *va0 = o0; - *va1 = o1; - - // d = rotr64(d ^ a, 16) - xor0 = *vd0 ^ *va0; - xor1 = *vd1 ^ *va1; - *vd0 = (xor0 >> 16u) ^ (xor1 << 16u); - *vd1 = (xor1 >> 16u) ^ (xor0 << 16u); - - // c = c + d - o0 = *vc0 + *vd0; - o1 = *vc1 + *vd1; - o1 = o1 + select(0u, 1u, o0 < *vc0); - *vc0 = o0; - *vc1 = o1; - - // b = rotr64(b ^ c, 63) - xor0 = *vb0 ^ *vc0; - xor1 = *vb1 ^ *vc1; - *vb0 = (xor1 >> 31u) ^ (xor0 << 1u); - *vb1 = (xor0 >> 31u) ^ (xor1 << 1u); -} - /** * Main compute function * 8-byte work is split into two 4-byte u32. Low 4 bytes are random u32 from