]> zoso.dev Git - nano-pow.git/commitdiff
Replace all 24-bit rotations with swizzle version.
authorChris Duncan <chris@zoso.dev>
Thu, 16 Jan 2025 13:30:01 +0000 (05:30 -0800)
committerChris Duncan <chris@zoso.dev>
Thu, 16 Jan 2025 13:30:01 +0000 (05:30 -0800)
src/shaders/compute.wgsl

index ccf89795b225bb4f7b4ceb31b9c5103bbc1699d4..b63d95d18ea25cf7bc1afb6aede09849156bac05 100644 (file)
@@ -161,7 +161,6 @@ fn main(id: vec3<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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<u32>) {
 
        // 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));