]> zoso.dev Git - nano-pow.git/commitdiff
Replace rest of 16-bit scalar rotations with vector rotations.
authorChris Duncan <chris@zoso.dev>
Tue, 14 Jan 2025 19:40:47 +0000 (11:40 -0800)
committerChris Duncan <chris@zoso.dev>
Tue, 14 Jan 2025 19:40:47 +0000 (11:40 -0800)
src/shaders/compute.wgsl

index 3a887f516c59d9b1b4f1961644464262bfeee38f..5cff052b5acd59a9355e1c1edee41d9322cb3a25 100644 (file)
@@ -293,10 +293,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v2;
-       xor1 = v27 ^ v3;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_23;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -393,10 +397,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v4;
-       xor1 = v29 ^ v5;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_45;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -496,10 +504,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v6;
-       xor1 = v31 ^ v7;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_67;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -581,10 +593,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // // skip since adding 0u does nothing
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v0;
-       xor1 = v31 ^ v1;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_01.x = v0;
+       v_01.y = v1;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_01;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -684,10 +700,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v25 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       xor = v_2425 ^ v_23;
+       v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v24 = v_2425.x;
+       v25 = v_2425.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -787,10 +807,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v4;
-       xor1 = v27 ^ v5;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_45;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1617.x = v16;
@@ -890,10 +914,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v6;
-       xor1 = v29 ^ v7;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_67;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -1081,10 +1109,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v2;
-       xor1 = v27 ^ v3;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_23;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -1184,10 +1216,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v4;
-       xor1 = v29 ^ v5;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_45;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -1287,10 +1323,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v6;
-       xor1 = v31 ^ v7;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_67;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -1378,10 +1418,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // // skip since adding 0u does nothing
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v0;
-       xor1 = v31 ^ v1;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_01.x = v0;
+       v_01.y = v1;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_01;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -1475,10 +1519,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v25 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       xor = v_2425 ^ v_23;
+       v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v24 = v_2425.x;
+       v25 = v_2425.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -1578,10 +1626,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v4;
-       xor1 = v27 ^ v5;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_45;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1617.x = v16;
@@ -1678,10 +1730,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v6;
-       xor1 = v29 ^ v7;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_67;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -1869,10 +1925,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v2;
-       xor1 = v27 ^ v3;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_23;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -1969,10 +2029,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v4;
-       xor1 = v29 ^ v5;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_45;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -2072,10 +2136,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v6;
-       xor1 = v31 ^ v7;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_67;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -2157,10 +2225,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // // skip since adding 0u does nothing
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v0;
-       xor1 = v31 ^ v1;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_01.x = v0;
+       v_01.y = v1;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_01;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -2257,10 +2329,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v25 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       xor = v_2425 ^ v_23;
+       v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v24 = v_2425.x;
+       v25 = v_2425.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -2357,10 +2433,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v4;
-       xor1 = v27 ^ v5;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_45;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1617.x = v16;
@@ -2457,10 +2537,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v6;
-       xor1 = v29 ^ v7;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_67;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -2645,10 +2729,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v2;
-       xor1 = v27 ^ v3;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_23;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -2748,10 +2836,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v4;
-       xor1 = v29 ^ v5;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_45;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -2851,10 +2943,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v6;
-       xor1 = v31 ^ v7;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_67;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -2942,10 +3038,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // // skip since adding 0u does nothing
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v0;
-       xor1 = v31 ^ v1;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_01.x = v0;
+       v_01.y = v1;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_01;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -3045,10 +3145,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v25 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       xor = v_2425 ^ v_23;
+       v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v24 = v_2425.x;
+       v25 = v_2425.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -3142,10 +3246,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v4;
-       xor1 = v27 ^ v5;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_45;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1617.x = v16;
@@ -3245,10 +3353,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v6;
-       xor1 = v29 ^ v7;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_67;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -3445,10 +3557,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v2;
-       xor1 = v27 ^ v3;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_23;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -3542,10 +3658,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v4;
-       xor1 = v29 ^ v5;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_45;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -3645,10 +3765,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v6;
-       xor1 = v31 ^ v7;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_67;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -3736,10 +3860,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v1 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v0;
-       xor1 = v31 ^ v1;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_01.x = v0;
+       v_01.y = v1;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_01;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -3839,10 +3967,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v25 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       xor = v_2425 ^ v_23;
+       v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v24 = v_2425.x;
+       v25 = v_2425.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -3942,10 +4074,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v4;
-       xor1 = v27 ^ v5;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_45;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1617.x = v16;
@@ -4042,10 +4178,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v6;
-       xor1 = v29 ^ v7;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_67;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -4242,10 +4382,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v2;
-       xor1 = v27 ^ v3;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_23;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -4342,10 +4486,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v4;
-       xor1 = v29 ^ v5;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_45;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -4442,10 +4590,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v6;
-       xor1 = v31 ^ v7;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_67;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -4533,10 +4685,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // // skip since adding 0u does nothing
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v0;
-       xor1 = v31 ^ v1;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_01.x = v0;
+       v_01.y = v1;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_01;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -4636,10 +4792,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v25 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       xor = v_2425 ^ v_23;
+       v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v24 = v_2425.x;
+       v25 = v_2425.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -4739,10 +4899,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v4;
-       xor1 = v27 ^ v5;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_45;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1617.x = v16;
@@ -4839,10 +5003,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v6;
-       xor1 = v29 ^ v7;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_67;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -5030,10 +5198,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v2;
-       xor1 = v27 ^ v3;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_23;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -5133,10 +5305,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v4;
-       xor1 = v29 ^ v5;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_45;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -5233,10 +5409,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v6;
-       xor1 = v31 ^ v7;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_67;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -5324,10 +5504,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // // skip since adding 0u does nothing
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v0;
-       xor1 = v31 ^ v1;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_01.x = v0;
+       v_01.y = v1;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_01;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -5424,10 +5608,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v25 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       xor = v_2425 ^ v_23;
+       v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v24 = v_2425.x;
+       v25 = v_2425.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -5524,10 +5712,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v4;
-       xor1 = v27 ^ v5;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_45;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1617.x = v16;
@@ -5627,10 +5819,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v6;
-       xor1 = v29 ^ v7;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_67;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -5821,10 +6017,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v2;
-       xor1 = v27 ^ v3;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_23;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -5921,10 +6121,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v4;
-       xor1 = v29 ^ v5;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_45;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -6021,10 +6225,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v6;
-       xor1 = v31 ^ v7;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_67;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -6112,10 +6320,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v1 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v0;
-       xor1 = v31 ^ v1;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_01.x = v0;
+       v_01.y = v1;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_01;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -6212,10 +6424,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v25 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       xor = v_2425 ^ v_23;
+       v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v24 = v_2425.x;
+       v25 = v_2425.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -6315,10 +6531,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v4;
-       xor1 = v27 ^ v5;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_45;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1617.x = v16;
@@ -6415,10 +6635,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v6;
-       xor1 = v29 ^ v7;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_67;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -6609,10 +6833,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v2;
-       xor1 = v27 ^ v3;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_23;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -6709,10 +6937,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v4;
-       xor1 = v29 ^ v5;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_45;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -6809,10 +7041,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v6;
-       xor1 = v31 ^ v7;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_67;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -6900,10 +7136,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v1 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v0;
-       xor1 = v31 ^ v1;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_01.x = v0;
+       v_01.y = v1;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_01;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -7003,10 +7243,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v25 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       xor = v_2425 ^ v_23;
+       v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v24 = v_2425.x;
+       v25 = v_2425.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -7100,10 +7344,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v4;
-       xor1 = v27 ^ v5;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_45;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1617.x = v16;
@@ -7203,10 +7451,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v6;
-       xor1 = v29 ^ v7;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_67;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -7400,10 +7652,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v2;
-       xor1 = v27 ^ v3;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_23;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -7503,10 +7759,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v4;
-       xor1 = v29 ^ v5;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_45;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -7603,10 +7863,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v6;
-       xor1 = v31 ^ v7;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_67;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -7688,10 +7952,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // // skip since adding 0u does nothing
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v0;
-       xor1 = v31 ^ v1;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_01.x = v0;
+       v_01.y = v1;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_01;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -7791,10 +8059,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v25 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       xor = v_2425 ^ v_23;
+       v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v24 = v_2425.x;
+       v25 = v_2425.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -7891,10 +8163,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v4;
-       xor1 = v27 ^ v5;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_45;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1617.x = v16;
@@ -7991,10 +8267,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v6;
-       xor1 = v29 ^ v7;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_67;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -8191,10 +8471,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v2;
-       xor1 = v27 ^ v3;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_23;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -8291,10 +8575,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v4;
-       xor1 = v29 ^ v5;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_45;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -8394,10 +8682,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v6;
-       xor1 = v31 ^ v7;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_67;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -8479,10 +8771,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // // skip since adding 0u does nothing
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v0;
-       xor1 = v31 ^ v1;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_01.x = v0;
+       v_01.y = v1;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_01;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -8582,10 +8878,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v25 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       xor = v_2425 ^ v_23;
+       v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v24 = v_2425.x;
+       v25 = v_2425.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -8685,10 +8985,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v4;
-       xor1 = v27 ^ v5;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_45;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1617.x = v16;
@@ -8788,10 +9092,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v6;
-       xor1 = v29 ^ v7;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_67;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -8979,10 +9287,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v2;
-       xor1 = v27 ^ v3;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_23;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1819.x = v18;
@@ -9082,10 +9394,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v4;
-       xor1 = v29 ^ v5;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_45;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -9185,10 +9501,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v6;
-       xor1 = v31 ^ v7;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_67;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -9276,10 +9596,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // // skip since adding 0u does nothing
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v30 ^ v0;
-       xor1 = v31 ^ v1;
-       v30 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v31 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_01.x = v0;
+       v_01.y = v1;
+       v_3031.x = v30;
+       v_3031.y = v31;
+       xor = v_3031 ^ v_01;
+       v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v30 = v_3031.x;
+       v31 = v_3031.y;
 
        // c = c + d
        v_2021.x = v20;
