]> zoso.dev Git - libnemo.git/commitdiff
Substitute if statements in original G mix function just to see additional benchmark...
authorChris Duncan <chris@zoso.dev>
Thu, 9 Jan 2025 19:35:20 +0000 (11:35 -0800)
committerChris Duncan <chris@zoso.dev>
Thu, 9 Jan 2025 19:35:20 +0000 (11:35 -0800)
src/lib/nano-pow/shaders/gpu-compute.ts

index a347f862b8ac3a2ea0490d2cbe1cb442558536c7..a140b33cadb2404ad9f83c512e5eed81952ad55c 100644 (file)
@@ -37,18 +37,14 @@ fn G (
        // a = a + b
        o0 = *va0 + *vb0;
        o1 = *va1 + *vb1;
-       if (*va0 > 0xFFFFFFFFu - *vb0) {
-               o1 = o1 + 1u;
-       }
+       o1 = o1 + select(0u, 1u, o0 < *va0);
        *va0 = o0;
        *va1 = o1;
 
        // a = a + m[sigma[r][2*i+0]]
        o0 = *va0 + mx0;
        o1 = *va1 + mx1;
-       if (*va0 > 0xFFFFFFFFu - mx0) {
-               o1 = o1 + 1u;
-       }
+       o1 = o1 + select(0u, 1u, o0 < *va0);
        *va0 = o0;
        *va1 = o1;
 
@@ -61,9 +57,7 @@ fn G (
        // c = c + d
        o0 = *vc0 + *vd0;
        o1 = *vc1 + *vd1;
-       if (*vc0 > 0xFFFFFFFFu - *vd0) {
-               o1 = o1 + 1u;
-       }
+       o1 = o1 + select(0u, 1u, o0 < *vc0);
        *vc0 = o0;
        *vc1 = o1;
 
@@ -76,18 +70,14 @@ fn G (
        // a = a + b
        o0 = *va0 + *vb0;
        o1 = *va1 + *vb1;
-       if (*va0 > 0xFFFFFFFFu - *vb0) {
-               o1 = o1 + 1u;
-       }
+       o1 = o1 + select(0u, 1u, o0 < *va0);
        *va0 = o0;
        *va1 = o1;
 
        // a = a + m[sigma[r][2*i+1]]
        o0 = *va0 + my0;
        o1 = *va1 + my1;
-       if (*va0 > 0xFFFFFFFFu - my0) {
-               o1 = o1 + 1u;
-       }
+       o1 = o1 + select(0u, 1u, o0 < *va0);
        *va0 = o0;
        *va1 = o1;
 
@@ -100,9 +90,7 @@ fn G (
        // c = c + d
        o0 = *vc0 + *vd0;
        o1 = *vc1 + *vd1;
-       if (*vc0 > 0xFFFFFFFFu - *vd0) {
-               o1 = o1 + 1u;
-       }
+       o1 = o1 + select(0u, 1u, o0 < *vc0);
        *vc0 = o0;
        *vc1 = o1;