*/
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
- v0 = v0 + nonce + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + nonce.x < v0.x);
+ v0 = v0 + nonce + vec2(0u, u32(v0.x + nonce.x < v0.x));
// d = rotr64(d ^ a, 32)
xor = v12 ^ v0;
v12 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v8;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
- v0 = v0 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m1.x < v0.x);
+ v0 = v0 + m1 + vec2(0u, u32(v0.x + m1.x < v0.x));
// d = rotr64(d ^ a, 16)
xor = v12 ^ v0;
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v8;
*/
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m2.x < v1.x);
+ v1 = v1 + m2 + vec2(0u, u32(v1.x + m2.x < v1.x));
// d = rotr64(d ^ a, 32)
xor = v13 ^ v1;
v13 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v9;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m3.x < v1.x);
+ v1 = v1 + m3 + vec2(0u, u32(v1.x + m3.x < v1.x));
// d = rotr64(d ^ a, 16)
xor = v13 ^ v1;
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v9;
*/
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
- v2 = v2 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m4.x < v2.x);
+ v2 = v2 + m4 + vec2(0u, u32(v2.x + m4.x < v2.x));
// d = rotr64(d ^ a, 32)
xor = v14 ^ v2;
v14 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v10;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v10;
*/
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v11;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v11;
*/
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v10;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v10;
*/
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v11;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v11;
*/
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v8;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v8;
*/
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v9;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v9;
*/
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v8;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v8;
*/
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m4.x < v1.x);
+ v1 = v1 + m4 + vec2(0u, u32(v1.x + m4.x < v1.x));
// d = rotr64(d ^ a, 32)
xor = v13 ^ v1;
v13 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v9;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v9;
*/
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v10;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v10;
*/
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v11;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v11;
*/
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
- v0 = v0 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m1.x < v0.x);
+ v0 = v0 + m1 + vec2(0u, u32(v0.x + m1.x < v0.x));
// d = rotr64(d ^ a, 32)
xor = v15 ^ v0;
v15 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v10;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v10;
*/
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + nonce + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + nonce.x < v1.x);
+ v1 = v1 + nonce + vec2(0u, u32(v1.x + nonce.x < v1.x));
// d = rotr64(d ^ a, 32)
xor = v12 ^ v1;
v12 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v11;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m2.x < v1.x);
+ v1 = v1 + m2 + vec2(0u, u32(v1.x + m2.x < v1.x));
// d = rotr64(d ^ a, 16)
xor = v12 ^ v1;
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v11;
*/
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v8;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v8;
*/
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v9;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
- v3 = v3 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m3.x < v3.x);
+ v3 = v3 + m3 + vec2(0u, u32(v3.x + m3.x < v3.x));
// d = rotr64(d ^ a, 16)
xor = v14 ^ v3;
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v9;
*/
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v8;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v8;
*/
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v9;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + nonce + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + nonce.x < v1.x);
+ v1 = v1 + nonce + vec2(0u, u32(v1.x + nonce.x < v1.x));
// d = rotr64(d ^ a, 16)
xor = v13 ^ v1;
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v9;
*/
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v10;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m2.x < v2.x);
+ v2 = v2 + m2 + vec2(0u, u32(v2.x + m2.x < v2.x));
// d = rotr64(d ^ a, 16)
xor = v14 ^ v2;
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v10;
*/
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v11;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v11;
*/
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v10;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v10;
*/
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m3.x < v1.x);
+ v1 = v1 + m3 + vec2(0u, u32(v1.x + m3.x < v1.x));
// d = rotr64(d ^ a, 32)
xor = v12 ^ v1;
v12 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v11;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v11;
*/
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v8;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m1.x < v2.x);
+ v2 = v2 + m1 + vec2(0u, u32(v2.x + m1.x < v2.x));
// d = rotr64(d ^ a, 16)
xor = v13 ^ v2;
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v8;
*/
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v9;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
- v3 = v3 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m4.x < v3.x);
+ v3 = v3 + m4 + vec2(0u, u32(v3.x + m4.x < v3.x));
// d = rotr64(d ^ a, 16)
xor = v14 ^ v3;
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v9;
*/
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v8;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v8;
*/
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m3.x < v1.x);
+ v1 = v1 + m3 + vec2(0u, u32(v1.x + m3.x < v1.x));
// d = rotr64(d ^ a, 32)
xor = v13 ^ v1;
v13 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v9;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m1.x < v1.x);
+ v1 = v1 + m1 + vec2(0u, u32(v1.x + m1.x < v1.x));
// d = rotr64(d ^ a, 16)
xor = v13 ^ v1;
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v9;
*/
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v10;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v10;
*/
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v11;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v11;
*/
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
- v0 = v0 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m2.x < v0.x);
+ v0 = v0 + m2 + vec2(0u, u32(v0.x + m2.x < v0.x));
// d = rotr64(d ^ a, 32)
xor = v15 ^ v0;
v15 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v10;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v10;
*/
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v11;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v11;
*/
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
- v2 = v2 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m4.x < v2.x);
+ v2 = v2 + m4 + vec2(0u, u32(v2.x + m4.x < v2.x));
// d = rotr64(d ^ a, 32)
xor = v13 ^ v2;
v13 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v8;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + nonce + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + nonce.x < v2.x);
+ v2 = v2 + nonce + vec2(0u, u32(v2.x + nonce.x < v2.x));
// d = rotr64(d ^ a, 16)
xor = v13 ^ v2;
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v8;
*/
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v9;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v9;
*/
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v8;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
- v0 = v0 + nonce + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + nonce.x < v0.x);
+ v0 = v0 + nonce + vec2(0u, u32(v0.x + nonce.x < v0.x));
// d = rotr64(d ^ a, 16)
xor = v12 ^ v0;
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v8;
*/
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v9;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v9;
*/
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
- v2 = v2 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m2.x < v2.x);
+ v2 = v2 + m2 + vec2(0u, u32(v2.x + m2.x < v2.x));
// d = rotr64(d ^ a, 32)
xor = v14 ^ v2;
v14 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v10;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m4.x < v2.x);
+ v2 = v2 + m4 + vec2(0u, u32(v2.x + m4.x < v2.x));
// d = rotr64(d ^ a, 16)
xor = v14 ^ v2;
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v10;
*/
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v11;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v11;
*/
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v10;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
- v0 = v0 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m1.x < v0.x);
+ v0 = v0 + m1 + vec2(0u, u32(v0.x + m1.x < v0.x));
// d = rotr64(d ^ a, 16)
xor = v15 ^ v0;
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v10;
*/
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v11;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v11;
*/
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v8;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v8;
*/
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
- v3 = v3 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m3.x < v3.x);
+ v3 = v3 + m3 + vec2(0u, u32(v3.x + m3.x < v3.x));
// d = rotr64(d ^ a, 32)
xor = v14 ^ v3;
v14 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v9;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v9;
*/
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
- v0 = v0 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m2.x < v0.x);
+ v0 = v0 + m2 + vec2(0u, u32(v0.x + m2.x < v0.x));
// d = rotr64(d ^ a, 32)
xor = v12 ^ v0;
v12 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v8;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v8;
*/
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v9;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v9;
*/
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
- v2 = v2 + nonce + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + nonce.x < v2.x);
+ v2 = v2 + nonce + vec2(0u, u32(v2.x + nonce.x < v2.x));
// d = rotr64(d ^ a, 32)
xor = v14 ^ v2;
v14 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v10;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v10;
*/
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v11;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
- v3 = v3 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m3.x < v3.x);
+ v3 = v3 + m3 + vec2(0u, u32(v3.x + m3.x < v3.x));
// d = rotr64(d ^ a, 16)
xor = v15 ^ v3;
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v11;
*/
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
- v0 = v0 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m4.x < v0.x);
+ v0 = v0 + m4 + vec2(0u, u32(v0.x + m4.x < v0.x));
// d = rotr64(d ^ a, 32)
xor = v15 ^ v0;
v15 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v10;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v10;
*/
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v11;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v11;
*/
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v8;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v8;
*/
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
- v3 = v3 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m1.x < v3.x);
+ v3 = v3 + m1 + vec2(0u, u32(v3.x + m1.x < v3.x));
// d = rotr64(d ^ a, 32)
xor = v14 ^ v3;
v14 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v9;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v9;
*/
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v8;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v8;
*/
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m1.x < v1.x);
+ v1 = v1 + m1 + vec2(0u, u32(v1.x + m1.x < v1.x));
// d = rotr64(d ^ a, 32)
xor = v13 ^ v1;
v13 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v9;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v9;
*/
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v10;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v10;
*/
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
- v3 = v3 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m4.x < v3.x);
+ v3 = v3 + m4 + vec2(0u, u32(v3.x + m4.x < v3.x));
// d = rotr64(d ^ a, 32)
xor = v15 ^ v3;
v15 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v11;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v11;
*/
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
- v0 = v0 + nonce + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + nonce.x < v0.x);
+ v0 = v0 + nonce + vec2(0u, u32(v0.x + nonce.x < v0.x));
// d = rotr64(d ^ a, 32)
xor = v15 ^ v0;
v15 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v10;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v10;
*/
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v11;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m3.x < v1.x);
+ v1 = v1 + m3 + vec2(0u, u32(v1.x + m3.x < v1.x));
// d = rotr64(d ^ a, 16)
xor = v12 ^ v1;
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v11;
*/
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v8;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m2.x < v2.x);
+ v2 = v2 + m2 + vec2(0u, u32(v2.x + m2.x < v2.x));
// d = rotr64(d ^ a, 16)
xor = v13 ^ v2;
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v8;
*/
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v9;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v9;
*/
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v8;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v8;
*/
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v9;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v9;
*/
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v10;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m1.x < v2.x);
+ v2 = v2 + m1 + vec2(0u, u32(v2.x + m1.x < v2.x));
// d = rotr64(d ^ a, 16)
xor = v14 ^ v2;
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v10;
*/
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
- v3 = v3 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m3.x < v3.x);
+ v3 = v3 + m3 + vec2(0u, u32(v3.x + m3.x < v3.x));
// d = rotr64(d ^ a, 32)
xor = v15 ^ v3;
v15 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v11;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v11;
*/
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v10;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
- v0 = v0 + nonce + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + nonce.x < v0.x);
+ v0 = v0 + nonce + vec2(0u, u32(v0.x + nonce.x < v0.x));
// d = rotr64(d ^ a, 16)
xor = v15 ^ v0;
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v10;
*/
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v11;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m4.x < v1.x);
+ v1 = v1 + m4 + vec2(0u, u32(v1.x + m4.x < v1.x));
// d = rotr64(d ^ a, 16)
xor = v12 ^ v1;
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v11;
*/
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v8;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v8;
*/
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
- v3 = v3 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m2.x < v3.x);
+ v3 = v3 + m2 + vec2(0u, u32(v3.x + m2.x < v3.x));
// d = rotr64(d ^ a, 32)
xor = v14 ^ v3;
v14 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v9;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v9;
*/
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v8;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v8;
*/
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v9;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v9;
*/
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v10;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m3.x < v2.x);
+ v2 = v2 + m3 + vec2(0u, u32(v2.x + m3.x < v2.x));
// d = rotr64(d ^ a, 16)
xor = v14 ^ v2;
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v10;
*/
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
- v3 = v3 + nonce + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + nonce.x < v3.x);
+ v3 = v3 + nonce + vec2(0u, u32(v3.x + nonce.x < v3.x));
// d = rotr64(d ^ a, 32)
xor = v15 ^ v3;
v15 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v11;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v11;
*/
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v10;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
- v0 = v0 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m2.x < v0.x);
+ v0 = v0 + m2 + vec2(0u, u32(v0.x + m2.x < v0.x));
// d = rotr64(d ^ a, 16)
xor = v15 ^ v0;
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v10;
*/
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v11;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v11;
*/
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
- v2 = v2 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m1.x < v2.x);
+ v2 = v2 + m1 + vec2(0u, u32(v2.x + m1.x < v2.x));
// d = rotr64(d ^ a, 32)
xor = v13 ^ v2;
v13 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v8;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
- v2 = v2 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m4.x < v2.x);
+ v2 = v2 + m4 + vec2(0u, u32(v2.x + m4.x < v2.x));
// d = rotr64(d ^ a, 16)
xor = v13 ^ v2;
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v8;
*/
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v9;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v9;
*/
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v8;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
- v0 = v0 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m2.x < v0.x);
+ v0 = v0 + m2 + vec2(0u, u32(v0.x + m2.x < v0.x));
// d = rotr64(d ^ a, 16)
xor = v12 ^ v0;
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v8;
*/
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v9;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m4.x < v1.x);
+ v1 = v1 + m4 + vec2(0u, u32(v1.x + m4.x < v1.x));
// d = rotr64(d ^ a, 16)
xor = v13 ^ v1;
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v9;
*/
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v10;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v10;
*/
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
- v3 = v3 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m1.x < v3.x);
+ v3 = v3 + m1 + vec2(0u, u32(v3.x + m1.x < v3.x));
// d = rotr64(d ^ a, 32)
xor = v15 ^ v3;
v15 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v11;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v11;
*/
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v10;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v10;
*/
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v11;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v11;
*/
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
- v2 = v2 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m3.x < v2.x);
+ v2 = v2 + m3 + vec2(0u, u32(v2.x + m3.x < v2.x));
// d = rotr64(d ^ a, 32)
xor = v13 ^ v2;
v13 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v8;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v8;
*/
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v9;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
- v3 = v3 + nonce + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + nonce.x < v3.x);
+ v3 = v3 + nonce + vec2(0u, u32(v3.x + nonce.x < v3.x));
// d = rotr64(d ^ a, 16)
xor = v14 ^ v3;
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v9;
*/
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
- v0 = v0 + nonce + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + nonce.x < v0.x);
+ v0 = v0 + nonce + vec2(0u, u32(v0.x + nonce.x < v0.x));
// d = rotr64(d ^ a, 32)
xor = v12 ^ v0;
v12 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v8;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
- v0 = v0 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m1.x < v0.x);
+ v0 = v0 + m1 + vec2(0u, u32(v0.x + m1.x < v0.x));
// d = rotr64(d ^ a, 16)
xor = v12 ^ v0;
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v8;
*/
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m2.x < v1.x);
+ v1 = v1 + m2 + vec2(0u, u32(v1.x + m2.x < v1.x));
// d = rotr64(d ^ a, 32)
xor = v13 ^ v1;
v13 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v9;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m3.x < v1.x);
+ v1 = v1 + m3 + vec2(0u, u32(v1.x + m3.x < v1.x));
// d = rotr64(d ^ a, 16)
xor = v13 ^ v1;
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v9;
*/
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
- v2 = v2 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + m4.x < v2.x);
+ v2 = v2 + m4 + vec2(0u, u32(v2.x + m4.x < v2.x));
// d = rotr64(d ^ a, 32)
xor = v14 ^ v2;
v14 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v10;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v10;
*/
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v11;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v11;
*/
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v10;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v10;
*/
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v11;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v11;
*/
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v8;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v8;
*/
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v9;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v9;
*/
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v12 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v8;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v4.x < v0.x);
+ v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v12.x < v8.x);
+ v8 = v8 + v12 + vec2(0u, u32(v8.x + v12.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v8;
*/
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + m4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m4.x < v1.x);
+ v1 = v1 + m4 + vec2(0u, u32(v1.x + m4.x < v1.x));
// d = rotr64(d ^ a, 32)
xor = v13 ^ v1;
v13 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v9;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v5.x < v1.x);
+ v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v13.x < v9.x);
+ v9 = v9 + v13 + vec2(0u, u32(v9.x + v13.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v9;
*/
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v10;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v6.x < v2.x);
+ v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v14.x < v10.x);
+ v10 = v10 + v14 + vec2(0u, u32(v10.x + v14.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v10;
*/
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v15 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v11;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v7.x < v3.x);
+ v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v15.x < v11.x);
+ v11 = v11 + v15 + vec2(0u, u32(v11.x + v15.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v11;
*/
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+0]]
- v0 = v0 + m1 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + m1.x < v0.x);
+ v0 = v0 + m1 + vec2(0u, u32(v0.x + m1.x < v0.x));
// d = rotr64(d ^ a, 32)
xor = v15 ^ v0;
v15 = vec2(xor.y, xor.x);
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 24)
xor = v5 ^ v10;
v5 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v0 = v0 + v5 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v0.x + v5.x < v0.x);
+ v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v15 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v10 = v10 + v15 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v10.x + v15.x < v10.x);
+ v10 = v10 + v15 + vec2(0u, u32(v10.x + v15.x < v10.x));
// b = rotr64(b ^ c, 63)
xor = v5 ^ v10;
*/
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+0]]
- v1 = v1 + nonce + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + nonce.x < v1.x);
+ v1 = v1 + nonce + vec2(0u, u32(v1.x + nonce.x < v1.x));
// d = rotr64(d ^ a, 32)
xor = v12 ^ v1;
v12 = vec2(xor.y, xor.x);
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 24)
xor = v6 ^ v11;
v6 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v1 = v1 + v6 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + v6.x < v1.x);
+ v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x));
// a = a + m[sigma[r][2*i+1]]
- v1 = v1 + m2 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v1.x + m2.x < v1.x);
+ v1 = v1 + m2 + vec2(0u, u32(v1.x + m2.x < v1.x));
// d = rotr64(d ^ a, 16)
xor = v12 ^ v1;
v12 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v11 = v11 + v12 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v11.x + v12.x < v11.x);
+ v11 = v11 + v12 + vec2(0u, u32(v11.x + v12.x < v11.x));
// b = rotr64(b ^ c, 63)
xor = v6 ^ v11;
*/
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v13 = vec2(xor.y, xor.x);
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 24)
xor = v7 ^ v8;
v7 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v2 = v2 + v7 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v2.x + v7.x < v2.x);
+ v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x));
// a = a + m[sigma[r][2*i+1]]
// skip since adding 0u does nothing
v13 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v8 = v8 + v13 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v8.x + v13.x < v8.x);
+ v8 = v8 + v13 + vec2(0u, u32(v8.x + v13.x < v8.x));
// b = rotr64(b ^ c, 63)
xor = v7 ^ v8;
*/
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+0]]
// skip since adding 0u does nothing
v14 = vec2(xor.y, xor.x);
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 24)
xor = v4 ^ v9;
v4 = vec2((xor.x >> 24u) | (xor.y << 8u), (xor.y >> 24u) | (xor.x << 8u));
// a = a + b
- v3 = v3 + v4 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + v4.x < v3.x);
+ v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x));
// a = a + m[sigma[r][2*i+1]]
- v3 = v3 + m3 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v3.x + m3.x < v3.x);
+ v3 = v3 + m3 + vec2(0u, u32(v3.x + m3.x < v3.x));
// d = rotr64(d ^ a, 16)
xor = v14 ^ v3;
v14 = vec2((xor.x >> 16u) | (xor.y << 16u), (xor.y >> 16u) | (xor.x << 16u));
// c = c + d
- v9 = v9 + v14 + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v9.x + v14.x < v9.x);
+ v9 = v9 + v14 + vec2(0u, u32(v9.x + v14.x < v9.x));
// b = rotr64(b ^ c, 63)
xor = v4 ^ v9;