From: Chris Duncan Date: Thu, 9 Jan 2025 21:49:24 +0000 (-0800) Subject: Start replacing if statement conditional branching with select statements to avoid... X-Git-Url: https://zoso.dev/?a=commitdiff_plain;h=a01e156ce91bea04bc9af80facd91d08de8d769b;p=libnemo.git Start replacing if statement conditional branching with select statements to avoid thread divergence. --- diff --git a/src/lib/nano-pow/shaders/gpu-compute.ts b/src/lib/nano-pow/shaders/gpu-compute.ts index 791539a..064a730 100644 --- a/src/lib/nano-pow/shaders/gpu-compute.ts +++ b/src/lib/nano-pow/shaders/gpu-compute.ts @@ -131,9 +131,7 @@ fn main( // a = a + m[sigma[r][2*i+0]] o0 = v0 + m0; o1 = v1 + m1; - if (v0 > 0xFFFFFFFFu - m0) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -146,9 +144,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -168,9 +164,7 @@ fn main( // a = a + m[sigma[r][2*i+1]] o0 = v0 + m2; o1 = v1 + m3; - if (v0 > 0xFFFFFFFFu - m2) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -183,9 +177,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -206,9 +198,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -245,9 +235,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -467,9 +455,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -507,9 +493,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -846,9 +830,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -884,9 +866,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -907,9 +887,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -946,9 +924,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -1170,18 +1146,14 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; // a = a + m[sigma[r][2*i+0]] o0 = v0 + m2; o1 = v1 + m3; - if (v0 > 0xFFFFFFFFu - m2) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -1209,9 +1181,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -1522,9 +1492,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -1547,9 +1515,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -1562,9 +1528,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -1587,9 +1551,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -1610,9 +1572,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -1650,9 +1610,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -1872,9 +1830,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -1912,9 +1868,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -2225,9 +2179,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -2250,9 +2202,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -2265,9 +2215,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -2290,9 +2238,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -2313,9 +2259,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -2352,9 +2296,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -2575,18 +2517,14 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; // a = a + m[sigma[r][2*i+0]] o0 = v0 + m4; o1 = v1 + m5; - if (v0 > 0xFFFFFFFFu - m4) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -2614,9 +2552,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -2928,9 +2864,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -2953,9 +2887,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -2968,18 +2900,14 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; // a = a + m[sigma[r][2*i+1]] o0 = v0 + m0; o1 = v1 + m1; - if (v0 > 0xFFFFFFFFu - m0) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -2992,9 +2920,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -3015,9 +2941,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -3055,9 +2979,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -3277,9 +3199,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -3317,18 +3237,14 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; // a = a + m[sigma[r][2*i+1]] o0 = v0 + m2; o1 = v1 + m3; - if (v0 > 0xFFFFFFFFu - m2) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -3631,18 +3547,14 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; // a = a + m[sigma[r][2*i+0]] o0 = v0 + m4; o1 = v1 + m5; - if (v0 > 0xFFFFFFFFu - m4) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -3655,9 +3567,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -3670,9 +3580,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -3695,9 +3603,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -3718,9 +3624,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -3758,9 +3662,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -3980,18 +3882,14 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; // a = a + m[sigma[r][2*i+0]] o0 = v0 + m8; o1 = v1 + m9; - if (v0 > 0xFFFFFFFFu - m8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -4019,9 +3917,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -4334,9 +4230,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -4359,9 +4253,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -4374,9 +4266,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -4399,9 +4289,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -4422,9 +4310,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -4461,9 +4347,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -4684,18 +4568,14 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; // a = a + m[sigma[r][2*i+0]] o0 = v0 + m0; o1 = v1 + m1; - if (v0 > 0xFFFFFFFFu - m0) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -4723,9 +4603,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -5037,9 +4915,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -5062,9 +4938,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -5077,9 +4951,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -5102,9 +4974,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -5125,9 +4995,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -5165,9 +5033,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -5387,9 +5253,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -5427,18 +5291,14 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; // a = a + m[sigma[r][2*i+1]] o0 = v0 + m0; o1 = v1 + m1; - if (v0 > 0xFFFFFFFFu - m0) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -5740,9 +5600,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -5765,9 +5623,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -5780,9 +5636,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -5805,9 +5659,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -5828,9 +5680,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -5868,9 +5718,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -6090,9 +5938,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -6130,18 +5976,14 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; // a = a + m[sigma[r][2*i+1]] o0 = v0 + m4; o1 = v1 + m5; - if (v0 > 0xFFFFFFFFu - m4) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -6443,9 +6285,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -6468,9 +6308,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -6483,18 +6321,14 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; // a = a + m[sigma[r][2*i+1]] o0 = v0 + m4; o1 = v1 + m5; - if (v0 > 0xFFFFFFFFu - m4) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -6507,9 +6341,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -6530,9 +6362,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -6570,9 +6400,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -6792,9 +6620,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -6832,9 +6658,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -7146,18 +6970,14 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; // a = a + m[sigma[r][2*i+0]] o0 = v0 + m0; o1 = v1 + m1; - if (v0 > 0xFFFFFFFFu - m0) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -7170,9 +6990,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -7185,18 +7003,14 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; // a = a + m[sigma[r][2*i+1]] o0 = v0 + m2; o1 = v1 + m3; - if (v0 > 0xFFFFFFFFu - m2) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -7209,9 +7023,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -7232,9 +7044,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -7271,9 +7081,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -7493,9 +7301,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -7533,9 +7339,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -7849,9 +7653,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -7874,9 +7676,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -7889,9 +7689,7 @@ fn main( // a = a + b o0 = v0 + v8; o1 = v1 + v9; - if (v0 > 0xFFFFFFFFu - v8) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -7914,9 +7712,7 @@ fn main( // c = c + d o0 = v16 + v24; o1 = v17 + v25; - if (v16 > 0xFFFFFFFFu - v24) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v16); v16 = o0; v17 = o1; @@ -7937,9 +7733,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -7976,9 +7770,7 @@ fn main( // a = a + b o0 = v2 + v10; o1 = v3 + v11; - if (v2 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v2); v2 = o0; v3 = o1; @@ -8200,18 +7992,14 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; // a = a + m[sigma[r][2*i+0]] o0 = v0 + m2; o1 = v1 + m3; - if (v0 > 0xFFFFFFFFu - m2) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1; @@ -8239,9 +8027,7 @@ fn main( // a = a + b o0 = v0 + v10; o1 = v1 + v11; - if (v0 > 0xFFFFFFFFu - v10) { - o1 = o1 + 1u; - } + o1 = o1 + select(0u, 1u, o0 < v0); v0 = o0; v1 = o1;