36 val = (a.
low & 0xFFFFFFFFULL) + (b.
low & 0xFFFFFFFFULL);
40 val += (a.
low >> 32) + (b.
low >> 32);
44 val += (a.
high & 0xFFFFFFFFULL) + (b.
high & 0xFFFFFFFFULL);
48 val += (a.
high >> 32) + (b.
high >> 32);
75 m = (a & 0xFFFFFFFFULL) * (b & 0xFFFFFFFFULL);
79 m = (a >> 32) * (b & 0xFFFFFFFFULL);
80 out = util_add128(out, util_lshift64_internal_32(m));
82 m = (a & 0xFFFFFFFFULL) * (b >> 32);
83 out = util_add128(out, util_lshift64_internal_32(m));
85 m = (a >> 32) * (b >> 32);
86 out = util_add128(out, util_lshift64_internal_64(m));
96 for (
int i = 3; i >= 0; i--) {
97 val = (val << 32) | a.
i32[i];
Definition: util_uint128.h:19
uint64_t high
Definition: util_uint128.h:24
uint32_t i32[4]
Definition: util_uint128.h:21
unsigned uint32_t
Definition: vc_stdint.h:31
unsigned __int64 uint64_t
Definition: vc_stdint.h:33
uint64_t low
Definition: util_uint128.h:23