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);
58 val.
high = a >> (64 - num);
67 m = (a & 0xFFFFFFFFULL) * (b & 0xFFFFFFFFULL);
71 m = (a >> 32) * (b & 0xFFFFFFFFULL);
72 out = util_add128(out, util_lshift64(m, 32));
74 m = (a & 0xFFFFFFFFULL) * (b >> 32);
75 out = util_add128(out, util_lshift64(m, 32));
77 m = (a >> 32) * (b >> 32);
78 out = util_add128(out, util_lshift64(m, 64));
88 for (
int i = 3; i >= 0; i--) {
89 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