fn vyre_rotr64(x: u64, n: u32) -> u64 {
return (x >> n) | (x << ((64u - n) & 63u));
}
fn vyre_sha512_ch(x: u64, y: u64, z: u64) -> u64 {
return (x & y) ^ ((~x) & z);
}
fn vyre_sha512_maj(x: u64, y: u64, z: u64) -> u64 {
return (x & y) ^ (x & z) ^ (y & z);
}
fn vyre_sha512_big0(x: u64) -> u64 {
return vyre_rotr64(x, 28u) ^ vyre_rotr64(x, 34u) ^ vyre_rotr64(x, 39u);
}
fn vyre_sha512_big1(x: u64) -> u64 {
return vyre_rotr64(x, 14u) ^ vyre_rotr64(x, 18u) ^ vyre_rotr64(x, 41u);
}