From 1fb58865ba1be503d50e16a71f9c17aac5c1d6e7 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Fri, 17 Jan 2025 21:43:00 -0800 Subject: [PATCH] Remove comments about skipping and summarize their previous existence in the larger algorithm documentation. --- src/shaders/compute.wgsl | 140 ++------------------------------------- 1 file changed, 5 insertions(+), 135 deletions(-) diff --git a/src/shaders/compute.wgsl b/src/shaders/compute.wgsl index 556caa3..e9d83b8 100644 --- a/src/shaders/compute.wgsl +++ b/src/shaders/compute.wgsl @@ -119,16 +119,17 @@ fn main(id: vec3) { * sigma is a defined set of array indexes for `m` * rotr64 is a right-hand bit rotation function * - * a = a + b - * a = a + m[sigma[r][2*i+0]] + * a = a + b + m[sigma[r][2*i+0]] * d = rotr64(d ^ a, 32) * c = c + d * b = rotr64(b ^ c, 24) - * a = a + b - * a = a + m[sigma[r][2*i+1]] + * a = a + b + m[sigma[r][2*i+1]] * d = rotr64(d ^ a, 16) * c = c + d * b = rotr64(b ^ c, 63) + * + * Each sum step has an extra carry addition. Note that the `a` assignment sum + * has zero, one, or two carry additions depending on whether m[sigma] is zero. */ /**************************************************************************** @@ -167,7 +168,6 @@ fn main(id: vec3) { v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy >> ROTATE_24) | ((v6 ^ v10).yx << ROTATE_8); v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v2).xy >> ROTATE_16) | ((v14 ^ v2).yx << ROTATE_16); v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy << ROTATE_1) | ((v6 ^ v10).yx >> ROTATE_31); @@ -176,12 +176,10 @@ fn main(id: vec3) { * r=0, i=3, a=v[3], b=v[7], c=v[11], d=v[15] */ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v3.yx; v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy >> ROTATE_24) | ((v7 ^ v11).yx << ROTATE_8); v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v3).xy >> ROTATE_16) | ((v15 ^ v3).yx << ROTATE_16); v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy << ROTATE_1) | ((v7 ^ v11).yx >> ROTATE_31); @@ -190,12 +188,10 @@ fn main(id: vec3) { * r=0, i=4, a=v[0], b=v[5], c=v[10], d=v[15] */ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v0.yx; v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy >> ROTATE_24) | ((v5 ^ v10).yx << ROTATE_8); v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v0).xy >> ROTATE_16) | ((v15 ^ v0).yx << ROTATE_16); v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy << ROTATE_1) | ((v5 ^ v10).yx >> ROTATE_31); @@ -204,12 +200,10 @@ fn main(id: vec3) { * r=0, i=5, a=v[1], b=v[6], c=v[11], d=v[12] */ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v1.yx; v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy >> ROTATE_24) | ((v6 ^ v11).yx << ROTATE_8); v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v1).xy >> ROTATE_16) | ((v12 ^ v1).yx << ROTATE_16); v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy << ROTATE_1) | ((v6 ^ v11).yx >> ROTATE_31); @@ -218,12 +212,10 @@ fn main(id: vec3) { * r=0, i=6, a=v[2], b=v[7], c=v[8], d=v[13] */ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v2.yx; v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy >> ROTATE_24) | ((v7 ^ v8).yx << ROTATE_8); v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v2).xy >> ROTATE_16) | ((v13 ^ v2).yx << ROTATE_16); v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy << ROTATE_1) | ((v7 ^ v8).yx >> ROTATE_31); @@ -232,12 +224,10 @@ fn main(id: vec3) { * r=0, i=7, a=v[3], b=v[4], c=v[9], d=v[14] */ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v3.yx; v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy >> ROTATE_24) | ((v4 ^ v9).yx << ROTATE_8); v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v3).xy >> ROTATE_16) | ((v14 ^ v3).yx << ROTATE_16); v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy << ROTATE_1) | ((v4 ^ v9).yx >> ROTATE_31); @@ -254,12 +244,10 @@ fn main(id: vec3) { * r=1, i=0, a=v[0], b=v[4], c=v[8], d=v[12] */ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v0.yx; v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy >> ROTATE_24) | ((v4 ^ v8).yx << ROTATE_8); v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v0).xy >> ROTATE_16) | ((v12 ^ v0).yx << ROTATE_16); v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy << ROTATE_1) | ((v4 ^ v8).yx >> ROTATE_31); @@ -272,7 +260,6 @@ fn main(id: vec3) { v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy >> ROTATE_24) | ((v5 ^ v9).yx << ROTATE_8); v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v1).xy >> ROTATE_16) | ((v13 ^ v1).yx << ROTATE_16); v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy << ROTATE_1) | ((v5 ^ v9).yx >> ROTATE_31); @@ -281,12 +268,10 @@ fn main(id: vec3) { * r=1, i=2, a=v[2], b=v[6], c=v[10], d=v[14] */ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v2.yx; v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy >> ROTATE_24) | ((v6 ^ v10).yx << ROTATE_8); v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v2).xy >> ROTATE_16) | ((v14 ^ v2).yx << ROTATE_16); v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy << ROTATE_1) | ((v6 ^ v10).yx >> ROTATE_31); @@ -295,12 +280,10 @@ fn main(id: vec3) { * r=1, i=3, a=v[3], b=v[7], c=v[11], d=v[15] */ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v3.yx; v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy >> ROTATE_24) | ((v7 ^ v11).yx << ROTATE_8); v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v3).xy >> ROTATE_16) | ((v15 ^ v3).yx << ROTATE_16); v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy << ROTATE_1) | ((v7 ^ v11).yx >> ROTATE_31); @@ -313,7 +296,6 @@ fn main(id: vec3) { v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy >> ROTATE_24) | ((v5 ^ v10).yx << ROTATE_8); v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v0).xy >> ROTATE_16) | ((v15 ^ v0).yx << ROTATE_16); v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy << ROTATE_1) | ((v5 ^ v10).yx >> ROTATE_31); @@ -334,12 +316,10 @@ fn main(id: vec3) { * r=1, i=6, a=v[2], b=v[7], c=v[8], d=v[13] */ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v2.yx; v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy >> ROTATE_24) | ((v7 ^ v8).yx << ROTATE_8); v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v2).xy >> ROTATE_16) | ((v13 ^ v2).yx << ROTATE_16); v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy << ROTATE_1) | ((v7 ^ v8).yx >> ROTATE_31); @@ -348,7 +328,6 @@ fn main(id: vec3) { * r=1, i=7, a=v[3], b=v[4], c=v[9], d=v[14] */ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v3.yx; v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy >> ROTATE_24) | ((v4 ^ v9).yx << ROTATE_8); @@ -369,12 +348,10 @@ fn main(id: vec3) { * r=2, i=0, a=v[0], b=v[4], c=v[8], d=v[12] */ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v0.yx; v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy >> ROTATE_24) | ((v4 ^ v8).yx << ROTATE_8); v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v0).xy >> ROTATE_16) | ((v12 ^ v0).yx << ROTATE_16); v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy << ROTATE_1) | ((v4 ^ v8).yx >> ROTATE_31); @@ -383,7 +360,6 @@ fn main(id: vec3) { * r=2, i=1, a=v[1], b=v[5], c=v[9], d=v[13] */ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v1.yx; v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy >> ROTATE_24) | ((v5 ^ v9).yx << ROTATE_8); @@ -396,7 +372,6 @@ fn main(id: vec3) { * r=2, i=2, a=v[2], b=v[6], c=v[10], d=v[14] */ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v2.yx; v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy >> ROTATE_24) | ((v6 ^ v10).yx << ROTATE_8); @@ -409,12 +384,10 @@ fn main(id: vec3) { * r=2, i=3, a=v[3], b=v[7], c=v[11], d=v[15] */ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v3.yx; v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy >> ROTATE_24) | ((v7 ^ v11).yx << ROTATE_8); v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v3).xy >> ROTATE_16) | ((v15 ^ v3).yx << ROTATE_16); v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy << ROTATE_1) | ((v7 ^ v11).yx >> ROTATE_31); @@ -423,12 +396,10 @@ fn main(id: vec3) { * r=2, i=4, a=v[0], b=v[5], c=v[10], d=v[15] */ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v0.yx; v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy >> ROTATE_24) | ((v5 ^ v10).yx << ROTATE_8); v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v0).xy >> ROTATE_16) | ((v15 ^ v0).yx << ROTATE_16); v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy << ROTATE_1) | ((v5 ^ v10).yx >> ROTATE_31); @@ -441,7 +412,6 @@ fn main(id: vec3) { v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy >> ROTATE_24) | ((v6 ^ v11).yx << ROTATE_8); v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v1).xy >> ROTATE_16) | ((v12 ^ v1).yx << ROTATE_16); v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy << ROTATE_1) | ((v6 ^ v11).yx >> ROTATE_31); @@ -450,7 +420,6 @@ fn main(id: vec3) { * r=2, i=6, a=v[2], b=v[7], c=v[8], d=v[13] */ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v2.yx; v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy >> ROTATE_24) | ((v7 ^ v8).yx << ROTATE_8); @@ -463,7 +432,6 @@ fn main(id: vec3) { * r=2, i=7, a=v[3], b=v[4], c=v[9], d=v[14] */ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v3.yx; v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy >> ROTATE_24) | ((v4 ^ v9).yx << ROTATE_8); @@ -484,12 +452,10 @@ fn main(id: vec3) { * r=3, i=0, a=v[0], b=v[4], c=v[8], d=v[12] */ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v0.yx; v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy >> ROTATE_24) | ((v4 ^ v8).yx << ROTATE_8); v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v0).xy >> ROTATE_16) | ((v12 ^ v0).yx << ROTATE_16); v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy << ROTATE_1) | ((v4 ^ v8).yx >> ROTATE_31); @@ -510,12 +476,10 @@ fn main(id: vec3) { * r=3, i=2, a=v[2], b=v[6], c=v[10], d=v[14] */ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v2.yx; v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy >> ROTATE_24) | ((v6 ^ v10).yx << ROTATE_8); v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v2).xy >> ROTATE_16) | ((v14 ^ v2).yx << ROTATE_16); v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy << ROTATE_1) | ((v6 ^ v10).yx >> ROTATE_31); @@ -524,12 +488,10 @@ fn main(id: vec3) { * r=3, i=3, a=v[3], b=v[7], c=v[11], d=v[15] */ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v3.yx; v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy >> ROTATE_24) | ((v7 ^ v11).yx << ROTATE_8); v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v3).xy >> ROTATE_16) | ((v15 ^ v3).yx << ROTATE_16); v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy << ROTATE_1) | ((v7 ^ v11).yx >> ROTATE_31); @@ -542,7 +504,6 @@ fn main(id: vec3) { v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy >> ROTATE_24) | ((v5 ^ v10).yx << ROTATE_8); v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v0).xy >> ROTATE_16) | ((v15 ^ v0).yx << ROTATE_16); v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy << ROTATE_1) | ((v5 ^ v10).yx >> ROTATE_31); @@ -551,12 +512,10 @@ fn main(id: vec3) { * r=3, i=5, a=v[1], b=v[6], c=v[11], d=v[12] */ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v1.yx; v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy >> ROTATE_24) | ((v6 ^ v11).yx << ROTATE_8); v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v1).xy >> ROTATE_16) | ((v12 ^ v1).yx << ROTATE_16); v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy << ROTATE_1) | ((v6 ^ v11).yx >> ROTATE_31); @@ -577,12 +536,10 @@ fn main(id: vec3) { * r=3, i=7, a=v[3], b=v[4], c=v[9], d=v[14] */ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v3.yx; v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy >> ROTATE_24) | ((v4 ^ v9).yx << ROTATE_8); v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v3).xy >> ROTATE_16) | ((v14 ^ v3).yx << ROTATE_16); v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy << ROTATE_1) | ((v4 ^ v9).yx >> ROTATE_31); @@ -599,7 +556,6 @@ fn main(id: vec3) { * r=4, i=0, a=v[0], b=v[4], c=v[8], d=v[12] */ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v0.yx; v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy >> ROTATE_24) | ((v4 ^ v8).yx << ROTATE_8); @@ -612,12 +568,10 @@ fn main(id: vec3) { * r=4, i=1, a=v[1], b=v[5], c=v[9], d=v[13] */ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v1.yx; v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy >> ROTATE_24) | ((v5 ^ v9).yx << ROTATE_8); v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v1).xy >> ROTATE_16) | ((v13 ^ v1).yx << ROTATE_16); v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy << ROTATE_1) | ((v5 ^ v9).yx >> ROTATE_31); @@ -638,12 +592,10 @@ fn main(id: vec3) { * r=4, i=3, a=v[3], b=v[7], c=v[11], d=v[15] */ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v3.yx; v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy >> ROTATE_24) | ((v7 ^ v11).yx << ROTATE_8); v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v3).xy >> ROTATE_16) | ((v15 ^ v3).yx << ROTATE_16); v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy << ROTATE_1) | ((v7 ^ v11).yx >> ROTATE_31); @@ -652,7 +604,6 @@ fn main(id: vec3) { * r=4, i=4, a=v[0], b=v[5], c=v[10], d=v[15] */ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v0.yx; v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy >> ROTATE_24) | ((v5 ^ v10).yx << ROTATE_8); @@ -665,12 +616,10 @@ fn main(id: vec3) { * r=4, i=5, a=v[1], b=v[6], c=v[11], d=v[12] */ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v1.yx; v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy >> ROTATE_24) | ((v6 ^ v11).yx << ROTATE_8); v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v1).xy >> ROTATE_16) | ((v12 ^ v1).yx << ROTATE_16); v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy << ROTATE_1) | ((v6 ^ v11).yx >> ROTATE_31); @@ -679,12 +628,10 @@ fn main(id: vec3) { * r=4, i=6, a=v[2], b=v[7], c=v[8], d=v[13] */ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v2.yx; v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy >> ROTATE_24) | ((v7 ^ v8).yx << ROTATE_8); v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v2).xy >> ROTATE_16) | ((v13 ^ v2).yx << ROTATE_16); v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy << ROTATE_1) | ((v7 ^ v8).yx >> ROTATE_31); @@ -697,7 +644,6 @@ fn main(id: vec3) { v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy >> ROTATE_24) | ((v4 ^ v9).yx << ROTATE_8); v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v3).xy >> ROTATE_16) | ((v14 ^ v3).yx << ROTATE_16); v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy << ROTATE_1) | ((v4 ^ v9).yx >> ROTATE_31); @@ -718,7 +664,6 @@ fn main(id: vec3) { v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy >> ROTATE_24) | ((v4 ^ v8).yx << ROTATE_8); v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v0).xy >> ROTATE_16) | ((v12 ^ v0).yx << ROTATE_16); v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy << ROTATE_1) | ((v4 ^ v8).yx >> ROTATE_31); @@ -727,12 +672,10 @@ fn main(id: vec3) { * r=5, i=1, a=v[1], b=v[5], c=v[9], d=v[13] */ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v1.yx; v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy >> ROTATE_24) | ((v5 ^ v9).yx << ROTATE_8); v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v1).xy >> ROTATE_16) | ((v13 ^ v1).yx << ROTATE_16); v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy << ROTATE_1) | ((v5 ^ v9).yx >> ROTATE_31); @@ -745,7 +688,6 @@ fn main(id: vec3) { v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy >> ROTATE_24) | ((v6 ^ v10).yx << ROTATE_8); v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v2).xy >> ROTATE_16) | ((v14 ^ v2).yx << ROTATE_16); v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy << ROTATE_1) | ((v6 ^ v10).yx >> ROTATE_31); @@ -754,7 +696,6 @@ fn main(id: vec3) { * r=5, i=3, a=v[3], b=v[7], c=v[11], d=v[15] */ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v3.yx; v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy >> ROTATE_24) | ((v7 ^ v11).yx << ROTATE_8); @@ -771,7 +712,6 @@ fn main(id: vec3) { v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy >> ROTATE_24) | ((v5 ^ v10).yx << ROTATE_8); v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v0).xy >> ROTATE_16) | ((v15 ^ v0).yx << ROTATE_16); v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy << ROTATE_1) | ((v5 ^ v10).yx >> ROTATE_31); @@ -780,12 +720,10 @@ fn main(id: vec3) { * r=5, i=5, a=v[1], b=v[6], c=v[11], d=v[12] */ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v1.yx; v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy >> ROTATE_24) | ((v6 ^ v11).yx << ROTATE_8); v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v1).xy >> ROTATE_16) | ((v12 ^ v1).yx << ROTATE_16); v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy << ROTATE_1) | ((v6 ^ v11).yx >> ROTATE_31); @@ -794,12 +732,10 @@ fn main(id: vec3) { * r=5, i=6, a=v[2], b=v[7], c=v[8], d=v[13] */ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v2.yx; v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy >> ROTATE_24) | ((v7 ^ v8).yx << ROTATE_8); v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v2).xy >> ROTATE_16) | ((v13 ^ v2).yx << ROTATE_16); v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy << ROTATE_1) | ((v7 ^ v8).yx >> ROTATE_31); @@ -812,7 +748,6 @@ fn main(id: vec3) { v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy >> ROTATE_24) | ((v4 ^ v9).yx << ROTATE_8); v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v3).xy >> ROTATE_16) | ((v14 ^ v3).yx << ROTATE_16); v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy << ROTATE_1) | ((v4 ^ v9).yx >> ROTATE_31); @@ -829,12 +764,10 @@ fn main(id: vec3) { * r=6, i=0, a=v[0], b=v[4], c=v[8], d=v[12] */ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v0.yx; v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy >> ROTATE_24) | ((v4 ^ v8).yx << ROTATE_8); v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v0).xy >> ROTATE_16) | ((v12 ^ v0).yx << ROTATE_16); v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy << ROTATE_1) | ((v4 ^ v8).yx >> ROTATE_31); @@ -847,7 +780,6 @@ fn main(id: vec3) { v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy >> ROTATE_24) | ((v5 ^ v9).yx << ROTATE_8); v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v1).xy >> ROTATE_16) | ((v13 ^ v1).yx << ROTATE_16); v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy << ROTATE_1) | ((v5 ^ v9).yx >> ROTATE_31); @@ -856,12 +788,10 @@ fn main(id: vec3) { * r=6, i=2, a=v[2], b=v[6], c=v[10], d=v[14] */ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v2.yx; v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy >> ROTATE_24) | ((v6 ^ v10).yx << ROTATE_8); v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v2).xy >> ROTATE_16) | ((v14 ^ v2).yx << ROTATE_16); v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy << ROTATE_1) | ((v6 ^ v10).yx >> ROTATE_31); @@ -874,7 +804,6 @@ fn main(id: vec3) { v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy >> ROTATE_24) | ((v7 ^ v11).yx << ROTATE_8); v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v3).xy >> ROTATE_16) | ((v15 ^ v3).yx << ROTATE_16); v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy << ROTATE_1) | ((v7 ^ v11).yx >> ROTATE_31); @@ -887,7 +816,6 @@ fn main(id: vec3) { v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy >> ROTATE_24) | ((v5 ^ v10).yx << ROTATE_8); v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v0).xy >> ROTATE_16) | ((v15 ^ v0).yx << ROTATE_16); v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy << ROTATE_1) | ((v5 ^ v10).yx >> ROTATE_31); @@ -896,7 +824,6 @@ fn main(id: vec3) { * r=6, i=5, a=v[1], b=v[6], c=v[11], d=v[12] */ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v1.yx; v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy >> ROTATE_24) | ((v6 ^ v11).yx << ROTATE_8); @@ -909,7 +836,6 @@ fn main(id: vec3) { * r=6, i=6, a=v[2], b=v[7], c=v[8], d=v[13] */ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v2.yx; v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy >> ROTATE_24) | ((v7 ^ v8).yx << ROTATE_8); @@ -922,12 +848,10 @@ fn main(id: vec3) { * r=6, i=7, a=v[3], b=v[4], c=v[9], d=v[14] */ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v3.yx; v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy >> ROTATE_24) | ((v4 ^ v9).yx << ROTATE_8); v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v3).xy >> ROTATE_16) | ((v14 ^ v3).yx << ROTATE_16); v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy << ROTATE_1) | ((v4 ^ v9).yx >> ROTATE_31); @@ -944,12 +868,10 @@ fn main(id: vec3) { * r=7, i=0, a=v[0], b=v[4], c=v[8], d=v[12] */ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v0.yx; v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy >> ROTATE_24) | ((v4 ^ v8).yx << ROTATE_8); v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v0).xy >> ROTATE_16) | ((v12 ^ v0).yx << ROTATE_16); v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy << ROTATE_1) | ((v4 ^ v8).yx >> ROTATE_31); @@ -958,12 +880,10 @@ fn main(id: vec3) { * r=7, i=1, a=v[1], b=v[5], c=v[9], d=v[13] */ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v1.yx; v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy >> ROTATE_24) | ((v5 ^ v9).yx << ROTATE_8); v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v1).xy >> ROTATE_16) | ((v13 ^ v1).yx << ROTATE_16); v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy << ROTATE_1) | ((v5 ^ v9).yx >> ROTATE_31); @@ -972,7 +892,6 @@ fn main(id: vec3) { * r=7, i=2, a=v[2], b=v[6], c=v[10], d=v[14] */ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v2.yx; v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy >> ROTATE_24) | ((v6 ^ v10).yx << ROTATE_8); @@ -989,7 +908,6 @@ fn main(id: vec3) { v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy >> ROTATE_24) | ((v7 ^ v11).yx << ROTATE_8); v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v3).xy >> ROTATE_16) | ((v15 ^ v3).yx << ROTATE_16); v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy << ROTATE_1) | ((v7 ^ v11).yx >> ROTATE_31); @@ -998,7 +916,6 @@ fn main(id: vec3) { * r=7, i=4, a=v[0], b=v[5], c=v[10], d=v[15] */ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v0.yx; v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy >> ROTATE_24) | ((v5 ^ v10).yx << ROTATE_8); @@ -1011,7 +928,6 @@ fn main(id: vec3) { * r=7, i=5, a=v[1], b=v[6], c=v[11], d=v[12] */ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v1.yx; v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy >> ROTATE_24) | ((v6 ^ v11).yx << ROTATE_8); @@ -1024,12 +940,10 @@ fn main(id: vec3) { * r=7, i=6, a=v[2], b=v[7], c=v[8], d=v[13] */ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v2.yx; v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy >> ROTATE_24) | ((v7 ^ v8).yx << ROTATE_8); v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v2).xy >> ROTATE_16) | ((v13 ^ v2).yx << ROTATE_16); v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy << ROTATE_1) | ((v7 ^ v8).yx >> ROTATE_31); @@ -1042,7 +956,6 @@ fn main(id: vec3) { v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy >> ROTATE_24) | ((v4 ^ v9).yx << ROTATE_8); v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v3).xy >> ROTATE_16) | ((v14 ^ v3).yx << ROTATE_16); v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy << ROTATE_1) | ((v4 ^ v9).yx >> ROTATE_31); @@ -1059,12 +972,10 @@ fn main(id: vec3) { * r=8, i=0, a=v[0], b=v[4], c=v[8], d=v[12] */ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v0.yx; v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy >> ROTATE_24) | ((v4 ^ v8).yx << ROTATE_8); v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v0).xy >> ROTATE_16) | ((v12 ^ v0).yx << ROTATE_16); v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy << ROTATE_1) | ((v4 ^ v8).yx >> ROTATE_31); @@ -1073,12 +984,10 @@ fn main(id: vec3) { * r=8, i=1, a=v[1], b=v[5], c=v[9], d=v[13] */ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v1.yx; v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy >> ROTATE_24) | ((v5 ^ v9).yx << ROTATE_8); v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v1).xy >> ROTATE_16) | ((v13 ^ v1).yx << ROTATE_16); v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy << ROTATE_1) | ((v5 ^ v9).yx >> ROTATE_31); @@ -1087,7 +996,6 @@ fn main(id: vec3) { * r=8, i=2, a=v[2], b=v[6], c=v[10], d=v[14] */ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v2.yx; v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy >> ROTATE_24) | ((v6 ^ v10).yx << ROTATE_8); @@ -1104,7 +1012,6 @@ fn main(id: vec3) { v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy >> ROTATE_24) | ((v7 ^ v11).yx << ROTATE_8); v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v3).xy >> ROTATE_16) | ((v15 ^ v3).yx << ROTATE_16); v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy << ROTATE_1) | ((v7 ^ v11).yx >> ROTATE_31); @@ -1113,7 +1020,6 @@ fn main(id: vec3) { * r=8, i=4, a=v[0], b=v[5], c=v[10], d=v[15] */ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v0.yx; v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy >> ROTATE_24) | ((v5 ^ v10).yx << ROTATE_8); @@ -1126,12 +1032,10 @@ fn main(id: vec3) { * r=8, i=5, a=v[1], b=v[6], c=v[11], d=v[12] */ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v1.yx; v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy >> ROTATE_24) | ((v6 ^ v11).yx << ROTATE_8); v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v1).xy >> ROTATE_16) | ((v12 ^ v1).yx << ROTATE_16); v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy << ROTATE_1) | ((v6 ^ v11).yx >> ROTATE_31); @@ -1152,12 +1056,10 @@ fn main(id: vec3) { * r=8, i=7, a=v[3], b=v[4], c=v[9], d=v[14] */ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v3.yx; v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy >> ROTATE_24) | ((v4 ^ v9).yx << ROTATE_8); v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v3).xy >> ROTATE_16) | ((v14 ^ v3).yx << ROTATE_16); v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy << ROTATE_1) | ((v4 ^ v9).yx >> ROTATE_31); @@ -1174,7 +1076,6 @@ fn main(id: vec3) { * r=9, i=0, a=v[0], b=v[4], c=v[8], d=v[12] */ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v0.yx; v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy >> ROTATE_24) | ((v4 ^ v8).yx << ROTATE_8); @@ -1187,7 +1088,6 @@ fn main(id: vec3) { * r=9, i=1, a=v[1], b=v[5], c=v[9], d=v[13] */ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v1.yx; v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy >> ROTATE_24) | ((v5 ^ v9).yx << ROTATE_8); @@ -1200,12 +1100,10 @@ fn main(id: vec3) { * r=9, i=2, a=v[2], b=v[6], c=v[10], d=v[14] */ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v2.yx; v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy >> ROTATE_24) | ((v6 ^ v10).yx << ROTATE_8); v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v2).xy >> ROTATE_16) | ((v14 ^ v2).yx << ROTATE_16); v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy << ROTATE_1) | ((v6 ^ v10).yx >> ROTATE_31); @@ -1218,7 +1116,6 @@ fn main(id: vec3) { v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy >> ROTATE_24) | ((v7 ^ v11).yx << ROTATE_8); v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v3).xy >> ROTATE_16) | ((v15 ^ v3).yx << ROTATE_16); v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy << ROTATE_1) | ((v7 ^ v11).yx >> ROTATE_31); @@ -1227,12 +1124,10 @@ fn main(id: vec3) { * r=9, i=4, a=v[0], b=v[5], c=v[10], d=v[15] */ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v0.yx; v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy >> ROTATE_24) | ((v5 ^ v10).yx << ROTATE_8); v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v0).xy >> ROTATE_16) | ((v15 ^ v0).yx << ROTATE_16); v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy << ROTATE_1) | ((v5 ^ v10).yx >> ROTATE_31); @@ -1241,12 +1136,10 @@ fn main(id: vec3) { * r=9, i=5, a=v[1], b=v[6], c=v[11], d=v[12] */ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v1.yx; v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy >> ROTATE_24) | ((v6 ^ v11).yx << ROTATE_8); v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v1).xy >> ROTATE_16) | ((v12 ^ v1).yx << ROTATE_16); v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy << ROTATE_1) | ((v6 ^ v11).yx >> ROTATE_31); @@ -1259,7 +1152,6 @@ fn main(id: vec3) { v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy >> ROTATE_24) | ((v7 ^ v8).yx << ROTATE_8); v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v2).xy >> ROTATE_16) | ((v13 ^ v2).yx << ROTATE_16); v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy << ROTATE_1) | ((v7 ^ v8).yx >> ROTATE_31); @@ -1268,7 +1160,6 @@ fn main(id: vec3) { * r=9, i=7, a=v[3], b=v[4], c=v[9], d=v[14] */ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v3.yx; v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy >> ROTATE_24) | ((v4 ^ v9).yx << ROTATE_8); @@ -1317,7 +1208,6 @@ fn main(id: vec3) { v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy >> ROTATE_24) | ((v6 ^ v10).yx << ROTATE_8); v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v2).xy >> ROTATE_16) | ((v14 ^ v2).yx << ROTATE_16); v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy << ROTATE_1) | ((v6 ^ v10).yx >> ROTATE_31); @@ -1326,12 +1216,10 @@ fn main(id: vec3) { * r=10, i=3, a=v[3], b=v[7], c=v[11], d=v[15] */ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v3.yx; v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy >> ROTATE_24) | ((v7 ^ v11).yx << ROTATE_8); v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v3).xy >> ROTATE_16) | ((v15 ^ v3).yx << ROTATE_16); v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy << ROTATE_1) | ((v7 ^ v11).yx >> ROTATE_31); @@ -1340,12 +1228,10 @@ fn main(id: vec3) { * r=10, i=4, a=v[0], b=v[5], c=v[10], d=v[15] */ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v0.yx; v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy >> ROTATE_24) | ((v5 ^ v10).yx << ROTATE_8); v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v0).xy >> ROTATE_16) | ((v15 ^ v0).yx << ROTATE_16); v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy << ROTATE_1) | ((v5 ^ v10).yx >> ROTATE_31); @@ -1354,12 +1240,10 @@ fn main(id: vec3) { * r=10, i=5, a=v[1], b=v[6], c=v[11], d=v[12] */ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v1.yx; v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy >> ROTATE_24) | ((v6 ^ v11).yx << ROTATE_8); v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v1).xy >> ROTATE_16) | ((v12 ^ v1).yx << ROTATE_16); v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); v6 = ((v6 ^ v11).xy << ROTATE_1) | ((v6 ^ v11).yx >> ROTATE_31); @@ -1368,12 +1252,10 @@ fn main(id: vec3) { * r=10, i=6, a=v[2], b=v[7], c=v[8], d=v[13] */ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v2.yx; v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy >> ROTATE_24) | ((v7 ^ v8).yx << ROTATE_8); v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v2).xy >> ROTATE_16) | ((v13 ^ v2).yx << ROTATE_16); v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy << ROTATE_1) | ((v7 ^ v8).yx >> ROTATE_31); @@ -1382,12 +1264,10 @@ fn main(id: vec3) { * r=10, i=7, a=v[3], b=v[4], c=v[9], d=v[14] */ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v3.yx; v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy >> ROTATE_24) | ((v4 ^ v9).yx << ROTATE_8); v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v3).xy >> ROTATE_16) | ((v14 ^ v3).yx << ROTATE_16); v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); v4 = ((v4 ^ v9).xy << ROTATE_1) | ((v4 ^ v9).yx >> ROTATE_31); @@ -1404,12 +1284,10 @@ fn main(id: vec3) { * r=11, i=0, a=v[0], b=v[4], c=v[8], d=v[12] */ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = v12.yx ^ v0.yx; v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); v4 = ((v4 ^ v8).xy >> ROTATE_24) | ((v4 ^ v8).yx << ROTATE_8); v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); - // skip since adding 0u does nothing v12 = ((v12 ^ v0).xy >> ROTATE_16) | ((v12 ^ v0).yx << ROTATE_16); v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // skip since it does not affect the final values of `v0` and `v8` @@ -1422,7 +1300,6 @@ fn main(id: vec3) { v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy >> ROTATE_24) | ((v5 ^ v9).yx << ROTATE_8); v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v1).xy >> ROTATE_16) | ((v13 ^ v1).yx << ROTATE_16); v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); v5 = ((v5 ^ v9).xy << ROTATE_1) | ((v5 ^ v9).yx >> ROTATE_31); @@ -1431,12 +1308,10 @@ fn main(id: vec3) { * r=11, i=2, a=v[2], b=v[6], c=v[10], d=v[14] */ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = v14.yx ^ v2.yx; v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); v6 = ((v6 ^ v10).xy >> ROTATE_24) | ((v6 ^ v10).yx << ROTATE_8); v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); - // skip since adding 0u does nothing v14 = ((v14 ^ v2).xy >> ROTATE_16) | ((v14 ^ v2).yx << ROTATE_16); v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); // skip since it does not affect the final values of `v0` and `v8` @@ -1445,12 +1320,10 @@ fn main(id: vec3) { * r=11, i=3, a=v[3], b=v[7], c=v[11], d=v[15] */ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = v15.yx ^ v3.yx; v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy >> ROTATE_24) | ((v7 ^ v11).yx << ROTATE_8); v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); - // skip since adding 0u does nothing v15 = ((v15 ^ v3).xy >> ROTATE_16) | ((v15 ^ v3).yx << ROTATE_16); v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); v7 = ((v7 ^ v11).xy << ROTATE_1) | ((v7 ^ v11).yx >> ROTATE_31); @@ -1463,7 +1336,6 @@ fn main(id: vec3) { v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); v5 = ((v5 ^ v10).xy >> ROTATE_24) | ((v5 ^ v10).yx << ROTATE_8); v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); - // skip since adding 0u does nothing // skip since it does not affect the final values of `v0` and `v8` // skip since it does not affect the final values of `v0` and `v8` // skip since it does not affect the final values of `v0` and `v8` @@ -1477,12 +1349,10 @@ fn main(id: vec3) { * r=11, i=6, a=v[2], b=v[7], c=v[8], d=v[13] */ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = v13.yx ^ v2.yx; v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); v7 = ((v7 ^ v8).xy >> ROTATE_24) | ((v7 ^ v8).yx << ROTATE_8); v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); - // skip since adding 0u does nothing v13 = ((v13 ^ v2).xy >> ROTATE_16) | ((v13 ^ v2).yx << ROTATE_16); v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); // skip since we already have the final values of `v0` and `v8` -- 2.34.1