/**
* Initialize (nonce||blockhash) concatenation
*/
- var nonce: vec2<u32> = vec2(ubo.random.x ^ id.x, ubo.random.y ^ id.y);
- var m2: u32 = ubo.blockhash[0u].x;
- var m3: u32 = ubo.blockhash[0u].y;
- var m4: u32 = ubo.blockhash[0u].z;
- var m5: u32 = ubo.blockhash[0u].w;
- var m6: u32 = ubo.blockhash[1u].x;
- var m7: u32 = ubo.blockhash[1u].y;
- var m8: u32 = ubo.blockhash[1u].z;
- var m9: u32 = ubo.blockhash[1u].w;
+ var nonce: vec2<u32> = ubo.random ^ vec2(id.x, id.y);
+ var m1: vec2<u32> = vec2(ubo.blockhash[0u].x, ubo.blockhash[0u].y);
+ var m2: vec2<u32> = vec2(ubo.blockhash[0u].z, ubo.blockhash[0u].w);
+ var m3: vec2<u32> = vec2(ubo.blockhash[1u].x, ubo.blockhash[1u].y);
+ var m4: vec2<u32> = vec2(ubo.blockhash[1u].z, ubo.blockhash[1u].w);
/**
* Compression buffer initialized to 2 instances of initialization vector. Each
v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
// a = a + m[sigma[r][2*i+1]]
- v0 = v0 + vec2(m2, m3) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m2 < v0.x);
+ v0 = v0 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m1.x < v0.x);
// d = rotr64(d ^ a, 16)
xor = v12 ^ v0;
v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + vec2(m4, m5) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m4 < v1.x);
+ v1 = v1 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m2.x < v1.x);
// d = rotr64(d ^ a, 32)
xor = v13 ^ v1;
v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + vec2(m6, m7) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m6 < v1.x);
+ v1 = v1 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m3.x < v1.x);
// d = rotr64(d ^ a, 16)
xor = v13 ^ v1;
v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
// a = a + m[sigma[r][2*i+0]]
- v2 = v2 + vec2(m8, m9) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m8 < v2.x);
+ v2 = v2 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m4.x < v2.x);
// d = rotr64(d ^ a, 32)
xor = v14 ^ v2;
v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + vec2(m8, m9) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m8 < v1.x);
+ v1 = v1 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m4.x < v1.x);
// d = rotr64(d ^ a, 32)
xor = v13 ^ v1;
v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
// a = a + m[sigma[r][2*i+0]]
- v0 = v0 + vec2(m2, m3) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m2 < v0.x);
+ v0 = v0 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m1.x < v0.x);
// d = rotr64(d ^ a, 32)
xor = v15 ^ v0;
v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + vec2(m4, m5) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m4 < v1.x);
+ v1 = v1 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m2.x < v1.x);
// d = rotr64(d ^ a, 16)
xor = v12 ^ v1;
v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
// a = a + m[sigma[r][2*i+1]]
- v3 = v3 + vec2(m6, m7) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m6 < v3.x);
+ v3 = v3 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m3.x < v3.x);
// d = rotr64(d ^ a, 16)
xor = v14 ^ v3;
v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + vec2(m4, m5) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m4 < v2.x);
+ v2 = v2 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m2.x < v2.x);
// d = rotr64(d ^ a, 16)
xor = v14 ^ v2;
v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + vec2(m6, m7) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m6 < v1.x);
+ v1 = v1 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m3.x < v1.x);
// d = rotr64(d ^ a, 32)
xor = v12 ^ v1;
v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + vec2(m2, m3) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m2 < v2.x);
+ v2 = v2 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m1.x < v2.x);
// d = rotr64(d ^ a, 16)
xor = v13 ^ v2;
v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
// a = a + m[sigma[r][2*i+1]]
- v3 = v3 + vec2(m8, m9) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m8 < v3.x);
+ v3 = v3 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m4.x < v3.x);
// d = rotr64(d ^ a, 16)
xor = v14 ^ v3;
v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + vec2(m6, m7) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m6 < v1.x);
+ v1 = v1 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m3.x < v1.x);
// d = rotr64(d ^ a, 32)
xor = v13 ^ v1;
v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + vec2(m2, m3) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m2 < v1.x);
+ v1 = v1 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m1.x < v1.x);
// d = rotr64(d ^ a, 16)
xor = v13 ^ v1;
v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
// a = a + m[sigma[r][2*i+0]]
- v0 = v0 + vec2(m4, m5) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m4 < v0.x);
+ v0 = v0 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m2.x < v0.x);
// d = rotr64(d ^ a, 32)
xor = v15 ^ v0;
v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
// a = a + m[sigma[r][2*i+0]]
- v2 = v2 + vec2(m8, m9) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m8 < v2.x);
+ v2 = v2 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m4.x < v2.x);
// d = rotr64(d ^ a, 32)
xor = v13 ^ v2;
v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
// a = a + m[sigma[r][2*i+0]]
- v2 = v2 + vec2(m4, m5) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m4 < v2.x);
+ v2 = v2 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m2.x < v2.x);
// d = rotr64(d ^ a, 32)
xor = v14 ^ v2;
v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + vec2(m8, m9) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m8 < v2.x);
+ v2 = v2 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m4.x < v2.x);
// d = rotr64(d ^ a, 16)
xor = v14 ^ v2;
v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
// a = a + m[sigma[r][2*i+1]]
- v0 = v0 + vec2(m2, m3) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m2 < v0.x);
+ v0 = v0 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m1.x < v0.x);
// d = rotr64(d ^ a, 16)
xor = v15 ^ v0;
v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
// a = a + m[sigma[r][2*i+0]]
- v3 = v3 + vec2(m6, m7) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m6 < v3.x);
+ v3 = v3 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m3.x < v3.x);
// d = rotr64(d ^ a, 32)
xor = v14 ^ v3;
v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
// a = a + m[sigma[r][2*i+0]]
- v0 = v0 + vec2(m4, m5) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m4 < v0.x);
+ v0 = v0 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m2.x < v0.x);
// d = rotr64(d ^ a, 32)
xor = v12 ^ v0;
v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
// a = a + m[sigma[r][2*i+1]]
- v3 = v3 + vec2(m6, m7) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m6 < v3.x);
+ v3 = v3 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m3.x < v3.x);
// d = rotr64(d ^ a, 16)
xor = v15 ^ v3;
v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
// a = a + m[sigma[r][2*i+0]]
- v0 = v0 + vec2(m8, m9) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m8 < v0.x);
+ v0 = v0 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m4.x < v0.x);
// d = rotr64(d ^ a, 32)
xor = v15 ^ v0;
v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
// a = a + m[sigma[r][2*i+0]]
- v3 = v3 + vec2(m2, m3) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m2 < v3.x);
+ v3 = v3 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m1.x < v3.x);
// d = rotr64(d ^ a, 32)
xor = v14 ^ v3;
v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + vec2(m2, m3) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m2 < v1.x);
+ v1 = v1 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m1.x < v1.x);
// d = rotr64(d ^ a, 32)
xor = v13 ^ v1;
v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
// a = a + m[sigma[r][2*i+0]]
- v3 = v3 + vec2(m8, m9) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m8 < v3.x);
+ v3 = v3 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m4.x < v3.x);
// d = rotr64(d ^ a, 32)
xor = v15 ^ v3;
v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + vec2(m6, m7) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m6 < v1.x);
+ v1 = v1 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m3.x < v1.x);
// d = rotr64(d ^ a, 16)
xor = v12 ^ v1;
v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + vec2(m4, m5) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m4 < v2.x);
+ v2 = v2 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m2.x < v2.x);
// d = rotr64(d ^ a, 16)
xor = v13 ^ v2;
v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + vec2(m2, m3) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m2 < v2.x);
+ v2 = v2 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m1.x < v2.x);
// d = rotr64(d ^ a, 16)
xor = v14 ^ v2;
v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
// a = a + m[sigma[r][2*i+0]]
- v3 = v3 + vec2(m6, m7) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m6 < v3.x);
+ v3 = v3 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m3.x < v3.x);
// d = rotr64(d ^ a, 32)
xor = v15 ^ v3;
v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + vec2(m8, m9) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m8 < v1.x);
+ v1 = v1 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m4.x < v1.x);
// d = rotr64(d ^ a, 16)
xor = v12 ^ v1;
v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
// a = a + m[sigma[r][2*i+0]]
- v3 = v3 + vec2(m4, m5) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m4 < v3.x);
+ v3 = v3 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m2.x < v3.x);
// d = rotr64(d ^ a, 32)
xor = v14 ^ v3;
v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + vec2(m6, m7) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m6 < v2.x);
+ v2 = v2 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m3.x < v2.x);
// d = rotr64(d ^ a, 16)
xor = v14 ^ v2;
v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
// a = a + m[sigma[r][2*i+1]]
- v0 = v0 + vec2(m4, m5) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m4 < v0.x);
+ v0 = v0 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m2.x < v0.x);
// d = rotr64(d ^ a, 16)
xor = v15 ^ v0;
v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
// a = a + m[sigma[r][2*i+0]]
- v2 = v2 + vec2(m2, m3) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m2 < v2.x);
+ v2 = v2 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m1.x < v2.x);
// d = rotr64(d ^ a, 32)
xor = v13 ^ v2;
v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + vec2(m8, m9) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m8 < v2.x);
+ v2 = v2 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m4.x < v2.x);
// d = rotr64(d ^ a, 16)
xor = v13 ^ v2;
v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
// a = a + m[sigma[r][2*i+1]]
- v0 = v0 + vec2(m4, m5) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m4 < v0.x);
+ v0 = v0 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m2.x < v0.x);
// d = rotr64(d ^ a, 16)
xor = v12 ^ v0;
v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + vec2(m8, m9) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m8 < v1.x);
+ v1 = v1 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m4.x < v1.x);
// d = rotr64(d ^ a, 16)
xor = v13 ^ v1;
v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
// a = a + m[sigma[r][2*i+0]]
- v3 = v3 + vec2(m2, m3) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m2 < v3.x);
+ v3 = v3 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m1.x < v3.x);
// d = rotr64(d ^ a, 32)
xor = v15 ^ v3;
v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
// a = a + m[sigma[r][2*i+0]]
- v2 = v2 + vec2(m6, m7) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m6 < v2.x);
+ v2 = v2 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m3.x < v2.x);
// d = rotr64(d ^ a, 32)
xor = v13 ^ v2;
v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
// a = a + m[sigma[r][2*i+1]]
- v0 = v0 + vec2(m2, m3) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m2 < v0.x);
+ v0 = v0 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m1.x < v0.x);
// d = rotr64(d ^ a, 16)
xor = v12 ^ v0;
v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + vec2(m4, m5) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m4 < v1.x);
+ v1 = v1 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m2.x < v1.x);
// d = rotr64(d ^ a, 32)
xor = v13 ^ v1;
v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + vec2(m6, m7) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m6 < v1.x);
+ v1 = v1 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m3.x < v1.x);
// d = rotr64(d ^ a, 16)
xor = v13 ^ v1;
v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
// a = a + m[sigma[r][2*i+0]]
- v2 = v2 + vec2(m8, m9) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m8 < v2.x);
+ v2 = v2 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m4.x < v2.x);
// d = rotr64(d ^ a, 32)
xor = v14 ^ v2;
v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + vec2(m8, m9) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m8 < v1.x);
+ v1 = v1 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m4.x < v1.x);
// d = rotr64(d ^ a, 32)
xor = v13 ^ v1;
v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
// a = a + m[sigma[r][2*i+0]]
- v0 = v0 + vec2(m2, m3) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m2 < v0.x);
+ v0 = v0 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m1.x < v0.x);
// d = rotr64(d ^ a, 32)
xor = v15 ^ v0;
v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + vec2(m4, m5) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m4 < v1.x);
+ v1 = v1 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m2.x < v1.x);
// d = rotr64(d ^ a, 16)
xor = v12 ^ v1;
v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
// a = a + m[sigma[r][2*i+1]]
- v3 = v3 + vec2(m6, m7) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m6 < v3.x);
+ v3 = v3 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m3.x < v3.x);
// d = rotr64(d ^ a, 16)
xor = v14 ^ v3;