From 62e2fa4d9ea23039bac5c93a3f80598e52f7d86b Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Tue, 14 Jan 2025 13:43:35 -0800 Subject: [PATCH] Replace another 32-bit rotation. --- src/shaders/compute.wgsl | 132 +++++++++++++++++++++------------------ 1 file changed, 72 insertions(+), 60 deletions(-) diff --git a/src/shaders/compute.wgsl b/src/shaders/compute.wgsl index b89fe92..48922eb 100644 --- a/src/shaders/compute.wgsl +++ b/src/shaders/compute.wgsl @@ -164,11 +164,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { v_23 = v_23 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v_23.x + m4 < v_23.x); // d = rotr64(d ^ a, 32) - v_2627.x = v26; - v_2627.y = v27; - v_2627 = v_2627 ^ v_23; - v26 = v_2627.y; - v27 = v_2627.x; + v26 = v_2627.x; + v27 = v_2627.y; + xor = v_2627 ^ v_23; + v_2627 = vec2(xor.y, xor.x); + v26 = v_2627.x; + v27 = v_2627.y; // c = c + d v_2627.x = v26; @@ -673,11 +674,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // d = rotr64(d ^ a, 32) - v_2627.x = v26; - v_2627.y = v27; - v_2627 = v_2627 ^ v_23; - v26 = v_2627.y; - v27 = v_2627.x; + v26 = v_2627.x; + v27 = v_2627.y; + xor = v_2627 ^ v_23; + v_2627 = vec2(xor.y, xor.x); + v26 = v_2627.x; + v27 = v_2627.y; // c = c + d @@ -1460,11 +1462,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // d = rotr64(d ^ a, 32) - v_2627.x = v26; - v_2627.y = v27; - v_2627 = v_2627 ^ v_23; - v26 = v_2627.y; - v27 = v_2627.x; + v26 = v_2627.x; + v27 = v_2627.y; + xor = v_2627 ^ v_23; + v_2627 = vec2(xor.y, xor.x); + v26 = v_2627.x; + v27 = v_2627.y; // c = c + d @@ -2255,11 +2258,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // d = rotr64(d ^ a, 32) - v_2627.x = v26; - v_2627.y = v27; - v_2627 = v_2627 ^ v_23; - v26 = v_2627.y; - v27 = v_2627.x; + v26 = v_2627.x; + v27 = v_2627.y; + xor = v_2627 ^ v_23; + v_2627 = vec2(xor.y, xor.x); + v26 = v_2627.x; + v27 = v_2627.y; // c = c + d @@ -3044,11 +3048,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // d = rotr64(d ^ a, 32) - v_2627.x = v26; - v_2627.y = v27; - v_2627 = v_2627 ^ v_23; - v26 = v_2627.y; - v27 = v_2627.x; + v26 = v_2627.x; + v27 = v_2627.y; + xor = v_2627 ^ v_23; + v_2627 = vec2(xor.y, xor.x); + v26 = v_2627.x; + v27 = v_2627.y; // c = c + d @@ -3831,11 +3836,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // d = rotr64(d ^ a, 32) - v_2627.x = v26; - v_2627.y = v27; - v_2627 = v_2627 ^ v_23; - v26 = v_2627.y; - v27 = v_2627.x; + v26 = v_2627.x; + v27 = v_2627.y; + xor = v_2627 ^ v_23; + v_2627 = vec2(xor.y, xor.x); + v26 = v_2627.x; + v27 = v_2627.y; // c = c + d @@ -4621,11 +4627,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // d = rotr64(d ^ a, 32) - v_2627.x = v26; - v_2627.y = v27; - v_2627 = v_2627 ^ v_23; - v26 = v_2627.y; - v27 = v_2627.x; + v26 = v_2627.x; + v27 = v_2627.y; + xor = v_2627 ^ v_23; + v_2627 = vec2(xor.y, xor.x); + v26 = v_2627.x; + v27 = v_2627.y; // c = c + d @@ -5406,11 +5413,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // d = rotr64(d ^ a, 32) - v_2627.x = v26; - v_2627.y = v27; - v_2627 = v_2627 ^ v_23; - v26 = v_2627.y; - v27 = v_2627.x; + v26 = v_2627.x; + v27 = v_2627.y; + xor = v_2627 ^ v_23; + v_2627 = vec2(xor.y, xor.x); + v26 = v_2627.x; + v27 = v_2627.y; // c = c + d @@ -6195,11 +6203,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // d = rotr64(d ^ a, 32) - v_2627.x = v26; - v_2627.y = v27; - v_2627 = v_2627 ^ v_23; - v26 = v_2627.y; - v27 = v_2627.x; + v26 = v_2627.x; + v27 = v_2627.y; + xor = v_2627 ^ v_23; + v_2627 = vec2(xor.y, xor.x); + v26 = v_2627.x; + v27 = v_2627.y; // c = c + d @@ -6986,11 +6995,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // d = rotr64(d ^ a, 32) - v_2627.x = v26; - v_2627.y = v27; - v_2627 = v_2627 ^ v_23; - v26 = v_2627.y; - v27 = v_2627.x; + v26 = v_2627.x; + v27 = v_2627.y; + xor = v_2627 ^ v_23; + v_2627 = vec2(xor.y, xor.x); + v26 = v_2627.x; + v27 = v_2627.y; // c = c + d @@ -7781,11 +7791,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // d = rotr64(d ^ a, 32) - v_2627.x = v26; - v_2627.y = v27; - v_2627 = v_2627 ^ v_23; - v26 = v_2627.y; - v27 = v_2627.x; + v26 = v_2627.x; + v27 = v_2627.y; + xor = v_2627 ^ v_23; + v_2627 = vec2(xor.y, xor.x); + v26 = v_2627.x; + v27 = v_2627.y; // c = c + d @@ -8564,11 +8575,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // d = rotr64(d ^ a, 32) - v_2627.x = v26; - v_2627.y = v27; - v_2627 = v_2627 ^ v_23; - v26 = v_2627.y; - v27 = v_2627.x; + v26 = v_2627.x; + v27 = v_2627.y; + xor = v_2627 ^ v_23; + v_2627 = vec2(xor.y, xor.x); + v26 = v_2627.x; + v27 = v_2627.y; // c = c + d -- 2.34.1