From 99dd6e89b97edd3030126b6e505ed14f4d964065 Mon Sep 17 00:00:00 2001
From: Chris Duncan <chris@zoso.dev>
Date: Thu, 9 Jan 2025 09:36:08 -0800
Subject: [PATCH] Inline G mix 7 of round 1.

---
 src/lib/nano-pow/shaders/gpu-compute.ts | 128 ++++++++++++------------
 1 file changed, 66 insertions(+), 62 deletions(-)

diff --git a/src/lib/nano-pow/shaders/gpu-compute.ts b/src/lib/nano-pow/shaders/gpu-compute.ts
index e0952ba..6c904ab 100644
--- a/src/lib/nano-pow/shaders/gpu-compute.ts
+++ b/src/lib/nano-pow/shaders/gpu-compute.ts
@@ -1519,84 +1519,88 @@ fn main(
 
 
 
-		G(&v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, m6, m7);
-	// // a = a + b
-	// o0 = v6 + v8;
-	// o1 = v7 + v9;
-	// if (v6 > 0xFFFFFFFFu - v8) {
-	//  o1 = o1 + 1u;
-	// }
-	// v6 = o0;
-	// v7 = o1;
+	/**
+	* r=1, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29]
+	*/
+
+	// a = a + b
+	o0 = v6 + v8;
+	o1 = v7 + v9;
+	if (v6 > 0xFFFFFFFFu - v8) {
+		o1 = o1 + 1u;
+	}
+	v6 = o0;
+	v7 = o1;
 
 	// // a = a + m[sigma[r][2*i+0]]
+	// // skip since adding 0u does nothing
 	// o0 = v6 + 0u;
 	// o1 = v7 + 0u;
 	// if (v6 > 0xFFFFFFFFu - 0u) {
-	//  o1 = o1 + 1u;
+	// 	o1 = o1 + 1u;
 	// }
 	// v6 = o0;
 	// v7 = o1;
 
-	// // d = rotr64(d ^ a, 32)
-	// xor0 = v28 ^ v6;
-	// xor1 = v29 ^ v7;
-	// v28 = xor1;
-	// v29 = xor0;
+	// d = rotr64(d ^ a, 32)
+	xor0 = v28 ^ v6;
+	xor1 = v29 ^ v7;
+	v28 = xor1;
+	v29 = xor0;
 
-	// // c = c + d
-	// o0 = v18 + v28;
-	// o1 = v19 + v29;
-	// if (v18 > 0xFFFFFFFFu - v28) {
-	//  o1 = o1 + 1u;
-	// }
-	// v18 = o0;
-	// v19 = o1;
+	// c = c + d
+	o0 = v18 + v28;
+	o1 = v19 + v29;
+	if (v18 > 0xFFFFFFFFu - v28) {
+		o1 = o1 + 1u;
+	}
+	v18 = o0;
+	v19 = o1;
 
-	// // b = rotr64(b ^ c, 24)
-	// xor0 = v8 ^ v18;
-	// xor1 = v9 ^ v19;
-	// v8 = (xor0 >> 24u) ^ (xor1 << 8u);
-	// v9 = (xor1 >> 24u) ^ (xor0 << 8u);
+	// b = rotr64(b ^ c, 24)
+	xor0 = v8 ^ v18;
+	xor1 = v9 ^ v19;
+	v8 = (xor0 >> 24u) ^ (xor1 << 8u);
+	v9 = (xor1 >> 24u) ^ (xor0 << 8u);
 
-	// // a = a + b
-	// o0 = v6 + v8;
-	// o1 = v7 + v9;
-	// if (v6 > 0xFFFFFFFFu - v8) {
-	//  o1 = o1 + 1u;
-	// }
-	// v6 = o0;
-	// v7 = o1;
+	// a = a + b
+	o0 = v6 + v8;
+	o1 = v7 + v9;
+	if (v6 > 0xFFFFFFFFu - v8) {
+		o1 = o1 + 1u;
+	}
+	v6 = o0;
+	v7 = o1;
 
-	// // a = a + m[sigma[r][2*i+1]]
-	// o0 = v6 + m6;
-	// o1 = v7 + m7;
-	// if (v6 > 0xFFFFFFFFu - m6) {
-	//  o1 = o1 + 1u;
-	// }
-	// v6 = o0;
-	// v7 = o1;
+	// a = a + m[sigma[r][2*i+1]]
+	o0 = v6 + m6;
+	o1 = v7 + m7;
+	if (v6 > 0xFFFFFFFFu - m6) {
+		o1 = o1 + 1u;
+	}
+	v6 = o0;
+	v7 = o1;
 
-	// // d = rotr64(d ^ a, 16)
-	// xor0 = v28 ^ v6;
-	// xor1 = v29 ^ v7;
-	// v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-	// v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+	// d = rotr64(d ^ a, 16)
+	xor0 = v28 ^ v6;
+	xor1 = v29 ^ v7;
+	v28 = (xor0 >> 16u) ^ (xor1 << 16u);
+	v29 = (xor1 >> 16u) ^ (xor0 << 16u);
 
-	// // c = c + d
-	// o0 = v18 + v28;
-	// o1 = v19 + v29;
-	// if (v18 > 0xFFFFFFFFu - v28) {
-	//  o1 = o1 + 1u;
-	// }
-	// v18 = o0;
-	// v19 = o1;
+	// c = c + d
+	o0 = v18 + v28;
+	o1 = v19 + v29;
+	if (v18 > 0xFFFFFFFFu - v28) {
+		o1 = o1 + 1u;
+	}
+	v18 = o0;
+	v19 = o1;
 
-	// // b = rotr64(b ^ c, 63)
-	// xor0 = v8 ^ v18;
-	// xor1 = v9 ^ v19;
-	// v8 = (xor1 >> 31u) ^ (xor0 << 1u);
-	// v9 = (xor0 >> 31u) ^ (xor1 << 1u);
+	// b = rotr64(b ^ c, 63)
+	xor0 = v8 ^ v18;
+	xor1 = v9 ^ v19;
+	v8 = (xor1 >> 31u) ^ (xor0 << 1u);
+	v9 = (xor0 >> 31u) ^ (xor1 << 1u);
 
 
 
-- 
2.34.1