Intel/AMD intrinsics-based implementations of arithmetic operations for integers.
Procs
func borrowingSub(a, b: uint32; borrowIn: bool): (uint32, bool) {.inline, noinit, ...raises: [], tags: [], forbids: [].}
- Source Edit
func borrowingSub(a, b: uint64; borrowIn: bool): (uint64, bool) {.inline, noinit, inline, noinit, ...raises: [], tags: [], forbids: [].}
- Source Edit
func builtinBorrowingSub(borrowIn: uint8; a, b: uint32; res: var uint32): uint8 {. importc: "_subborrow_u32", header: "<x86intrin.h>", nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
func builtinBorrowingSub(borrowIn: uint8; a, b: uint64; res: var uint64): uint8 {. importc: "_subborrow_u64", header: "<x86intrin.h>", nodecl, inline, noinit, inline, noinit, ...raises: [], tags: [], forbids: [].}
- Source Edit
func builtinCarryingAdd(carryIn: uint8; a, b: uint32; res: var uint32): uint8 {. importc: "_addcarry_u32", header: "<x86intrin.h>", nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
func builtinCarryingAdd(carryIn: uint8; a, b: uint64; res: var uint64): uint8 {. importc: "_addcarry_u64", header: "<x86intrin.h>", nodecl, inline, noinit, inline, noinit, ...raises: [], tags: [], forbids: [].}
- Source Edit
func builtinNarrowingDiv(uHi, uLo, v: uint64; r: var uint64): uint64 {. importc: "_udiv128", header: "<x86intrin.h>", nodecl, inline, noinit, inline, noinit, ...raises: [], tags: [], forbids: [].}
- Source Edit
func carryingAdd(a, b: uint32; carryIn: bool): (uint32, bool) {.inline, noinit, ...raises: [], tags: [], forbids: [].}
- Source Edit
func carryingAdd(a, b: uint64; carryIn: bool): (uint64, bool) {.inline, noinit, inline, noinit, ...raises: [], tags: [], forbids: [].}
- Source Edit
func narrowingDiv(uHi, uLo, v: uint64): (uint64, uint64) {.inline, noinit, inline, noinit, ...raises: [], tags: [], forbids: [].}
- Source Edit