From: Chris Duncan Date: Tue, 14 Jan 2025 16:36:29 +0000 (-0800) Subject: Replace more scalar addition with vector addition. X-Git-Tag: v2.0.0~130 X-Git-Url: https://zoso.dev/?a=commitdiff_plain;h=84b31cebfe17185f303660aa4f59adb347dc53ea;p=nano-pow.git Replace more scalar addition with vector addition. --- diff --git a/src/shaders/compute.wgsl b/src/shaders/compute.wgsl index c8b6f83..a7a8ddc 100644 --- a/src/shaders/compute.wgsl +++ b/src/shaders/compute.wgsl @@ -784,11 +784,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+0]] // // skip since adding 0u does nothing @@ -807,11 +811,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = xor0; // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 24) xor0 = v8 ^ v18; @@ -820,11 +828,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v9 = (xor1 >> 24u) ^ (xor0 << 8u); // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+1]] // // skip since adding 0u does nothing @@ -843,11 +855,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = (xor1 >> 16u) ^ (xor0 << 16u); // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 63) xor0 = v8 ^ v18; @@ -1528,11 +1544,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+0]] // // skip since adding 0u does nothing @@ -1551,11 +1571,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = xor0; // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 24) xor0 = v8 ^ v18; @@ -1564,11 +1588,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v9 = (xor1 >> 24u) ^ (xor0 << 8u); // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // a = a + m[sigma[r][2*i+1]] o0 = v6 + m6; @@ -1584,11 +1612,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = (xor1 >> 16u) ^ (xor0 << 16u); // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 63) xor0 = v8 ^ v18; @@ -2269,11 +2301,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+0]] // // skip since adding 0u does nothing @@ -2292,11 +2328,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = xor0; // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 24) xor0 = v8 ^ v18; @@ -2305,11 +2345,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v9 = (xor1 >> 24u) ^ (xor0 << 8u); // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // a = a + m[sigma[r][2*i+1]] o0 = v6 + m8; @@ -2325,11 +2369,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = (xor1 >> 16u) ^ (xor0 << 16u); // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 63) xor0 = v8 ^ v18; @@ -3007,11 +3055,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+0]] // // skip since adding 0u does nothing @@ -3030,11 +3082,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = xor0; // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 24) xor0 = v8 ^ v18; @@ -3043,11 +3099,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v9 = (xor1 >> 24u) ^ (xor0 << 8u); // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+1]] // // skip since adding 0u does nothing @@ -3066,11 +3126,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = (xor1 >> 16u) ^ (xor0 << 16u); // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 63) xor0 = v8 ^ v18; @@ -3751,11 +3815,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // a = a + m[sigma[r][2*i+0]] o0 = v6 + m6; @@ -3771,11 +3839,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = xor0; // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 24) xor0 = v8 ^ v18; @@ -3784,11 +3856,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v9 = (xor1 >> 24u) ^ (xor0 << 8u); // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+1]] // // skip since adding 0u does nothing @@ -3807,11 +3883,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = (xor1 >> 16u) ^ (xor0 << 16u); // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 63) xor0 = v8 ^ v18; @@ -4492,11 +4572,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // a = a + m[sigma[r][2*i+0]] o0 = v6 + m2; @@ -4512,11 +4596,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = xor0; // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 24) xor0 = v8 ^ v18; @@ -4525,11 +4613,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v9 = (xor1 >> 24u) ^ (xor0 << 8u); // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+1]] // // skip since adding 0u does nothing @@ -4548,11 +4640,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = (xor1 >> 16u) ^ (xor0 << 16u); // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 63) xor0 = v8 ^ v18; @@ -5230,11 +5326,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+0]] // // skip since adding 0u does nothing @@ -5253,11 +5353,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = xor0; // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 24) xor0 = v8 ^ v18; @@ -5266,11 +5370,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v9 = (xor1 >> 24u) ^ (xor0 << 8u); // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+1]] // // skip since adding 0u does nothing @@ -5289,11 +5397,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = (xor1 >> 16u) ^ (xor0 << 16u); // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 63) xor0 = v8 ^ v18; @@ -5974,11 +6086,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // a = a + m[sigma[r][2*i+0]] o0 = v6 + m4; @@ -5994,11 +6110,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = xor0; // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 24) xor0 = v8 ^ v18; @@ -6007,11 +6127,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v9 = (xor1 >> 24u) ^ (xor0 << 8u); // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+1]] // // skip since adding 0u does nothing @@ -6030,11 +6154,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = (xor1 >> 16u) ^ (xor0 << 16u); // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 63) xor0 = v8 ^ v18; @@ -6712,11 +6840,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+0]] // // skip since adding 0u does nothing @@ -6735,11 +6867,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = xor0; // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 24) xor0 = v8 ^ v18; @@ -6748,11 +6884,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v9 = (xor1 >> 24u) ^ (xor0 << 8u); // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+1]] // // skip since adding 0u does nothing @@ -6771,11 +6911,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = (xor1 >> 16u) ^ (xor0 << 16u); // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 63) xor0 = v8 ^ v18; @@ -7456,11 +7600,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+0]] // // skip since adding 0u does nothing @@ -7479,11 +7627,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = xor0; // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 24) xor0 = v8 ^ v18; @@ -7492,11 +7644,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v9 = (xor1 >> 24u) ^ (xor0 << 8u); // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // a = a + m[sigma[r][2*i+1]] o0 = v6 + m0; @@ -7512,11 +7668,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = (xor1 >> 16u) ^ (xor0 << 16u); // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 63) xor0 = v8 ^ v18; @@ -8194,11 +8354,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+0]] // // skip since adding 0u does nothing @@ -8217,11 +8381,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = xor0; // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 24) xor0 = v8 ^ v18; @@ -8230,11 +8398,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v9 = (xor1 >> 24u) ^ (xor0 << 8u); // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+1]] // // skip since adding 0u does nothing @@ -8253,11 +8425,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = (xor1 >> 16u) ^ (xor0 << 16u); // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 63) xor0 = v8 ^ v18; @@ -8938,11 +9114,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // // a = a + m[sigma[r][2*i+0]] // // skip since adding 0u does nothing @@ -8961,11 +9141,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = xor0; // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 24) xor0 = v8 ^ v18; @@ -8974,11 +9158,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v9 = (xor1 >> 24u) ^ (xor0 << 8u); // a = a + b - o0 = v6 + v8; - o1 = v7 + v9; - o1 = o1 + select(0u, 1u, o0 < v6); - v6 = o0; - v7 = o1; + v_67.x = v6; + v_67.y = v7; + v_89.x = v8; + v_89.y = v9; + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + v6 = v_67.x; + v7 = v_67.y; + v8 = v_89.x; + v9 = v_89.y; // a = a + m[sigma[r][2*i+1]] o0 = v6 + m6; @@ -8994,11 +9182,15 @@ fn main(@builtin(global_invocation_id) id: vec3) { v29 = (xor1 >> 16u) ^ (xor0 << 16u); // c = c + d - o0 = v18 + v28; - o1 = v19 + v29; - o1 = o1 + select(0u, 1u, o0 < v18); - v18 = o0; - v19 = o1; + v_1819.x = v18; + v_1819.y = v19; + v_2829.x = v28; + v_2829.y = v29; + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + v18 = v_1819.x; + v19 = v_1819.y; + v28 = v_2829.x; + v29 = v_2829.y; // b = rotr64(b ^ c, 63) xor0 = v8 ^ v18;