var m9: u32 = ubo.blockhash[1u].w;
/**
- * Compression buffer initialized to 2 instances of initialization vector
+ * Compression buffer initialized to 2 instances of initialization vector. Each
+ * vec2<u32> represents two halves of the original u64 value from the reference
+ * implementation. They appear reversed pairwise as defined below, but this is
+ * because NanoPow treats the `x` component of a vector as the low bits and the
+ * `y` component as the high bits.
+ *
* The following values have been modified from the BLAKE2B_IV:
+ *
* OUTLEN is constant 8 bytes
* v[0u] ^= 0x01010000u ^ uint(OUTLEN);
+ *
* INLEN is constant 40 bytes: work value (8) + block hash (32)
* v[24u] ^= uint(INLEN);
+ *
* It is always the "last" compression at this INLEN
* v[28u] = ~v[28u];
* v[29u] = ~v[29u];
/**
* Twelve rounds of G mixing as part of BLAKE2b compression step.
+*
* Each sigma r index correlates with the reference implementation, but each
- * sigma i index, and each v index, is doubled due to using two u32 array
- * elements to represent one uint64_t.
+ * sigma i index is doubled due to using two u32 array elements to represent
+ * one uint64_t.
*/
var xor: vec2<u32>;
****************************************************************************/
/**
- * r=0, i=0(x2), a=v[0-1], b=v[8-9], c=v[16-17], d=v[24-25]
+ * r=0, i=0(x2), a=v[0], b=v[4], c=v[8], d=v[12]
*/
// a = a + b
/**
- * r=0, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27]
+ * r=0, i=1(x2), a=v[1], b=v[5], c=v[9], d=v[13]
*/
// a = a + b
/**
- * r=0, i=2(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27]
+ * r=0, i=2(x2), a=v[2], b=v[6], c=v[10], d=v[14]
*/
// a = a + b
/**
- * r=0, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31]
+ * r=0, i=3(x2), a=v[3], b=v[7], c=v[11], d=v[15]
*/
// a = a + b
/**
- * r=0, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31]
+ * r=0, i=4(x2), a=v[0], b=v[5], c=v[10], d=v[15]
*/
// a = a + b
/**
- * r=0, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25]
+ * r=0, i=5(x2), a=v[1], b=v[6], c=v[11], d=v[12]
*/
// a = a + b
/**
- * r=0, i=6(x2), a=v[4-6], b=v[14-15], c=v[16-17], d=v[26-27]
+ * r=0, i=6(x2), a=v[2], b=v[7], c=v[8], d=v[13]
*/
// a = a + b
/**
- * r=0, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29]
+ * r=0, i=7(x2), a=v[3], b=v[4], c=v[9], d=v[14]
*/
// a = a + b
****************************************************************************/
/**
- * r=1, i=0(x2), a=v[0-1], b=v[8-9], c=v[16-17], d=v[24-25]
+ * r=1, i=0(x2), a=v[0], b=v[4], c=v[8], d=v[12]
*/
// a = a + b
/**
- * r=1, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27]
+ * r=1, i=1(x2), a=v[1], b=v[5], c=v[9], d=v[13]
*/
// a = a + b
/**
- * r=1, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29]
+ * r=1, i=2(x2), a=v[2], b=v[6], c=v[10], d=v[14]
*/
// a = a + b
/**
- * r=1, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31]
+ * r=1, i=3(x2), a=v[3], b=v[7], c=v[11], d=v[15]
*/
// a = a + b
/**
- * r=1, i=4(x2), a=v[0-1], b=v[11-12], c=v[21-22], d=v[30-31]
+ * r=1, i=4(x2), a=v[0], b=v[5], c=v[10], d=v[15]
*/
// a = a + b
/**
- * r=1, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25]
+ * r=1, i=5(x2), a=v[1], b=v[6], c=v[11], d=v[12]
*/
// a = a + b
/**
- * r=1, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27]
+ * r=1, i=6(x2), a=v[2], b=v[7], c=v[8], d=v[13]
*/
// a = a + b
/**
- * r=1, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29]
+ * r=1, i=7(x2), a=v[3], b=v[4], c=v[9], d=v[14]
*/
// a = a + b
****************************************************************************/
/**
- * r=2, i=0(x2), a=v[0-1], b=v[8-9], c=v[16-17], d=v[24-25]
+ * r=2, i=0(x2), a=v[0], b=v[4], c=v[8], d=v[12]
*/
// a = a + b
/**
- * r=2, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27]
+ * r=2, i=1(x2), a=v[1], b=v[5], c=v[9], d=v[13]
*/
// a = a + b
/**
- * r=2, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29]
+ * r=2, i=2(x2), a=v[2], b=v[6], c=v[10], d=v[14]
*/
// a = a + b
/**
- * r=2, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31]
+ * r=2, i=3(x2), a=v[3], b=v[7], c=v[11], d=v[15]
*/
// a = a + b
/**
- * r=2, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31]
+ * r=2, i=4(x2), a=v[0], b=v[5], c=v[10], d=v[15]
*/
// a = a + b
/**
- * r=2, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25]
+ * r=2, i=5(x2), a=v[1], b=v[6], c=v[11], d=v[12]
*/
// a = a + b
/**
- * r=2, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27]
+ * r=2, i=6(x2), a=v[2], b=v[7], c=v[8], d=v[13]
*/
// a = a + b
/**
- * r=2, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29]
+ * r=2, i=7(x2), a=v[3], b=v[4], c=v[9], d=v[14]
*/
// a = a + b
****************************************************************************/
/**
- * r=3, i=0(x2), a=v[0-1], b=v[8-9], c=v[16-17], d=v[24-25]
+ * r=3, i=0(x2), a=v[0], b=v[4], c=v[8], d=v[12]
*/
// a = a + b
/**
- * r=3, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27]
+ * r=3, i=1(x2), a=v[1], b=v[5], c=v[9], d=v[13]
*/
// a = a + b
/**
- * r=3, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29]
+ * r=3, i=2(x2), a=v[2], b=v[6], c=v[10], d=v[14]
*/
// a = a + b
/**
- * r=3, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31]
+ * r=3, i=3(x2), a=v[3], b=v[7], c=v[11], d=v[15]
*/
// a = a + b
/**
- * r=3, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31]
+ * r=3, i=4(x2), a=v[0], b=v[5], c=v[10], d=v[15]
*/
// a = a + b
/**
- * r=3, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25]
+ * r=3, i=5(x2), a=v[1], b=v[6], c=v[11], d=v[12]
*/
// a = a + b
/**
- * r=3, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27]
+ * r=3, i=6(x2), a=v[2], b=v[7], c=v[8], d=v[13]
*/
// a = a + b
/**
- * r=3, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29]
+ * r=3, i=7(x2), a=v[3], b=v[4], c=v[9], d=v[14]
*/
// a = a + b
****************************************************************************/
/**
- * r=4, i=0(x2), a=v[0-1], b=v[8-9], c=v[16-17], d=v[24-25]
+ * r=4, i=0(x2), a=v[0], b=v[4], c=v[8], d=v[12]
*/
// a = a + b
/**
- * r=4, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27]
+ * r=4, i=1(x2), a=v[1], b=v[5], c=v[9], d=v[13]
*/
// a = a + b
/**
- * r=4, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29]
+ * r=4, i=2(x2), a=v[2], b=v[6], c=v[10], d=v[14]
*/
// a = a + b
/**
- * r=4, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31]
+ * r=4, i=3(x2), a=v[3], b=v[7], c=v[11], d=v[15]
*/
// a = a + b
/**
- * r=4, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31]
+ * r=4, i=4(x2), a=v[0], b=v[5], c=v[10], d=v[15]
*/
// a = a + b
/**
- * r=4, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25]
+ * r=4, i=5(x2), a=v[1], b=v[6], c=v[11], d=v[12]
*/
// a = a + b
/**
- * r=4, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27]
+ * r=4, i=6(x2), a=v[2], b=v[7], c=v[8], d=v[13]
*/
// a = a + b
/**
- * r=4, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29]
+ * r=4, i=7(x2), a=v[3], b=v[4], c=v[9], d=v[14]
*/
// a = a + b
****************************************************************************/
/**
- * r=5, i=0(x2), a=v[0-1], b=v[8-9], c=v[16-17], d=v[24-25]
+ * r=5, i=0(x2), a=v[0], b=v[4], c=v[8], d=v[12]
*/
// a = a + b
/**
- * r=5, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27]
+ * r=5, i=1(x2), a=v[1], b=v[5], c=v[9], d=v[13]
*/
// a = a + b
/**
- * r=5, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29]
+ * r=5, i=2(x2), a=v[2], b=v[6], c=v[10], d=v[14]
*/
// a = a + b
/**
- * r=5, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31]
+ * r=5, i=3(x2), a=v[3], b=v[7], c=v[11], d=v[15]
*/
// a = a + b
/**
- * r=5, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31]
+ * r=5, i=4(x2), a=v[0], b=v[5], c=v[10], d=v[15]
*/
// a = a + b
/**
- * r=5, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25]
+ * r=5, i=5(x2), a=v[1], b=v[6], c=v[11], d=v[12]
*/
// a = a + b
/**
- * r=5, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27]
+ * r=5, i=6(x2), a=v[2], b=v[7], c=v[8], d=v[13]
*/
// a = a + b
/**
- * r=5, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29]
+ * r=5, i=7(x2), a=v[3], b=v[4], c=v[9], d=v[14]
*/
// a = a + b
****************************************************************************/
/**
- * r=6, i=0(x2), a=v[0-1], b=v[8-9], c=v[16-17], d=v[24-25]
+ * r=6, i=0(x2), a=v[0], b=v[4], c=v[8], d=v[12]
*/
// a = a + b
/**
- * r=6, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27]
+ * r=6, i=1(x2), a=v[1], b=v[5], c=v[9], d=v[13]
*/
// a = a + b
/**
- * r=6, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29]
+ * r=6, i=2(x2), a=v[2], b=v[6], c=v[10], d=v[14]
*/
// a = a + b
/**
- * r=6, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31]
+ * r=6, i=3(x2), a=v[3], b=v[7], c=v[11], d=v[15]
*/
// a = a + b
/**
- * r=6, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31]
+ * r=6, i=4(x2), a=v[0], b=v[5], c=v[10], d=v[15]
*/
// a = a + b
/**
- * r=6, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25]
+ * r=6, i=5(x2), a=v[1], b=v[6], c=v[11], d=v[12]
*/
// a = a + b
/**
- * r=6, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27]
+ * r=6, i=6(x2), a=v[2], b=v[7], c=v[8], d=v[13]
*/
// a = a + b
/**
- * r=6, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29]
+ * r=6, i=7(x2), a=v[3], b=v[4], c=v[9], d=v[14]
*/
// a = a + b
****************************************************************************/
/**
- * r=7, i=0(x2), a=v[0-1], b=v[8-9], c=v[16-17], d=v[24-25]
+ * r=7, i=0(x2), a=v[0], b=v[4], c=v[8], d=v[12]
*/
// a = a + b
/**
- * r=7, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27]
+ * r=7, i=1(x2), a=v[1], b=v[5], c=v[9], d=v[13]
*/
// a = a + b
/**
- * r=7, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29]
+ * r=7, i=2(x2), a=v[2], b=v[6], c=v[10], d=v[14]
*/
// a = a + b
/**
- * r=7, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31]
+ * r=7, i=3(x2), a=v[3], b=v[7], c=v[11], d=v[15]
*/
// a = a + b
/**
- * r=7, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31]
+ * r=7, i=4(x2), a=v[0], b=v[5], c=v[10], d=v[15]
*/
// a = a + b
/**
- * r=7, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25]
+ * r=7, i=5(x2), a=v[1], b=v[6], c=v[11], d=v[12]
*/
// a = a + b
/**
- * r=7, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27]
+ * r=7, i=6(x2), a=v[2], b=v[7], c=v[8], d=v[13]
*/
// a = a + b
/**
- * r=7, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29]
+ * r=7, i=7(x2), a=v[3], b=v[4], c=v[9], d=v[14]
*/
// a = a + b
****************************************************************************/
/**
- * r=8, i=0(x2), a=v[0-1], b=v[8-9], c=v[16-17], d=v[24-25]
+ * r=8, i=0(x2), a=v[0], b=v[4], c=v[8], d=v[12]
*/
// a = a + b
/**
- * r=8, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27]
+ * r=8, i=1(x2), a=v[1], b=v[5], c=v[9], d=v[13]
*/
// a = a + b
/**
- * r=8, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29]
+ * r=8, i=2(x2), a=v[2], b=v[6], c=v[10], d=v[14]
*/
// a = a + b
/**
- * r=8, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31]
+ * r=8, i=3(x2), a=v[3], b=v[7], c=v[11], d=v[15]
*/
// a = a + b
/**
- * r=8, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31]
+ * r=8, i=4(x2), a=v[0], b=v[5], c=v[10], d=v[15]
*/
// a = a + b
/**
- * r=8, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25]
+ * r=8, i=5(x2), a=v[1], b=v[6], c=v[11], d=v[12]
*/
// a = a + b
/**
- * r=8, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27]
+ * r=8, i=6(x2), a=v[2], b=v[7], c=v[8], d=v[13]
*/
// a = a + b
/**
- * r=8, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29]
+ * r=8, i=7(x2), a=v[3], b=v[4], c=v[9], d=v[14]
*/
// a = a + b
****************************************************************************/
/**
- * r=9, i=0(x2), a=v[0-1], b=v[8-9], c=v[16-17], d=v[24-25]
+ * r=9, i=0(x2), a=v[0], b=v[4], c=v[8], d=v[12]
*/
// a = a + b
/**
- * r=9, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27]
+ * r=9, i=1(x2), a=v[1], b=v[5], c=v[9], d=v[13]
*/
// a = a + b
/**
- * r=9, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29]
+ * r=9, i=2(x2), a=v[2], b=v[6], c=v[10], d=v[14]
*/
// a = a + b
/**
- * r=9, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31]
+ * r=9, i=3(x2), a=v[3], b=v[7], c=v[11], d=v[15]
*/
// a = a + b
/**
- * r=9, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31]
+ * r=9, i=4(x2), a=v[0], b=v[5], c=v[10], d=v[15]
*/
// a = a + b
/**
- * r=9, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25]
+ * r=9, i=5(x2), a=v[1], b=v[6], c=v[11], d=v[12]
*/
// a = a + b
/**
- * r=9, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27]
+ * r=9, i=6(x2), a=v[2], b=v[7], c=v[8], d=v[13]
*/
// a = a + b
/**
- * r=9, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29]
+ * r=9, i=7(x2), a=v[3], b=v[4], c=v[9], d=v[14]
*/
// a = a + b
****************************************************************************/
/**
- * r=10, i=0(x2), a=v[0-1], b=v[8-9], c=v[16-17], d=v[24-25]
+ * r=10, i=0(x2), a=v[0], b=v[4], c=v[8], d=v[12]
*/
// a = a + b
/**
- * r=10, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27]
+ * r=10, i=1(x2), a=v[1], b=v[5], c=v[9], d=v[13]
*/
// a = a + b
/**
- * r=10, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29]
+ * r=10, i=2(x2), a=v[2], b=v[6], c=v[10], d=v[14]
*/
// a = a + b
/**
- * r=10, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31]
+ * r=10, i=3(x2), a=v[3], b=v[7], c=v[11], d=v[15]
*/
// a = a + b
/**
- * r=10, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31]
+ * r=10, i=4(x2), a=v[0], b=v[5], c=v[10], d=v[15]
*/
// a = a + b
/**
- * r=10, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25]
+ * r=10, i=5(x2), a=v[1], b=v[6], c=v[11], d=v[12]
*/
// a = a + b
/**
- * r=10, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27]
+ * r=10, i=6(x2), a=v[2], b=v[7], c=v[8], d=v[13]
*/
// a = a + b
/**
- * r=10, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29]
+ * r=10, i=7(x2), a=v[3], b=v[4], c=v[9], d=v[14]
*/
// a = a + b
****************************************************************************/
/**
- * r=11, i=0(x2), a=v[0-1], b=v[8-9], c=v[16-17], d=v[24-25]
+ * r=11, i=0(x2), a=v[0], b=v[4], c=v[8], d=v[12]
*/
// a = a + b
/**
- * r=11, i=1(x2), a=v[2-3], b=v[10-11], c=v[18-19], d=v[26-27]
+ * r=11, i=1(x2), a=v[1], b=v[5], c=v[9], d=v[13]
*/
// a = a + b
/**
- * r=11, i=2(x2), a=v[4-5], b=v[12-13], c=v[20-21], d=v[28-29]
+ * r=11, i=2(x2), a=v[2], b=v[6], c=v[10], d=v[14]
*/
// a = a + b
/**
- * r=11, i=3(x2), a=v[6-7], b=v[14-15], c=v[22-23], d=v[30-31]
+ * r=11, i=3(x2), a=v[3], b=v[7], c=v[11], d=v[15]
*/
// a = a + b
/**
- * r=11, i=4(x2), a=v[0-1], b=v[10-11], c=v[20-21], d=v[30-31]
+ * r=11, i=4(x2), a=v[0], b=v[5], c=v[10], d=v[15]
*/
// a = a + b
/**
- * r=11, i=5(x2), a=v[2-3], b=v[12-13], c=v[22-23], d=v[24-25]
+ * r=11, i=5(x2), a=v[1], b=v[6], c=v[11], d=v[12]
*/
// a = a + b
/**
- * r=11, i=6(x2), a=v[4-5], b=v[14-15], c=v[16-17], d=v[26-27]
+ * r=11, i=6(x2), a=v[2], b=v[7], c=v[8], d=v[13]
*/
// a = a + b
/**
- * r=11, i=7(x2), a=v[6-7], b=v[8-9], c=v[18-19], d=v[28-29]
+ * r=11, i=7(x2), a=v[3], b=v[4], c=v[9], d=v[14]
*/
// a = a + b