// a = a + m[sigma[r][2*i+0]]
- o0 = v_01.x + m0;
- o1 = v_01.y + m1;
- o1 = o1 + select(0u, 1u, o0 < v_01.x);
- v_01.x = o0;
- v_01.y = o1;
+ v_01 = v_01 + vec2(m0, m1) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v_01.x + m0 < v_01.x);
// a = a + m[sigma[r][2*i+1]]
- o0 = v_01.x + m0;
- o1 = v_01.y + m1;
- o1 = o1 + select(0u, 1u, o0 < v_01.x);
- v_01.x = o0;
- v_01.y = o1;
+ v_01 = v_01 + vec2(m0, m1) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v_01.x + m0 < v_01.x);
+
// a = a + m[sigma[r][2*i+0]]
- o0 = v_01.x + m8;
- o1 = v_01.y + m9;
- o1 = o1 + select(0u, 1u, o0 < v_01.x);
- v_01.x = o0;
- v_01.y = o1;
+ v_01 = v_01 + vec2(m8, m9) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v_01.x + m8 < v_01.x);
+
// a = a + m[sigma[r][2*i+0]]
- o0 = v6 + m2;
- o1 = v7 + m3;
- o1 = o1 + select(0u, 1u, o0 < v6);
- v6 = o0;
- v7 = o1;
+ v_67.x = v6;
+ v_67.y = v7;
+ v_67 = v_67 + vec2(m2, m3) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v_67.x + m2 < v_67.x);
+ v6 = v_67.x;
+ v7 = v_67.y;
// d = rotr64(d ^ a, 32)
v_67.x = v6;
// a = a + m[sigma[r][2*i+0]]
- o0 = v_01.x + m0;
- o1 = v_01.y + m1;
- o1 = o1 + select(0u, 1u, o0 < v_01.x);
- v_01.x = o0;
- v_01.y = o1;
+ v_01 = v_01 + vec2(m0, m1) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v_01.x + m0 < v_01.x);
// a = a + m[sigma[r][2*i+1]]
- o0 = v_01.x + m0;
- o1 = v_01.y + m1;
- o1 = o1 + select(0u, 1u, o0 < v_01.x);
- v_01.x = o0;
- v_01.y = o1;
+ v_01 = v_01 + vec2(m0, m1) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v_01.x + m0 < v_01.x);
// a = a + m[sigma[r][2*i+0]]
- o0 = v6 + m2;
- o1 = v7 + m3;
- o1 = o1 + select(0u, 1u, o0 < v6);
- v6 = o0;
- v7 = o1;
+ v_67.x = v6;
+ v_67.y = v7;
+ v_67 = v_67 + vec2(m2, m3) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v_67.x + m2 < v_67.x);
+ v6 = v_67.x;
+ v7 = v_67.y;
// d = rotr64(d ^ a, 32)
v_67.x = v6;
// a = a + m[sigma[r][2*i+0]]
- o0 = v_01.x + m0;
- o1 = v_01.y + m1;
- o1 = o1 + select(0u, 1u, o0 < v_01.x);
- v_01.x = o0;
- v_01.y = o1;
+ v_01 = v_01 + vec2(m0, m1) + select(vec2<u32>(0u), vec2<u32>(0u, 1u), v_01.x + m0 < v_01.x);