vyre 0.4.0

GPU compute intermediate representation with a standard operation library
Documentation
fn vyre_sha1_schedule(a: u32, b: u32, c: u32, d: u32) -> u32 {
  return vyre_rotl32(a ^ b ^ c ^ d, 1u);
}

fn vyre_sha1_f(round: u32, b: u32, c: u32, d: u32) -> u32 {
  if (round < 20u) {
    return (b & c) | ((~b) & d);
  }
  if (round < 40u) {
    return b ^ c ^ d;
  }
  if (round < 60u) {
    return (b & c) | (b & d) | (c & d);
  }
  return b ^ c ^ d;
}

fn vyre_sha1_k(round: u32) -> u32 {
  if (round < 20u) { return 0x5a827999u; }
  if (round < 40u) { return 0x6ed9eba1u; }
  if (round < 60u) { return 0x8f1bbcdcu; }
  return 0xca62c1d6u;
}