@@ -9373,10 +9697,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v3 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v25 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       xor = v_2425 ^ v_23;
+       v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v24 = v_2425.x;
+       v25 = v_2425.y;
 
        // c = c + d
        v_2223.x = v22;
@@ -9476,10 +9804,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v5 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v26 ^ v4;
-       xor1 = v27 ^ v5;
-       v26 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v27 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_45.x = v4;
+       v_45.y = v5;
+       v_2627.x = v26;
+       v_2627.y = v27;
+       xor = v_2627 ^ v_45;
+       v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v26 = v_2627.x;
+       v27 = v_2627.y;
 
        // c = c + d
        v_1617.x = v16;
@@ -9576,10 +9908,14 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v7 = o1;
 
        // d = rotr64(d ^ a, 16)
-       xor0 = v28 ^ v6;
-       xor1 = v29 ^ v7;
-       v28 = (xor0 >> 16u) ^ (xor1 << 16u);
-       v29 = (xor1 >> 16u) ^ (xor0 << 16u);
+       v_67.x = v6;
+       v_67.y = v7;
+       v_2829.x = v28;
+       v_2829.y = v29;
+       xor = v_2829 ^ v_67;
+       v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
+       v28 = v_2829.x;
+       v29 = v_2829.y;
 
        // c = c + d
        v_1819.x = v18;