]> zoso.dev Git - nano-pow.git/commitdiff
Replace more 32-bit scalar rotations with vector rotations.
authorChris Duncan <chris@zoso.dev>
Tue, 14 Jan 2025 18:47:56 +0000 (10:47 -0800)
committerChris Duncan <chris@zoso.dev>
Tue, 14 Jan 2025 18:47:56 +0000 (10:47 -0800)
src/shaders/compute.wgsl

index b26bb20990e6c6ad1091d710ee72684ea950a3bb..ad68c439ec3fa99994f3c1e2c6f8ca83a475359e 100644 (file)
@@ -608,10 +608,13 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 32)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = xor1;
-       v25 = xor0;
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       v_2425 = v_2425 ^ v_23;
+       v24 = v_2425.y;
+       v25 = v_2425.x;
 
        // c = c + d
        v_2223.x = v22;
@@ -1357,10 +1360,13 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v3 = o1;
 
        // d = rotr64(d ^ a, 32)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = xor1;
-       v25 = xor0;
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       v_2425 = v_2425 ^ v_23;
+       v24 = v_2425.y;
+       v25 = v_2425.x;
 
        // c = c + d
        v_2223.x = v22;
@@ -2091,10 +2097,13 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v3 = o1;
 
        // d = rotr64(d ^ a, 32)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = xor1;
-       v25 = xor0;
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       v_2425 = v_2425 ^ v_23;
+       v24 = v_2425.y;
+       v25 = v_2425.x;
 
        // c = c + d
        v_2223.x = v22;
@@ -2834,10 +2843,13 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 32)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = xor1;
-       v25 = xor0;
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       v_2425 = v_2425 ^ v_23;
+       v24 = v_2425.y;
+       v25 = v_2425.x;
 
        // c = c + d
        v_2223.x = v22;
@@ -3583,10 +3595,13 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 32)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = xor1;
-       v25 = xor0;
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       v_2425 = v_2425 ^ v_23;
+       v24 = v_2425.y;
+       v25 = v_2425.x;
 
        // c = c + d
        v_2223.x = v22;
@@ -4335,10 +4350,13 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 32)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = xor1;
-       v25 = xor0;
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       v_2425 = v_2425 ^ v_23;
+       v24 = v_2425.y;
+       v25 = v_2425.x;
 
        // c = c + d
        v_2223.x = v22;
@@ -5081,10 +5099,13 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 32)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = xor1;
-       v25 = xor0;
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       v_2425 = v_2425 ^ v_23;
+       v24 = v_2425.y;
+       v25 = v_2425.x;
 
        // c = c + d
        v_2223.x = v22;
@@ -5824,10 +5845,13 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 32)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = xor1;
-       v25 = xor0;
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       v_2425 = v_2425 ^ v_23;
+       v24 = v_2425.y;
+       v25 = v_2425.x;
 
        // c = c + d
        v_2223.x = v22;
@@ -6567,10 +6591,13 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 32)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = xor1;
-       v25 = xor0;
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       v_2425 = v_2425 ^ v_23;
+       v24 = v_2425.y;
+       v25 = v_2425.x;
 
        // c = c + d
        v_2223.x = v22;
@@ -7310,10 +7337,13 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 32)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = xor1;
-       v25 = xor0;
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       v_2425 = v_2425 ^ v_23;
+       v24 = v_2425.y;
+       v25 = v_2425.x;
 
        // c = c + d
        v_2223.x = v22;
@@ -8056,10 +8086,13 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        // v3 = o1;
 
        // d = rotr64(d ^ a, 32)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = xor1;
-       v25 = xor0;
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       v_2425 = v_2425 ^ v_23;
+       v24 = v_2425.y;
+       v25 = v_2425.x;
 
        // c = c + d
        v_2223.x = v22;
@@ -8805,10 +8838,13 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
        v3 = o1;
 
        // d = rotr64(d ^ a, 32)
-       xor0 = v24 ^ v2;
-       xor1 = v25 ^ v3;
-       v24 = xor1;
-       v25 = xor0;
+       v_23.x = v2;
+       v_23.y = v3;
+       v_2425.x = v24;
+       v_2425.y = v25;
+       v_2425 = v_2425 ^ v_23;
+       v24 = v_2425.y;
+       v25 = v_2425.x;
 
        // c = c + d
        v_2223.x = v22;