Lines Matching refs:lo
11 uint64_t lo;
23 return a.lo;
43 return (Int128) { a.lo & b.lo, a.hi & b.hi };
56 return (Int128) { (a.lo >> n) | (a.hi << (64 - n)), h };
62 uint64_t lo = a.lo + b.lo;
64 /* a.lo <= a.lo + b.lo < a.lo + k (k is the base, 2^64). Hence,
65 * a.lo + b.lo >= k implies 0 <= lo = a.lo + b.lo - k < a.lo.
66 * Similarly, a.lo + b.lo < k implies a.lo <= lo = a.lo + b.lo < k.
68 * So the carry is lo < a.lo.
70 return (Int128) { lo, (uint64_t)a.hi + b.hi + (lo < a.lo) };
75 uint64_t lo = -a.lo;
76 return (Int128) { lo, ~(uint64_t)a.hi + !lo };
81 return (Int128){ a.lo - b.lo, a.hi - b.hi - (a.lo < b.lo) };
91 return a.lo == b.lo && a.hi == b.hi;
101 return a.hi > b.hi || (a.hi == b.hi && a.lo >= b.lo);
121 return a.lo || a.hi;