G(&v, &m, 6u, 8u, 18u, 28u, m[2u], m[3u], m[18u], m[19u]);
// ROUND(6)
- G(&v, &m, 0u, 8u, 16u, 24u, 24u, 10u);
- G(&v, &m, 2u, 10u, 18u, 26u, 2u, 30u);
- G(&v, &m, 4u, 12u, 20u, 28u, 28u, 26u);
- G(&v, &m, 6u, 14u, 22u, 30u, 8u, 20u);
- G(&v, &m, 0u, 10u, 20u, 30u, 0u, 14u);
- G(&v, &m, 2u, 12u, 22u, 24u, 12u, 6u);
- G(&v, &m, 4u, 14u, 16u, 26u, 18u, 4u);
- G(&v, &m, 6u, 8u, 18u, 28u, 16u, 22u);
+ G(&v, &m, 0u, 8u, 16u, 24u, m[24u], m[25u], m[10u], m[11u]);
+ G(&v, &m, 2u, 10u, 18u, 26u, m[2u], m[3u], m[30u], m[31u]);
+ G(&v, &m, 4u, 12u, 20u, 28u, m[28u], m[29u], m[26u], m[27u]);
+ G(&v, &m, 6u, 14u, 22u, 30u, m[8u], m[9u], m[20u], m[21u]);
+ G(&v, &m, 0u, 10u, 20u, 30u, m[0u], m[1u], m[14u], m[15u]);
+ G(&v, &m, 2u, 12u, 22u, 24u, m[12u], m[13u], m[6u], m[7u]);
+ G(&v, &m, 4u, 14u, 16u, 26u, m[18u], m[19u], m[4u], m[5u]);
+ G(&v, &m, 6u, 8u, 18u, 28u, m[16u], m[17u], m[22u], m[23u]);
// ROUND(7)
- G(&v, &m, 0u, 8u, 16u, 24u, 26u, 22u);
- G(&v, &m, 2u, 10u, 18u, 26u, 14u, 28u);
- G(&v, &m, 4u, 12u, 20u, 28u, 24u, 2u);
- G(&v, &m, 6u, 14u, 22u, 30u, 6u, 18u);
- G(&v, &m, 0u, 10u, 20u, 30u, 10u, 0u);
- G(&v, &m, 2u, 12u, 22u, 24u, 30u, 8u);
- G(&v, &m, 4u, 14u, 16u, 26u, 16u, 12u);
- G(&v, &m, 6u, 8u, 18u, 28u, 4u, 20u);
+ G(&v, &m, 0u, 8u, 16u, 24u, m[26u], m[27u], m[22u], m[23u]);
+ G(&v, &m, 2u, 10u, 18u, 26u, m[14u], m[15u], m[28u], m[29u]);
+ G(&v, &m, 4u, 12u, 20u, 28u, m[24u], m[25u], m[2u], m[3u]);
+ G(&v, &m, 6u, 14u, 22u, 30u, m[6u], m[7u], m[18u], m[19u]);
+ G(&v, &m, 0u, 10u, 20u, 30u, m[10u], m[11u], m[0u], m[1u]);
+ G(&v, &m, 2u, 12u, 22u, 24u, m[30u], m[31u], m[8u], m[9u]);
+ G(&v, &m, 4u, 14u, 16u, 26u, m[16u], m[17u], m[12u], m[13u]);
+ G(&v, &m, 6u, 8u, 18u, 28u, m[4u], m[5u], m[20u], m[21u]);
// ROUND(8)
- G(&v, &m, 0u, 8u, 16u, 24u, 12u, 30u);
- G(&v, &m, 2u, 10u, 18u, 26u, 28u, 18u);
- G(&v, &m, 4u, 12u, 20u, 28u, 22u, 6u);
- G(&v, &m, 6u, 14u, 22u, 30u, 0u, 16u);
- G(&v, &m, 0u, 10u, 20u, 30u, 24u, 4u);
- G(&v, &m, 2u, 12u, 22u, 24u, 26u, 14u);
- G(&v, &m, 4u, 14u, 16u, 26u, 2u, 8u);
- G(&v, &m, 6u, 8u, 18u, 28u, 20u, 10u);
+ G(&v, &m, 0u, 8u, 16u, 24u, m[12u], m[13u], m[30u], m[31u]);
+ G(&v, &m, 2u, 10u, 18u, 26u, m[28u], m[29u], m[18u], m[19u]);
+ G(&v, &m, 4u, 12u, 20u, 28u, m[22u], m[23u], m[6u], m[7u]);
+ G(&v, &m, 6u, 14u, 22u, 30u, m[0u], m[1u], m[16u], m[17u]);
+ G(&v, &m, 0u, 10u, 20u, 30u, m[24u], m[25u], m[4u], m[5u]);
+ G(&v, &m, 2u, 12u, 22u, 24u, m[26u], m[27u], m[14u], m[15u]);
+ G(&v, &m, 4u, 14u, 16u, 26u, m[2u], m[3u], m[8u], m[9u]);
+ G(&v, &m, 6u, 8u, 18u, 28u, m[20u], m[21u], m[10u], m[11u]);
// ROUND(9)
- G(&v, &m, 0u, 8u, 16u, 24u, 20u, 4u);
- G(&v, &m, 2u, 10u, 18u, 26u, 16u, 8u);
- G(&v, &m, 4u, 12u, 20u, 28u, 14u, 12u);
- G(&v, &m, 6u, 14u, 22u, 30u, 2u, 10u);
- G(&v, &m, 0u, 10u, 20u, 30u, 30u, 22u);
- G(&v, &m, 2u, 12u, 22u, 24u, 18u, 28u);
- G(&v, &m, 4u, 14u, 16u, 26u, 6u, 24u);
- G(&v, &m, 6u, 8u, 18u, 28u, 26u, 0u);
+ G(&v, &m, 0u, 8u, 16u, 24u, m[20u], m[21u], m[4u], m[5u]);
+ G(&v, &m, 2u, 10u, 18u, 26u, m[16u], m[17u], m[8u], m[9u]);
+ G(&v, &m, 4u, 12u, 20u, 28u, m[14u], m[15u], m[12u], m[13u]);
+ G(&v, &m, 6u, 14u, 22u, 30u, m[2u], m[3u], m[10u], m[11u]);
+ G(&v, &m, 0u, 10u, 20u, 30u, m[30u], m[31u], m[22u], m[23u]);
+ G(&v, &m, 2u, 12u, 22u, 24u, m[18u], m[19u], m[28u], m[29u]);
+ G(&v, &m, 4u, 14u, 16u, 26u, m[6u], m[7u], m[24u], m[25u]);
+ G(&v, &m, 6u, 8u, 18u, 28u, m[26u], m[27u], m[0u], m[1u]);
// ROUND(10)
- G(&v, &m, 0u, 8u, 16u, 24u, 0u, 2u);
- G(&v, &m, 2u, 10u, 18u, 26u, 4u, 6u);
- G(&v, &m, 4u, 12u, 20u, 28u, 8u, 10u);
- G(&v, &m, 6u, 14u, 22u, 30u, 12u, 14u);
- G(&v, &m, 0u, 10u, 20u, 30u, 16u, 18u);
- G(&v, &m, 2u, 12u, 22u, 24u, 20u, 22u);
- G(&v, &m, 4u, 14u, 16u, 26u, 24u, 26u);
- G(&v, &m, 6u, 8u, 18u, 28u, 28u, 30u);
+ G(&v, &m, 0u, 8u, 16u, 24u, m[0u], m[1u], m[2u], m[3u]);
+ G(&v, &m, 2u, 10u, 18u, 26u, m[4u], m[5u], m[6u], m[7u]);
+ G(&v, &m, 4u, 12u, 20u, 28u, m[8u], m[9u], m[10u], m[11u]);
+ G(&v, &m, 6u, 14u, 22u, 30u, m[12u], m[13u], m[14u], m[15u]);
+ G(&v, &m, 0u, 10u, 20u, 30u, m[16u], m[17u], m[18u], m[19u]);
+ G(&v, &m, 2u, 12u, 22u, 24u, m[20u], m[21u], m[22u], m[23u]);
+ G(&v, &m, 4u, 14u, 16u, 26u, m[24u], m[25u], m[26u], m[27u]);
+ G(&v, &m, 6u, 8u, 18u, 28u, m[28u], m[29u], m[30u], m[31u]);
// ROUND(11)
- G(&v, &m, 0u, 8u, 16u, 24u, 28u, 20u);
- G(&v, &m, 2u, 10u, 18u, 26u, 8u, 16u);
- G(&v, &m, 4u, 12u, 20u, 28u, 18u, 30u);
- G(&v, &m, 6u, 14u, 22u, 30u, 26u, 12u);
- G(&v, &m, 0u, 10u, 20u, 30u, 2u, 24u);
- G(&v, &m, 2u, 12u, 22u, 24u, 0u, 4u);
- G(&v, &m, 4u, 14u, 16u, 26u, 22u, 14u);
- G(&v, &m, 6u, 8u, 18u, 28u, 10u, 6u);
+ G(&v, &m, 0u, 8u, 16u, 24u, m[28u], m[29u], m[20u], m[21u]);
+ G(&v, &m, 2u, 10u, 18u, 26u, m[8u], m[9u], m[16u], m[17u]);
+ G(&v, &m, 4u, 12u, 20u, 28u, m[18u], m[19u], m[30u], m[31u]);
+ G(&v, &m, 6u, 14u, 22u, 30u, m[26u], m[27u], m[12u], m[13u]);
+ G(&v, &m, 0u, 10u, 20u, 30u, m[2u], m[3u], m[24u], m[25u]);
+ G(&v, &m, 2u, 12u, 22u, 24u, m[0u], m[1u], m[4u], m[5u]);
+ G(&v, &m, 4u, 14u, 16u, 26u, m[22u], m[23u], m[14u], m[15u]);
+ G(&v, &m, 6u, 8u, 18u, 28u, m[10u], m[11u], m[6u], m[7u]);
/**
* Set nonce if it passes the threshold and no other thread has set it