// REQUIRED_ARGS: -O -inline | |
struct Cent | |
{ | |
ulong lo; // low 64 bits | |
ulong hi; // high 64 bits | |
} | |
pure bool tst(Cent c) | |
{ | |
return c.hi || c.lo; | |
} | |
pure Cent dec(Cent c); | |
pure Cent shl(Cent c, uint n); | |
pure Cent udivmod(Cent c1, Cent c2, out Cent modulus) | |
{ | |
ulong v1 = shl(c2, 3).hi; | |
Cent quotient; | |
if (tst(quotient)) | |
quotient = dec(quotient); | |
return quotient; | |
} |