From 2ee029957f89830c125d9bee796f71c1da3aca71 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Thu, 16 Jan 2025 05:28:54 -0800 Subject: [PATCH] Replace all 32-bit rotations with swizzle. Start working on other rotations. --- src/shaders/compute.wgsl | 334 +++++++++++++++++++-------------------- 1 file changed, 167 insertions(+), 167 deletions(-) diff --git a/src/shaders/compute.wgsl b/src/shaders/compute.wgsl index fc41959..ccf8979 100644 --- a/src/shaders/compute.wgsl +++ b/src/shaders/compute.wgsl @@ -126,7 +126,6 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v4 ^ v8; - // v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b @@ -137,14 +136,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v0; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 63) xor = v4 ^ v8; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -162,7 +161,8 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v1; - v13 = vec2(xor.y, xor.x); + // v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); + v13 = xor.yx; // c = c + d v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); @@ -204,7 +204,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v2; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); @@ -246,7 +246,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v3; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); @@ -288,7 +288,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v0; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); @@ -330,7 +330,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v1; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -347,7 +347,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v1; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -372,7 +372,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v2; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); @@ -414,14 +414,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v3; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v9; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); @@ -438,7 +438,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 63) xor = v4 ^ v9; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -460,14 +460,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v0; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v8; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); @@ -477,14 +477,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v0; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 63) xor = v4 ^ v8; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -502,7 +502,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v1; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); @@ -544,7 +544,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v2; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); @@ -586,7 +586,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v3; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); @@ -628,7 +628,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v0; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); @@ -670,7 +670,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v1; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -687,7 +687,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v1; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -712,7 +712,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v2; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); @@ -754,14 +754,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v3; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v9; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); @@ -778,7 +778,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 63) xor = v4 ^ v9; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -800,14 +800,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v0; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v8; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); @@ -817,14 +817,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v0; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 63) xor = v4 ^ v8; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -842,7 +842,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v1; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); @@ -884,7 +884,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v2; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); @@ -926,7 +926,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v3; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); @@ -968,7 +968,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v0; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); @@ -1010,7 +1010,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v1; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -1027,7 +1027,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v1; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -1052,7 +1052,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v2; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); @@ -1094,14 +1094,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v3; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v9; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); @@ -1118,7 +1118,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 63) xor = v4 ^ v9; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -1140,14 +1140,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v0; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v8; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); @@ -1157,14 +1157,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v0; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 63) xor = v4 ^ v8; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -1182,7 +1182,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v1; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); @@ -1224,7 +1224,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v2; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); @@ -1266,7 +1266,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v3; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); @@ -1308,7 +1308,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v0; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); @@ -1350,7 +1350,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v1; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -1367,7 +1367,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v1; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -1392,7 +1392,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v2; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); @@ -1434,14 +1434,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v3; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v9; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); @@ -1458,7 +1458,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 63) xor = v4 ^ v9; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -1480,14 +1480,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v0; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v8; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); @@ -1497,14 +1497,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v0; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 63) xor = v4 ^ v8; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -1522,7 +1522,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v1; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); @@ -1564,7 +1564,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v2; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); @@ -1606,7 +1606,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v3; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); @@ -1648,7 +1648,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v0; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); @@ -1690,7 +1690,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v1; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -1707,7 +1707,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v1; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -1732,7 +1732,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v2; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); @@ -1774,14 +1774,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v3; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v9; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); @@ -1798,7 +1798,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 63) xor = v4 ^ v9; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -1820,14 +1820,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v0; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v8; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); @@ -1837,14 +1837,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v0; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 63) xor = v4 ^ v8; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -1862,7 +1862,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v1; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); @@ -1904,7 +1904,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v2; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); @@ -1946,7 +1946,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v3; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); @@ -1988,7 +1988,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v0; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); @@ -2030,7 +2030,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v1; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -2047,7 +2047,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v1; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -2072,7 +2072,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v2; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); @@ -2114,14 +2114,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v3; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v9; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); @@ -2138,7 +2138,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 63) xor = v4 ^ v9; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -2160,14 +2160,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v0; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v8; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); @@ -2177,14 +2177,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v0; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 63) xor = v4 ^ v8; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -2202,7 +2202,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v1; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); @@ -2244,7 +2244,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v2; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); @@ -2286,7 +2286,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v3; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); @@ -2328,7 +2328,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v0; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); @@ -2370,7 +2370,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v1; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -2387,7 +2387,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v1; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -2412,7 +2412,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v2; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); @@ -2454,14 +2454,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v3; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v9; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); @@ -2478,7 +2478,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 63) xor = v4 ^ v9; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -2500,14 +2500,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v0; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v8; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); @@ -2517,14 +2517,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v0; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 63) xor = v4 ^ v8; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -2542,7 +2542,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v1; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); @@ -2584,7 +2584,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v2; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); @@ -2626,7 +2626,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v3; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); @@ -2668,7 +2668,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v0; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); @@ -2710,7 +2710,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v1; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -2727,7 +2727,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v1; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -2752,7 +2752,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v2; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); @@ -2794,14 +2794,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v3; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v9; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); @@ -2818,7 +2818,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 63) xor = v4 ^ v9; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -2840,14 +2840,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v0; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v8; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); @@ -2857,14 +2857,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v0; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 63) xor = v4 ^ v8; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -2882,7 +2882,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v1; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); @@ -2924,7 +2924,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v2; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); @@ -2966,7 +2966,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v3; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); @@ -3008,7 +3008,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v0; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); @@ -3050,7 +3050,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v1; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -3067,7 +3067,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v1; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -3092,7 +3092,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v2; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); @@ -3134,14 +3134,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v3; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v9; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); @@ -3158,7 +3158,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 63) xor = v4 ^ v9; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -3180,14 +3180,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v0; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v8; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); @@ -3197,14 +3197,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v0; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 63) xor = v4 ^ v8; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -3222,7 +3222,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v1; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); @@ -3264,7 +3264,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v2; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); @@ -3306,7 +3306,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v3; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); @@ -3348,7 +3348,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v0; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); @@ -3390,7 +3390,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v1; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -3407,7 +3407,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v1; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -3432,7 +3432,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v2; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); @@ -3474,14 +3474,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v3; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v9; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); @@ -3498,7 +3498,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 63) xor = v4 ^ v9; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -3520,14 +3520,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v0; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v8; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); @@ -3537,14 +3537,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v0; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 63) xor = v4 ^ v8; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -3562,7 +3562,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v1; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); @@ -3604,7 +3604,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v2; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); @@ -3646,7 +3646,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v3; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); @@ -3688,7 +3688,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v0; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); @@ -3730,7 +3730,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v1; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -3747,7 +3747,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v1; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -3772,7 +3772,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v2; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); @@ -3814,14 +3814,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v3; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v9; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); @@ -3838,7 +3838,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 63) xor = v4 ^ v9; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -3860,14 +3860,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v0; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v8; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); @@ -3877,14 +3877,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v0; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x)); // b = rotr64(b ^ c, 63) xor = v4 ^ v8; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); @@ -3902,7 +3902,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v1; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x)); @@ -3944,7 +3944,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v2; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x)); @@ -3986,7 +3986,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v3; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x)); @@ -4028,7 +4028,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v15 ^ v0; - v15 = vec2(xor.y, xor.x); + v15 = xor.yx; // c = c + d v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x)); @@ -4070,7 +4070,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v12 ^ v1; - v12 = vec2(xor.y, xor.x); + v12 = xor.yx; // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -4087,7 +4087,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v12 ^ v1; - v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); // c = c + d v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x)); @@ -4112,7 +4112,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v2; - v13 = vec2(xor.y, xor.x); + v13 = xor.yx; // c = c + d v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x)); @@ -4154,14 +4154,14 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v14 ^ v3; - v14 = vec2(xor.y, xor.x); + v14 = xor.yx; // c = c + d v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x)); // b = rotr64(b ^ c, 24) xor = v4 ^ v9; - v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v4 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); @@ -4178,7 +4178,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 63) xor = v4 ^ v9; - v4 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); + v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); -- 2.34.1