From 3cc70febad1bad8c3605c4442f3075afc415cecf Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Wed, 15 Jan 2025 19:30:15 -0800 Subject: [PATCH] Convert blockhash u32 scalars to vec2 vectors. --- src/shaders/compute.wgsl | 110 +++++++++++++++++++-------------------- 1 file changed, 53 insertions(+), 57 deletions(-) diff --git a/src/shaders/compute.wgsl b/src/shaders/compute.wgsl index 406007b..2fa1078 100644 --- a/src/shaders/compute.wgsl +++ b/src/shaders/compute.wgsl @@ -52,15 +52,11 @@ fn main(id: vec3) { /** * Initialize (nonce||blockhash) concatenation */ - var nonce: vec2 = vec2(ubo.random.x ^ id.x, ubo.random.y ^ id.y); - var m2: u32 = ubo.blockhash[0u].x; - var m3: u32 = ubo.blockhash[0u].y; - var m4: u32 = ubo.blockhash[0u].z; - var m5: u32 = ubo.blockhash[0u].w; - var m6: u32 = ubo.blockhash[1u].x; - var m7: u32 = ubo.blockhash[1u].y; - var m8: u32 = ubo.blockhash[1u].z; - var m9: u32 = ubo.blockhash[1u].w; + var nonce: vec2 = ubo.random ^ vec2(id.x, id.y); + var m1: vec2 = vec2(ubo.blockhash[0u].x, ubo.blockhash[0u].y); + var m2: vec2 = vec2(ubo.blockhash[0u].z, ubo.blockhash[0u].w); + var m3: vec2 = vec2(ubo.blockhash[1u].x, ubo.blockhash[1u].y); + var m4: vec2 = vec2(ubo.blockhash[1u].z, ubo.blockhash[1u].w); /** * Compression buffer initialized to 2 instances of initialization vector. Each @@ -136,7 +132,7 @@ fn main(id: vec3) { v0 = v0 + v4 + select(vec2(0u), vec2(0u, 1u), v0.x + v4.x < v0.x); // a = a + m[sigma[r][2*i+1]] - v0 = v0 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v0.x + m2 < v0.x); + v0 = v0 + m1 + select(vec2(0u), vec2(0u, 1u), v0.x + m1.x < v0.x); // d = rotr64(d ^ a, 16) xor = v12 ^ v0; @@ -161,7 +157,7 @@ fn main(id: vec3) { v1 = v1 + v5 + select(vec2(0u), vec2(0u, 1u), v1.x + v5.x < v1.x); // a = a + m[sigma[r][2*i+0]] - v1 = v1 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v1.x + m4 < v1.x); + v1 = v1 + m2 + select(vec2(0u), vec2(0u, 1u), v1.x + m2.x < v1.x); // d = rotr64(d ^ a, 32) xor = v13 ^ v1; @@ -178,7 +174,7 @@ fn main(id: vec3) { v1 = v1 + v5 + select(vec2(0u), vec2(0u, 1u), v1.x + v5.x < v1.x); // a = a + m[sigma[r][2*i+1]] - v1 = v1 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v1.x + m6 < v1.x); + v1 = v1 + m3 + select(vec2(0u), vec2(0u, 1u), v1.x + m3.x < v1.x); // d = rotr64(d ^ a, 16) xor = v13 ^ v1; @@ -203,7 +199,7 @@ fn main(id: vec3) { v2 = v2 + v6 + select(vec2(0u), vec2(0u, 1u), v2.x + v6.x < v2.x); // a = a + m[sigma[r][2*i+0]] - v2 = v2 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v2.x + m8 < v2.x); + v2 = v2 + m4 + select(vec2(0u), vec2(0u, 1u), v2.x + m4.x < v2.x); // d = rotr64(d ^ a, 32) xor = v14 ^ v2; @@ -501,7 +497,7 @@ fn main(id: vec3) { v1 = v1 + v5 + select(vec2(0u), vec2(0u, 1u), v1.x + v5.x < v1.x); // a = a + m[sigma[r][2*i+0]] - v1 = v1 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v1.x + m8 < v1.x); + v1 = v1 + m4 + select(vec2(0u), vec2(0u, 1u), v1.x + m4.x < v1.x); // d = rotr64(d ^ a, 32) xor = v13 ^ v1; @@ -627,7 +623,7 @@ fn main(id: vec3) { v0 = v0 + v5 + select(vec2(0u), vec2(0u, 1u), v0.x + v5.x < v0.x); // a = a + m[sigma[r][2*i+0]] - v0 = v0 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v0.x + m2 < v0.x); + v0 = v0 + m1 + select(vec2(0u), vec2(0u, 1u), v0.x + m1.x < v0.x); // d = rotr64(d ^ a, 32) xor = v15 ^ v0; @@ -686,7 +682,7 @@ fn main(id: vec3) { v1 = v1 + v6 + select(vec2(0u), vec2(0u, 1u), v1.x + v6.x < v1.x); // a = a + m[sigma[r][2*i+1]] - v1 = v1 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v1.x + m4 < v1.x); + v1 = v1 + m2 + select(vec2(0u), vec2(0u, 1u), v1.x + m2.x < v1.x); // d = rotr64(d ^ a, 16) xor = v12 ^ v1; @@ -770,7 +766,7 @@ fn main(id: vec3) { v3 = v3 + v4 + select(vec2(0u), vec2(0u, 1u), v3.x + v4.x < v3.x); // a = a + m[sigma[r][2*i+1]] - v3 = v3 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v3.x + m6 < v3.x); + v3 = v3 + m3 + select(vec2(0u), vec2(0u, 1u), v3.x + m3.x < v3.x); // d = rotr64(d ^ a, 16) xor = v14 ^ v3; @@ -900,7 +896,7 @@ fn main(id: vec3) { v2 = v2 + v6 + select(vec2(0u), vec2(0u, 1u), v2.x + v6.x < v2.x); // a = a + m[sigma[r][2*i+1]] - v2 = v2 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v2.x + m4 < v2.x); + v2 = v2 + m2 + select(vec2(0u), vec2(0u, 1u), v2.x + m2.x < v2.x); // d = rotr64(d ^ a, 16) xor = v14 ^ v2; @@ -1009,7 +1005,7 @@ fn main(id: vec3) { v1 = v1 + v6 + select(vec2(0u), vec2(0u, 1u), v1.x + v6.x < v1.x); // a = a + m[sigma[r][2*i+0]] - v1 = v1 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v1.x + m6 < v1.x); + v1 = v1 + m3 + select(vec2(0u), vec2(0u, 1u), v1.x + m3.x < v1.x); // d = rotr64(d ^ a, 32) xor = v12 ^ v1; @@ -1068,7 +1064,7 @@ fn main(id: vec3) { v2 = v2 + v7 + select(vec2(0u), vec2(0u, 1u), v2.x + v7.x < v2.x); // a = a + m[sigma[r][2*i+1]] - v2 = v2 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v2.x + m2 < v2.x); + v2 = v2 + m1 + select(vec2(0u), vec2(0u, 1u), v2.x + m1.x < v2.x); // d = rotr64(d ^ a, 16) xor = v13 ^ v2; @@ -1110,7 +1106,7 @@ fn main(id: vec3) { v3 = v3 + v4 + select(vec2(0u), vec2(0u, 1u), v3.x + v4.x < v3.x); // a = a + m[sigma[r][2*i+1]] - v3 = v3 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v3.x + m8 < v3.x); + v3 = v3 + m4 + select(vec2(0u), vec2(0u, 1u), v3.x + m4.x < v3.x); // d = rotr64(d ^ a, 16) xor = v14 ^ v3; @@ -1181,7 +1177,7 @@ fn main(id: vec3) { v1 = v1 + v5 + select(vec2(0u), vec2(0u, 1u), v1.x + v5.x < v1.x); // a = a + m[sigma[r][2*i+0]] - v1 = v1 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v1.x + m6 < v1.x); + v1 = v1 + m3 + select(vec2(0u), vec2(0u, 1u), v1.x + m3.x < v1.x); // d = rotr64(d ^ a, 32) xor = v13 ^ v1; @@ -1198,7 +1194,7 @@ fn main(id: vec3) { v1 = v1 + v5 + select(vec2(0u), vec2(0u, 1u), v1.x + v5.x < v1.x); // a = a + m[sigma[r][2*i+1]] - v1 = v1 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v1.x + m2 < v1.x); + v1 = v1 + m1 + select(vec2(0u), vec2(0u, 1u), v1.x + m1.x < v1.x); // d = rotr64(d ^ a, 16) xor = v13 ^ v1; @@ -1307,7 +1303,7 @@ fn main(id: vec3) { v0 = v0 + v5 + select(vec2(0u), vec2(0u, 1u), v0.x + v5.x < v0.x); // a = a + m[sigma[r][2*i+0]] - v0 = v0 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v0.x + m4 < v0.x); + v0 = v0 + m2 + select(vec2(0u), vec2(0u, 1u), v0.x + m2.x < v0.x); // d = rotr64(d ^ a, 32) xor = v15 ^ v0; @@ -1391,7 +1387,7 @@ fn main(id: vec3) { v2 = v2 + v7 + select(vec2(0u), vec2(0u, 1u), v2.x + v7.x < v2.x); // a = a + m[sigma[r][2*i+0]] - v2 = v2 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v2.x + m8 < v2.x); + v2 = v2 + m4 + select(vec2(0u), vec2(0u, 1u), v2.x + m4.x < v2.x); // d = rotr64(d ^ a, 32) xor = v13 ^ v2; @@ -1563,7 +1559,7 @@ fn main(id: vec3) { v2 = v2 + v6 + select(vec2(0u), vec2(0u, 1u), v2.x + v6.x < v2.x); // a = a + m[sigma[r][2*i+0]] - v2 = v2 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v2.x + m4 < v2.x); + v2 = v2 + m2 + select(vec2(0u), vec2(0u, 1u), v2.x + m2.x < v2.x); // d = rotr64(d ^ a, 32) xor = v14 ^ v2; @@ -1580,7 +1576,7 @@ fn main(id: vec3) { v2 = v2 + v6 + select(vec2(0u), vec2(0u, 1u), v2.x + v6.x < v2.x); // a = a + m[sigma[r][2*i+1]] - v2 = v2 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v2.x + m8 < v2.x); + v2 = v2 + m4 + select(vec2(0u), vec2(0u, 1u), v2.x + m4.x < v2.x); // d = rotr64(d ^ a, 16) xor = v14 ^ v2; @@ -1664,7 +1660,7 @@ fn main(id: vec3) { v0 = v0 + v5 + select(vec2(0u), vec2(0u, 1u), v0.x + v5.x < v0.x); // a = a + m[sigma[r][2*i+1]] - v0 = v0 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v0.x + m2 < v0.x); + v0 = v0 + m1 + select(vec2(0u), vec2(0u, 1u), v0.x + m1.x < v0.x); // d = rotr64(d ^ a, 16) xor = v15 ^ v0; @@ -1773,7 +1769,7 @@ fn main(id: vec3) { v3 = v3 + v4 + select(vec2(0u), vec2(0u, 1u), v3.x + v4.x < v3.x); // a = a + m[sigma[r][2*i+0]] - v3 = v3 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v3.x + m6 < v3.x); + v3 = v3 + m3 + select(vec2(0u), vec2(0u, 1u), v3.x + m3.x < v3.x); // d = rotr64(d ^ a, 32) xor = v14 ^ v3; @@ -1819,7 +1815,7 @@ fn main(id: vec3) { v0 = v0 + v4 + select(vec2(0u), vec2(0u, 1u), v0.x + v4.x < v0.x); // a = a + m[sigma[r][2*i+0]] - v0 = v0 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v0.x + m4 < v0.x); + v0 = v0 + m2 + select(vec2(0u), vec2(0u, 1u), v0.x + m2.x < v0.x); // d = rotr64(d ^ a, 32) xor = v12 ^ v0; @@ -1962,7 +1958,7 @@ fn main(id: vec3) { v3 = v3 + v7 + select(vec2(0u), vec2(0u, 1u), v3.x + v7.x < v3.x); // a = a + m[sigma[r][2*i+1]] - v3 = v3 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v3.x + m6 < v3.x); + v3 = v3 + m3 + select(vec2(0u), vec2(0u, 1u), v3.x + m3.x < v3.x); // d = rotr64(d ^ a, 16) xor = v15 ^ v3; @@ -1987,7 +1983,7 @@ fn main(id: vec3) { v0 = v0 + v5 + select(vec2(0u), vec2(0u, 1u), v0.x + v5.x < v0.x); // a = a + m[sigma[r][2*i+0]] - v0 = v0 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v0.x + m8 < v0.x); + v0 = v0 + m4 + select(vec2(0u), vec2(0u, 1u), v0.x + m4.x < v0.x); // d = rotr64(d ^ a, 32) xor = v15 ^ v0; @@ -2113,7 +2109,7 @@ fn main(id: vec3) { v3 = v3 + v4 + select(vec2(0u), vec2(0u, 1u), v3.x + v4.x < v3.x); // a = a + m[sigma[r][2*i+0]] - v3 = v3 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v3.x + m2 < v3.x); + v3 = v3 + m1 + select(vec2(0u), vec2(0u, 1u), v3.x + m1.x < v3.x); // d = rotr64(d ^ a, 32) xor = v14 ^ v3; @@ -2201,7 +2197,7 @@ fn main(id: vec3) { v1 = v1 + v5 + select(vec2(0u), vec2(0u, 1u), v1.x + v5.x < v1.x); // a = a + m[sigma[r][2*i+0]] - v1 = v1 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v1.x + m2 < v1.x); + v1 = v1 + m1 + select(vec2(0u), vec2(0u, 1u), v1.x + m1.x < v1.x); // d = rotr64(d ^ a, 32) xor = v13 ^ v1; @@ -2285,7 +2281,7 @@ fn main(id: vec3) { v3 = v3 + v7 + select(vec2(0u), vec2(0u, 1u), v3.x + v7.x < v3.x); // a = a + m[sigma[r][2*i+0]] - v3 = v3 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v3.x + m8 < v3.x); + v3 = v3 + m4 + select(vec2(0u), vec2(0u, 1u), v3.x + m4.x < v3.x); // d = rotr64(d ^ a, 32) xor = v15 ^ v3; @@ -2386,7 +2382,7 @@ fn main(id: vec3) { v1 = v1 + v6 + select(vec2(0u), vec2(0u, 1u), v1.x + v6.x < v1.x); // a = a + m[sigma[r][2*i+1]] - v1 = v1 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v1.x + m6 < v1.x); + v1 = v1 + m3 + select(vec2(0u), vec2(0u, 1u), v1.x + m3.x < v1.x); // d = rotr64(d ^ a, 16) xor = v12 ^ v1; @@ -2428,7 +2424,7 @@ fn main(id: vec3) { v2 = v2 + v7 + select(vec2(0u), vec2(0u, 1u), v2.x + v7.x < v2.x); // a = a + m[sigma[r][2*i+1]] - v2 = v2 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v2.x + m4 < v2.x); + v2 = v2 + m2 + select(vec2(0u), vec2(0u, 1u), v2.x + m2.x < v2.x); // d = rotr64(d ^ a, 16) xor = v13 ^ v2; @@ -2600,7 +2596,7 @@ fn main(id: vec3) { v2 = v2 + v6 + select(vec2(0u), vec2(0u, 1u), v2.x + v6.x < v2.x); // a = a + m[sigma[r][2*i+1]] - v2 = v2 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v2.x + m2 < v2.x); + v2 = v2 + m1 + select(vec2(0u), vec2(0u, 1u), v2.x + m1.x < v2.x); // d = rotr64(d ^ a, 16) xor = v14 ^ v2; @@ -2625,7 +2621,7 @@ fn main(id: vec3) { v3 = v3 + v7 + select(vec2(0u), vec2(0u, 1u), v3.x + v7.x < v3.x); // a = a + m[sigma[r][2*i+0]] - v3 = v3 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v3.x + m6 < v3.x); + v3 = v3 + m3 + select(vec2(0u), vec2(0u, 1u), v3.x + m3.x < v3.x); // d = rotr64(d ^ a, 32) xor = v15 ^ v3; @@ -2726,7 +2722,7 @@ fn main(id: vec3) { v1 = v1 + v6 + select(vec2(0u), vec2(0u, 1u), v1.x + v6.x < v1.x); // a = a + m[sigma[r][2*i+1]] - v1 = v1 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v1.x + m8 < v1.x); + v1 = v1 + m4 + select(vec2(0u), vec2(0u, 1u), v1.x + m4.x < v1.x); // d = rotr64(d ^ a, 16) xor = v12 ^ v1; @@ -2793,7 +2789,7 @@ fn main(id: vec3) { v3 = v3 + v4 + select(vec2(0u), vec2(0u, 1u), v3.x + v4.x < v3.x); // a = a + m[sigma[r][2*i+0]] - v3 = v3 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v3.x + m4 < v3.x); + v3 = v3 + m2 + select(vec2(0u), vec2(0u, 1u), v3.x + m2.x < v3.x); // d = rotr64(d ^ a, 32) xor = v14 ^ v3; @@ -2940,7 +2936,7 @@ fn main(id: vec3) { v2 = v2 + v6 + select(vec2(0u), vec2(0u, 1u), v2.x + v6.x < v2.x); // a = a + m[sigma[r][2*i+1]] - v2 = v2 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v2.x + m6 < v2.x); + v2 = v2 + m3 + select(vec2(0u), vec2(0u, 1u), v2.x + m3.x < v2.x); // d = rotr64(d ^ a, 16) xor = v14 ^ v2; @@ -3024,7 +3020,7 @@ fn main(id: vec3) { v0 = v0 + v5 + select(vec2(0u), vec2(0u, 1u), v0.x + v5.x < v0.x); // a = a + m[sigma[r][2*i+1]] - v0 = v0 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v0.x + m4 < v0.x); + v0 = v0 + m2 + select(vec2(0u), vec2(0u, 1u), v0.x + m2.x < v0.x); // d = rotr64(d ^ a, 16) xor = v15 ^ v0; @@ -3091,7 +3087,7 @@ fn main(id: vec3) { v2 = v2 + v7 + select(vec2(0u), vec2(0u, 1u), v2.x + v7.x < v2.x); // a = a + m[sigma[r][2*i+0]] - v2 = v2 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v2.x + m2 < v2.x); + v2 = v2 + m1 + select(vec2(0u), vec2(0u, 1u), v2.x + m1.x < v2.x); // d = rotr64(d ^ a, 32) xor = v13 ^ v2; @@ -3108,7 +3104,7 @@ fn main(id: vec3) { v2 = v2 + v7 + select(vec2(0u), vec2(0u, 1u), v2.x + v7.x < v2.x); // a = a + m[sigma[r][2*i+1]] - v2 = v2 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v2.x + m8 < v2.x); + v2 = v2 + m4 + select(vec2(0u), vec2(0u, 1u), v2.x + m4.x < v2.x); // d = rotr64(d ^ a, 16) xor = v13 ^ v2; @@ -3196,7 +3192,7 @@ fn main(id: vec3) { v0 = v0 + v4 + select(vec2(0u), vec2(0u, 1u), v0.x + v4.x < v0.x); // a = a + m[sigma[r][2*i+1]] - v0 = v0 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v0.x + m4 < v0.x); + v0 = v0 + m2 + select(vec2(0u), vec2(0u, 1u), v0.x + m2.x < v0.x); // d = rotr64(d ^ a, 16) xor = v12 ^ v0; @@ -3238,7 +3234,7 @@ fn main(id: vec3) { v1 = v1 + v5 + select(vec2(0u), vec2(0u, 1u), v1.x + v5.x < v1.x); // a = a + m[sigma[r][2*i+1]] - v1 = v1 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v1.x + m8 < v1.x); + v1 = v1 + m4 + select(vec2(0u), vec2(0u, 1u), v1.x + m4.x < v1.x); // d = rotr64(d ^ a, 16) xor = v13 ^ v1; @@ -3305,7 +3301,7 @@ fn main(id: vec3) { v3 = v3 + v7 + select(vec2(0u), vec2(0u, 1u), v3.x + v7.x < v3.x); // a = a + m[sigma[r][2*i+0]] - v3 = v3 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v3.x + m2 < v3.x); + v3 = v3 + m1 + select(vec2(0u), vec2(0u, 1u), v3.x + m1.x < v3.x); // d = rotr64(d ^ a, 32) xor = v15 ^ v3; @@ -3431,7 +3427,7 @@ fn main(id: vec3) { v2 = v2 + v7 + select(vec2(0u), vec2(0u, 1u), v2.x + v7.x < v2.x); // a = a + m[sigma[r][2*i+0]] - v2 = v2 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v2.x + m6 < v2.x); + v2 = v2 + m3 + select(vec2(0u), vec2(0u, 1u), v2.x + m3.x < v2.x); // d = rotr64(d ^ a, 32) xor = v13 ^ v2; @@ -3536,7 +3532,7 @@ fn main(id: vec3) { v0 = v0 + v4 + select(vec2(0u), vec2(0u, 1u), v0.x + v4.x < v0.x); // a = a + m[sigma[r][2*i+1]] - v0 = v0 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v0.x + m2 < v0.x); + v0 = v0 + m1 + select(vec2(0u), vec2(0u, 1u), v0.x + m1.x < v0.x); // d = rotr64(d ^ a, 16) xor = v12 ^ v0; @@ -3561,7 +3557,7 @@ fn main(id: vec3) { v1 = v1 + v5 + select(vec2(0u), vec2(0u, 1u), v1.x + v5.x < v1.x); // a = a + m[sigma[r][2*i+0]] - v1 = v1 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v1.x + m4 < v1.x); + v1 = v1 + m2 + select(vec2(0u), vec2(0u, 1u), v1.x + m2.x < v1.x); // d = rotr64(d ^ a, 32) xor = v13 ^ v1; @@ -3578,7 +3574,7 @@ fn main(id: vec3) { v1 = v1 + v5 + select(vec2(0u), vec2(0u, 1u), v1.x + v5.x < v1.x); // a = a + m[sigma[r][2*i+1]] - v1 = v1 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v1.x + m6 < v1.x); + v1 = v1 + m3 + select(vec2(0u), vec2(0u, 1u), v1.x + m3.x < v1.x); // d = rotr64(d ^ a, 16) xor = v13 ^ v1; @@ -3603,7 +3599,7 @@ fn main(id: vec3) { v2 = v2 + v6 + select(vec2(0u), vec2(0u, 1u), v2.x + v6.x < v2.x); // a = a + m[sigma[r][2*i+0]] - v2 = v2 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v2.x + m8 < v2.x); + v2 = v2 + m4 + select(vec2(0u), vec2(0u, 1u), v2.x + m4.x < v2.x); // d = rotr64(d ^ a, 32) xor = v14 ^ v2; @@ -3901,7 +3897,7 @@ fn main(id: vec3) { v1 = v1 + v5 + select(vec2(0u), vec2(0u, 1u), v1.x + v5.x < v1.x); // a = a + m[sigma[r][2*i+0]] - v1 = v1 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v1.x + m8 < v1.x); + v1 = v1 + m4 + select(vec2(0u), vec2(0u, 1u), v1.x + m4.x < v1.x); // d = rotr64(d ^ a, 32) xor = v13 ^ v1; @@ -4027,7 +4023,7 @@ fn main(id: vec3) { v0 = v0 + v5 + select(vec2(0u), vec2(0u, 1u), v0.x + v5.x < v0.x); // a = a + m[sigma[r][2*i+0]] - v0 = v0 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v0.x + m2 < v0.x); + v0 = v0 + m1 + select(vec2(0u), vec2(0u, 1u), v0.x + m1.x < v0.x); // d = rotr64(d ^ a, 32) xor = v15 ^ v0; @@ -4086,7 +4082,7 @@ fn main(id: vec3) { v1 = v1 + v6 + select(vec2(0u), vec2(0u, 1u), v1.x + v6.x < v1.x); // a = a + m[sigma[r][2*i+1]] - v1 = v1 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v1.x + m4 < v1.x); + v1 = v1 + m2 + select(vec2(0u), vec2(0u, 1u), v1.x + m2.x < v1.x); // d = rotr64(d ^ a, 16) xor = v12 ^ v1; @@ -4170,7 +4166,7 @@ fn main(id: vec3) { v3 = v3 + v4 + select(vec2(0u), vec2(0u, 1u), v3.x + v4.x < v3.x); // a = a + m[sigma[r][2*i+1]] - v3 = v3 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v3.x + m6 < v3.x); + v3 = v3 + m3 + select(vec2(0u), vec2(0u, 1u), v3.x + m3.x < v3.x); // d = rotr64(d ^ a, 16) xor = v14 ^ v3; -- 2.34.1