From: Chris Duncan Date: Thu, 16 Jan 2025 13:30:01 +0000 (-0800) Subject: Replace all 24-bit rotations with swizzle version. X-Git-Url: https://zoso.dev/?a=commitdiff_plain;h=b203c23f0696fa014403659d2a847488f1af66cb;p=nano-pow.git Replace all 24-bit rotations with swizzle version. --- diff --git a/src/shaders/compute.wgsl b/src/shaders/compute.wgsl index ccf8979..b63d95d 100644 --- a/src/shaders/compute.wgsl +++ b/src/shaders/compute.wgsl @@ -161,7 +161,6 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 32) xor = v13 ^ v1; - // v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); v13 = xor.yx; // c = c + d @@ -169,7 +168,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v9; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); @@ -179,6 +178,7 @@ fn main(id: vec3) { // d = rotr64(d ^ a, 16) xor = v13 ^ v1; + // v12 = vec2((xor.xy >> vec2(16u, 16u)) | (xor.yx << vec2(16u, 16u))); v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); // c = c + d @@ -186,6 +186,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 63) xor = v5 ^ v9; + // v4 = vec2((xor.xy << vec2(1u, 1u)) | (xor.yx >> vec2(31u, 31u))); v5 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -211,7 +212,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v10; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); @@ -253,7 +254,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v11; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); @@ -295,7 +296,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v10; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); @@ -337,7 +338,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v11; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); @@ -379,7 +380,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v8; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); @@ -509,7 +510,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v9; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); @@ -551,7 +552,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v10; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); @@ -593,7 +594,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v11; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); @@ -635,7 +636,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v10; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); @@ -677,7 +678,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v11; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); @@ -719,7 +720,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v8; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); @@ -849,7 +850,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v9; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); @@ -891,7 +892,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v10; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); @@ -933,7 +934,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v11; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); @@ -975,7 +976,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v10; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); @@ -1017,7 +1018,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v11; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); @@ -1059,7 +1060,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v8; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); @@ -1189,7 +1190,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v9; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); @@ -1231,7 +1232,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v10; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); @@ -1273,7 +1274,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v11; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); @@ -1315,7 +1316,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v10; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); @@ -1357,7 +1358,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v11; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); @@ -1399,7 +1400,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v8; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); @@ -1529,7 +1530,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v9; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); @@ -1571,7 +1572,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v10; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); @@ -1613,7 +1614,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v11; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); @@ -1655,7 +1656,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v10; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); @@ -1697,7 +1698,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v11; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); @@ -1739,7 +1740,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v8; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); @@ -1869,7 +1870,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v9; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); @@ -1911,7 +1912,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v10; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); @@ -1953,7 +1954,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v11; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); @@ -1995,7 +1996,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v10; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); @@ -2037,7 +2038,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v11; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); @@ -2079,7 +2080,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v8; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); @@ -2209,7 +2210,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v9; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); @@ -2251,7 +2252,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v10; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); @@ -2293,7 +2294,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v11; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); @@ -2335,7 +2336,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v10; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); @@ -2377,7 +2378,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v11; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); @@ -2419,7 +2420,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v8; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); @@ -2549,7 +2550,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v9; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); @@ -2591,7 +2592,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v10; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); @@ -2633,7 +2634,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v11; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); @@ -2675,7 +2676,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v10; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); @@ -2717,7 +2718,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v11; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); @@ -2759,7 +2760,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v8; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); @@ -2889,7 +2890,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v9; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); @@ -2931,7 +2932,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v10; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); @@ -2973,7 +2974,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v11; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); @@ -3015,7 +3016,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v10; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); @@ -3057,7 +3058,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v11; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); @@ -3099,7 +3100,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v8; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); @@ -3229,7 +3230,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v9; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); @@ -3271,7 +3272,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v10; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); @@ -3313,7 +3314,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v11; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); @@ -3355,7 +3356,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v10; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); @@ -3397,7 +3398,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v11; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); @@ -3439,7 +3440,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v8; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); @@ -3569,7 +3570,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v9; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); @@ -3611,7 +3612,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v10; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); @@ -3653,7 +3654,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v11; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); @@ -3695,7 +3696,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v10; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); @@ -3737,7 +3738,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v11; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); @@ -3779,7 +3780,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v8; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); @@ -3909,7 +3910,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v9; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); @@ -3951,7 +3952,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v10; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); @@ -3993,7 +3994,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v11; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); @@ -4035,7 +4036,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v5 ^ v10; - v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v5 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); @@ -4077,7 +4078,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v6 ^ v11; - v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v6 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); @@ -4119,7 +4120,7 @@ fn main(id: vec3) { // b = rotr64(b ^ c, 24) xor = v7 ^ v8; - v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + v7 = vec2((xor.xy >> vec2(24u, 24u)) | (xor.yx << vec2(8u, 8u))); // a = a + b v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));