From 7c088c2668c27002106f126520644acc20f3ac97 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Tue, 14 Jan 2025 13:58:57 -0800 Subject: [PATCH] Clean up whitespace. --- src/shaders/compute.wgsl | 5345 +------------------------------------- 1 file changed, 101 insertions(+), 5244 deletions(-) diff --git a/src/shaders/compute.wgsl b/src/shaders/compute.wgsl index 7a79087..f09608c 100644 --- a/src/shaders/compute.wgsl +++ b/src/shaders/compute.wgsl @@ -97,20 +97,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { v_01 = v_01 + vec2(m0, m1) + select(vec2(0u), vec2(0u, 1u), v_01.x + m0 < v_01.x); // d = rotr64(d ^ a, 32) - - xor = v_2425 ^ v_01; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - // b = rotr64(b ^ c, 24) xor = v_89 ^ v_1617; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); @@ -122,20 +114,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { v_01 = v_01 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v_01.x + m2 < v_01.x); // d = rotr64(d ^ a, 16) - - xor = v_2425 ^ v_01; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - // b = rotr64(b ^ c, 63) xor = v_89 ^ v_1617; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -155,20 +139,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) - - xor = v_2627 ^ v_23; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - // b = rotr64(b ^ c, 24) xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); @@ -180,20 +156,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { v_23 = v_23 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v_23.x + m6 < v_23.x); // d = rotr64(d ^ a, 16) - - xor = v_2627 ^ v_23; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - // b = rotr64(b ^ c, 63) xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -213,20 +181,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { v_45 = v_45 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v_45.x + m8 < v_45.x); // d = rotr64(d ^ a, 32) - - xor = v_2829 ^ v_45; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - // b = rotr64(b ^ c, 24) xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); @@ -238,20 +198,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - xor = v_2829 ^ v_45; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - // b = rotr64(b ^ c, 63) xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -271,20 +223,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - xor = v_3031 ^ v_67; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - // b = rotr64(b ^ c, 24) xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); @@ -296,20 +240,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - xor = v_3031 ^ v_67; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - // b = rotr64(b ^ c, 63) xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -329,20 +265,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - xor = v_3031 ^ v_01; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - // b = rotr64(b ^ c, 24) xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); @@ -354,20 +282,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - xor = v_3031 ^ v_01; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - // b = rotr64(b ^ c, 63) xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -387,20 +307,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - xor = v_2425 ^ v_23; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - // b = rotr64(b ^ c, 24) xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); @@ -412,20 +324,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - xor = v_2425 ^ v_23; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - // b = rotr64(b ^ c, 63) xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -445,20 +349,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - xor = v_2627 ^ v_45; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - // b = rotr64(b ^ c, 24) xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); @@ -470,20 +366,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - xor = v_2627 ^ v_45; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - // b = rotr64(b ^ c, 63) xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -503,20 +391,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - xor = v_2829 ^ v_67; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - // b = rotr64(b ^ c, 24) xor = v_89 ^ v_1819; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); @@ -528,20 +408,12 @@ fn main(@builtin(global_invocation_id) id: vec3) { // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - xor = v_2829 ^ v_67; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - // b = rotr64(b ^ c, 63) xor = v_89 ^ v_1819; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -559,84 +431,36 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - xor = v_2425 ^ v_01; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_01; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -644,101 +468,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=1, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27] */ // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_23 = v_23 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v_23.x + m8 < v_23.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_23; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_23; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -746,97 +510,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=1, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29] */ // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_45; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_45; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -844,97 +552,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=1, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31] */ // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_67; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_67; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -942,96 +594,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=1, i=4(x2), a=v[0-1], b=v[11-12], c=v[21-22], d=v[30-31] */ // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] v_01 = v_01 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v_01.x + m2 < v_01.x); - - - // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_01; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_01; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -1039,105 +636,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=1, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25] */ // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_23 = v_23 + vec2(m0, m1) + select(vec2(0u), vec2(0u, 1u), v_23.x + m0 < v_23.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2425 ^ v_23; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_23 = v_23 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v_23.x + m4 < v_23.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_23; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -1145,97 +678,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=1, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27] */ // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_45; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_45; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - + v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -1243,102 +720,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=1, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29] */ // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_67; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_67 = v_67 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v_67.x + m6 < v_67.x); - - - // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_67; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -1346,8 +762,6 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /**************************************************************************** * ROUND(2) * ****************************************************************************/ @@ -1357,84 +771,36 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - xor = v_2425 ^ v_01; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_01; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -1442,101 +808,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=2, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27] */ // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_23; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_23 = v_23 + vec2(m0, m1) + select(vec2(0u), vec2(0u, 1u), v_23.x + m0 < v_23.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_23; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -1544,101 +850,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=2, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29] */ // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_45; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_45 = v_45 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v_45.x + m4 < v_45.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_45; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -1646,97 +892,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=2, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31] */ // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - - xor = v_3031 ^ v_67; - v_3031 = vec2(xor.y, xor.x); - - + xor = v_3031 ^ v_67; + v_3031 = vec2(xor.y, xor.x); // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_67; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -1744,93 +934,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=2, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31] */ // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_01; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_01; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -1838,101 +976,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=2, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25] */ // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_23 = v_23 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v_23.x + m6 < v_23.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2425 ^ v_23; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_23; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -1940,101 +1018,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=2, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27] */ // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_45; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_45 = v_45 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v_45.x + m2 < v_45.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_45; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -2042,197 +1060,87 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=2, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29] */ // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_67; v_2829 = vec2(xor.y, xor.x); - - // c = c + d + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + + // b = rotr64(b ^ c, 24) + xor = v_89 ^ v_1819; + v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + // a = a + b + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + // a = a + m[sigma[r][2*i+1]] + v_67 = v_67 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v_67.x + m8 < v_67.x); + // d = rotr64(d ^ a, 16) + xor = v_2829 ^ v_67; + v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + // c = c + d v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + // b = rotr64(b ^ c, 63) + xor = v_89 ^ v_1819; + v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1819; - v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - - - // a = a + b - - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - - - // a = a + m[sigma[r][2*i+1]] - - - v_67 = v_67 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v_67.x + m8 < v_67.x); - - - - // d = rotr64(d ^ a, 16) - - - - - xor = v_2829 ^ v_67; - v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - - - // c = c + d - - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - - - // b = rotr64(b ^ c, 63) - - - - - xor = v_89 ^ v_1819; - v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); - - - - - - - - /**************************************************************************** - * ROUND(3) * - ****************************************************************************/ + /**************************************************************************** + * ROUND(3) * + ****************************************************************************/ /** * r=3, i=0(x2), a=v[0-1], b=v[8-9], c=v[16-17], d=v[24-25] */ // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - xor = v_2425 ^ v_01; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_01; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -2240,105 +1148,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=3, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27] */ // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_23 = v_23 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v_23.x + m6 < v_23.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_23; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_23 = v_23 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v_23.x + m2 < v_23.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_23; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -2346,97 +1190,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=3, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29] */ // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_45; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_45; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -2444,97 +1232,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=3, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31] */ // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_67; v_3031 = vec2(xor.y, xor.x); - - // c = c + d + v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); + // b = rotr64(b ^ c, 24) + xor = v_1415 ^ v_2223; + v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + // a = a + b + v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - - - // b = rotr64(b ^ c, 24) - - - - - xor = v_1415 ^ v_2223; - v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - - - // a = a + b - - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - - - // a = a + m[sigma[r][2*i+1]] - // skip since adding 0u does nothing + // a = a + m[sigma[r][2*i+1]] + // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_67; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -2542,96 +1274,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=3, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31] */ // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] v_01 = v_01 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v_01.x + m4 < v_01.x); - - - // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_01; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_01; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -2639,97 +1316,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=3, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25] */ // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2425 ^ v_23; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_23; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -2737,105 +1358,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=3, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27] */ // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_45 = v_45 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v_45.x + m8 < v_45.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_45; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_45 = v_45 + vec2(m0, m1) + select(vec2(0u), vec2(0u, 1u), v_45.x + m0 < v_45.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_45; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -2843,101 +1400,43 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=3, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29] */ // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_67; v_2829 = vec2(xor.y, xor.x); - - // c = c + d + v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); + // b = rotr64(b ^ c, 24) + xor = v_89 ^ v_1819; + v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + + // a = a + b + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); + // a = a + m[sigma[r][2*i+1]] + // skip since adding 0u does nothing + // d = rotr64(d ^ a, 16) + xor = v_2829 ^ v_67; + v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + // c = c + d v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - - // b = rotr64(b ^ c, 24) - - - - - xor = v_89 ^ v_1819; - v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - - - // a = a + b - - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - - - // a = a + m[sigma[r][2*i+1]] - // skip since adding 0u does nothing - - // d = rotr64(d ^ a, 16) - - - - - xor = v_2829 ^ v_67; - v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - - - // c = c + d - - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - - - // b = rotr64(b ^ c, 63) - - - - - xor = v_89 ^ v_1819; - v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); - - + // b = rotr64(b ^ c, 63) + xor = v_89 ^ v_1819; + v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -2952,87 +1451,36 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - xor = v_2425 ^ v_01; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] v_01 = v_01 + vec2(m0, m1) + select(vec2(0u), vec2(0u, 1u), v_01.x + m0 < v_01.x); - - - // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_01; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -3040,97 +1488,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=4, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27] */ // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_23; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_23; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -3138,105 +1530,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=4, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29] */ // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_45 = v_45 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v_45.x + m4 < v_45.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_45; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_45 = v_45 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v_45.x + m8 < v_45.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_45; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -3244,97 +1572,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=4, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31] */ // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_67; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_67; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -3342,95 +1614,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=4, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31] */ // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_01; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] v_01 = v_01 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v_01.x + m2 < v_01.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_01; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -3438,97 +1656,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=4, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25] */ // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2425 ^ v_23; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_23; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -3536,97 +1698,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=4, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27] */ // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_45; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_45; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -3634,101 +1740,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=4, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29] */ // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_67 = v_67 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v_67.x + m6 < v_67.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_67; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_67; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -3736,8 +1782,6 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /**************************************************************************** * ROUND(5) * ****************************************************************************/ @@ -3747,86 +1791,36 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] v_01 = v_01 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v_01.x + m4 < v_01.x); - - // d = rotr64(d ^ a, 32) - - xor = v_2425 ^ v_01; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_01; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -3834,97 +1828,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=5, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27] */ // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_23; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_23; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -3932,101 +1870,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=5, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29] */ // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_45 = v_45 + vec2(m0, m1) + select(vec2(0u), vec2(0u, 1u), v_45.x + m0 < v_45.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_45; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_45; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -4034,101 +1912,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=5, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31] */ // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_67; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_67 = v_67 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v_67.x + m6 < v_67.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_67; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -4136,96 +1954,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=5, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31] */ // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] v_01 = v_01 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v_01.x + m8 < v_01.x); - - - // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_01; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_01; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -4233,97 +1996,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=5, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25] */ // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2425 ^ v_23; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_23; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -4331,97 +2038,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=5, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27] */ // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_45; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_45; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -4429,101 +2080,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=5, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29] */ // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_67 = v_67 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v_67.x + m2 < v_67.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_67; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_67; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -4531,8 +2122,6 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /**************************************************************************** * ROUND(6) * ****************************************************************************/ @@ -4542,84 +2131,36 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - xor = v_2425 ^ v_01; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_01; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -4627,101 +2168,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=6, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27] */ // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - - // a = a + m[sigma[r][2*i+0]] - - - v_23 = v_23 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v_23.x + m2 < v_23.x); - - + // a = a + m[sigma[r][2*i+0]] + v_23 = v_23 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v_23.x + m2 < v_23.x); // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_23; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_23; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -4729,97 +2210,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=6, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29] */ // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_45; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_45; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -4827,101 +2252,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=6, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31] */ // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_67 = v_67 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v_67.x + m8 < v_67.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_67; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_67; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -4929,95 +2294,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=6, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31] */ // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] v_01 = v_01 + vec2(m0, m1) + select(vec2(0u), vec2(0u, 1u), v_01.x + m0 < v_01.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_01; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_01; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -5025,101 +2336,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=6, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25] */ // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2425 ^ v_23; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - + v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); // a = a + m[sigma[r][2*i+1]] - - v_23 = v_23 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v_23.x + m6 < v_23.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_23; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -5127,101 +2378,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=6, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27] */ // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_45; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_45 = v_45 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v_45.x + m4 < v_45.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_45; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -5229,97 +2420,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=6, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29] */ // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_67; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_67; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -5327,8 +2462,6 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /**************************************************************************** * ROUND(7) * ****************************************************************************/ @@ -5338,84 +2471,36 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - xor = v_2425 ^ v_01; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_01; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -5423,97 +2508,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=7, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27] */ // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_23; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_23; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -5521,101 +2550,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=7, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29] */ // a = a + b - - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - + v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_45; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_45 = v_45 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v_45.x + m2 < v_45.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_45; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -5623,101 +2592,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=7, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31] */ // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_67 = v_67 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v_67.x + m6 < v_67.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_67; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_67; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -5725,95 +2634,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=7, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31] */ // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_01; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] v_01 = v_01 + vec2(m0, m1) + select(vec2(0u), vec2(0u, 1u), v_01.x + m0 < v_01.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_01; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -5821,101 +2676,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=7, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25] */ // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2425 ^ v_23; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_23 = v_23 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v_23.x + m8 < v_23.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_23; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -5923,97 +2718,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=7, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27] */ // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_45; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_45; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -6021,101 +2760,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=7, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29] */ // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_67 = v_67 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v_67.x + m4 < v_67.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_67; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_67; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -6123,8 +2802,6 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /**************************************************************************** * ROUND(8) * ****************************************************************************/ @@ -6134,182 +2811,78 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - xor = v_2425 ^ v_01; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - - // a = a + b - - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - - - // a = a + m[sigma[r][2*i+1]] - // skip since adding 0u does nothing - - // d = rotr64(d ^ a, 16) - - - - - xor = v_2425 ^ v_01; - v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - - - // c = c + d - - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - - - // b = rotr64(b ^ c, 63) - - - - - xor = v_89 ^ v_1617; - v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); - - - - - - - - /** - * r=8, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27] - */ - - // a = a + b - - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - - - // a = a + m[sigma[r][2*i+0]] - // skip since adding 0u does nothing - - // d = rotr64(d ^ a, 32) - - - - - xor = v_2627 ^ v_23; - v_2627 = vec2(xor.y, xor.x); - - - - // c = c + d - - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - - - // b = rotr64(b ^ c, 24) - - - - - xor = v_1011 ^ v_1819; - v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - - - // a = a + b - - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - + // a = a + b + v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) + xor = v_2425 ^ v_01; + v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); + // c = c + d + v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); + // b = rotr64(b ^ c, 63) + xor = v_89 ^ v_1617; + v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); - xor = v_2627 ^ v_23; - v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - // c = c + d + /** + * r=8, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27] + */ + // a = a + b + v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); + // a = a + m[sigma[r][2*i+0]] + // skip since adding 0u does nothing + // d = rotr64(d ^ a, 32) + xor = v_2627 ^ v_23; + v_2627 = vec2(xor.y, xor.x); + // c = c + d v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); + // b = rotr64(b ^ c, 24) + xor = v_1011 ^ v_1819; + v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); + // a = a + b + v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); + // a = a + m[sigma[r][2*i+1]] + // skip since adding 0u does nothing + // d = rotr64(d ^ a, 16) + xor = v_2627 ^ v_23; + v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - // b = rotr64(b ^ c, 63) - - - + // c = c + d + v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); + // b = rotr64(b ^ c, 63) xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -6317,101 +2890,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=8, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29] */ // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_45; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_45 = v_45 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v_45.x + m6 < v_45.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_45; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -6419,101 +2932,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=8, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31] */ // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_67 = v_67 + vec2(m0, m1) + select(vec2(0u), vec2(0u, 1u), v_67.x + m0 < v_67.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_67; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_67; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -6521,95 +2974,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=8, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31] */ // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_01; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] v_01 = v_01 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v_01.x + m4 < v_01.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_01; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -6617,97 +3016,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=8, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25] */ // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2425 ^ v_23; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) + xor = v_1213 ^ v_2223; + v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - - - xor = v_1213 ^ v_2223; - v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - - - // a = a + b - - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - + // a = a + b + v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_23; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -6715,105 +3058,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=8, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27] */ // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_45 = v_45 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v_45.x + m2 < v_45.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_45; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_45 = v_45 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v_45.x + m8 < v_45.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_45; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -6821,97 +3100,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=8, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29] */ // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_67; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_67; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -6919,8 +3142,6 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /**************************************************************************** * ROUND(9) * ****************************************************************************/ @@ -6930,86 +3151,36 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - xor = v_2425 ^ v_01; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] v_01 = v_01 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v_01.x + m4 < v_01.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_01; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -7017,101 +3188,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=9, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27] */ // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_23; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_23 = v_23 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v_23.x + m8 < v_23.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_23; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -7119,97 +3230,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=9, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29] */ // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_45; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_45; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -7217,101 +3272,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=9, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31] */ // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_67 = v_67 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v_67.x + m2 < v_67.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_67; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_67; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -7319,93 +3314,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=9, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31] */ // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_01; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_01; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -7413,97 +3356,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=9, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25] */ // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2425 ^ v_23; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_23; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -7511,101 +3398,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=9, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27] */ // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_45 = v_45 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v_45.x + m6 < v_45.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_45; v_2627 = vec2(xor.y, xor.x); - - // c = c + d + v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - - - // b = rotr64(b ^ c, 24) - - - - + // b = rotr64(b ^ c, 24) xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_45; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -7613,101 +3440,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=9, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29] */ // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_67; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_67 = v_67 + vec2(m0, m1) + select(vec2(0u), vec2(0u, 1u), v_67.x + m0 < v_67.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_67; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -7715,8 +3482,6 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /**************************************************************************** * ROUND(10) * ****************************************************************************/ @@ -7726,88 +3491,36 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] v_01 = v_01 + vec2(m0, m1) + select(vec2(0u), vec2(0u, 1u), v_01.x + m0 < v_01.x); - - // d = rotr64(d ^ a, 32) - - xor = v_2425 ^ v_01; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] v_01 = v_01 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v_01.x + m2 < v_01.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_01; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -7815,105 +3528,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=10, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27] */ // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] - - 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) - - - - xor = v_2627 ^ v_23; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_23 = v_23 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v_23.x + m6 < v_23.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_23; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -7921,101 +3570,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=10, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29] */ // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_45 = v_45 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v_45.x + m8 < v_45.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_45; v_2829 = vec2(xor.y, xor.x); - - // c = c + d + v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); + // b = rotr64(b ^ c, 24) + xor = v_1213 ^ v_2021; + v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - - - // b = rotr64(b ^ c, 24) - - - - - xor = v_1213 ^ v_2021; - v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - - - // a = a + b - - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - + // a = a + b + v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_45; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -8023,97 +3612,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=10, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31] */ // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_67; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_67; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -8121,93 +3654,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=10, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31] */ // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_01; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_01; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -8215,97 +3696,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=10, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25] */ // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2425 ^ v_23; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_23; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -8313,97 +3738,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=10, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27] */ // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_45; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_45; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -8411,97 +3780,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=10, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29] */ - // a = a + b - - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - + // a = a + b + v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_67; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_67; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -8509,8 +3822,6 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /**************************************************************************** * ROUND(11) * ****************************************************************************/ @@ -8520,84 +3831,36 @@ fn main(@builtin(global_invocation_id) id: vec3) { */ // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - xor = v_2425 ^ v_01; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_89 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_89.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_01; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2425.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1617; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -8605,101 +3868,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=11, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27] */ // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_23 = v_23 + vec2(m8, m9) + select(vec2(0u), vec2(0u, 1u), v_23.x + m8 < v_23.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_23; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1011.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_23; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2627.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_1819; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -8707,97 +3910,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=11, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29] */ // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_45; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1213.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_45; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_2829.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2021; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -8805,97 +3952,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=11, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31] */ // a = a + b - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_67; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) + xor = v_1415 ^ v_2223; + v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - - - xor = v_1415 ^ v_2223; - v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - - - // a = a + b - - - - - v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); - - - - + // a = a + b + v_67 = v_67 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_1415.x < v_67.x); // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_67; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_3031.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_2223; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -8903,95 +3994,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=11, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31] */ // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+0]] v_01 = v_01 + vec2(m2, m3) + select(vec2(0u), vec2(0u, 1u), v_01.x + m2 < v_01.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_3031 ^ v_01; v_3031 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - v_01 = v_01 + v_1011 + select(vec2(0u), vec2(0u, 1u), v_01.x + v_1011.x < v_01.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_3031 ^ v_01; v_3031 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2021 = v_2021 + v_3031 + select(vec2(0u), vec2(0u, 1u), v_2021.x + v_3031.x < v_2021.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1011 ^ v_2021; v_1011 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -8999,105 +4036,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=11, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25] */ // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+0]] - - v_23 = v_23 + vec2(m0, m1) + select(vec2(0u), vec2(0u, 1u), v_23.x + m0 < v_23.x); - - // d = rotr64(d ^ a, 32) - - - - xor = v_2425 ^ v_23; v_2425 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_23 = v_23 + v_1213 + select(vec2(0u), vec2(0u, 1u), v_23.x + v_1213.x < v_23.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_23 = v_23 + vec2(m4, m5) + select(vec2(0u), vec2(0u, 1u), v_23.x + m4 < v_23.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2425 ^ v_23; v_2425 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_2223 = v_2223 + v_2425 + select(vec2(0u), vec2(0u, 1u), v_2223.x + v_2425.x < v_2223.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1213 ^ v_2223; v_1213 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -9105,97 +4078,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=11, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27] */ // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2627 ^ v_45; v_2627 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_45 = v_45 + v_1415 + select(vec2(0u), vec2(0u, 1u), v_45.x + v_1415.x < v_45.x); - - - - // a = a + m[sigma[r][2*i+1]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 16) - - - - xor = v_2627 ^ v_45; v_2627 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1617 = v_1617 + v_2627 + select(vec2(0u), vec2(0u, 1u), v_1617.x + v_2627.x < v_1617.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_1415 ^ v_1617; v_1415 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); @@ -9203,101 +4120,41 @@ fn main(@builtin(global_invocation_id) id: vec3) { - - /** * r=11, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29] */ // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+0]] // skip since adding 0u does nothing // d = rotr64(d ^ a, 32) - - - - xor = v_2829 ^ v_67; v_2829 = vec2(xor.y, xor.x); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 24) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u)); - - // a = a + b - - - - v_67 = v_67 + v_89 + select(vec2(0u), vec2(0u, 1u), v_67.x + v_89.x < v_67.x); - - - - // a = a + m[sigma[r][2*i+1]] - - v_67 = v_67 + vec2(m6, m7) + select(vec2(0u), vec2(0u, 1u), v_67.x + m6 < v_67.x); - - // d = rotr64(d ^ a, 16) - - - - xor = v_2829 ^ v_67; v_2829 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u)); - - // c = c + d - - - - v_1819 = v_1819 + v_2829 + select(vec2(0u), vec2(0u, 1u), v_1819.x + v_2829.x < v_1819.x); - - - - // b = rotr64(b ^ c, 63) - - - - xor = v_89 ^ v_1819; v_89 = vec2((xor.x << 1u) | (xor.y >> 31u), (xor.y << 1u) | (xor.x >> 31u)); -- 2.34.1