using Revise
using UArrayInts
using BenchmarkTools

@btime UArrayInts.add_carry($(0xff), $(0xff))
@btime 0x00ff + 0x00ff

@btime UArrayInts.add!($([0xff, 0xff]), $([0xff, 0xff]))
@btime $(0xffff) + $(0xffff)
@btime UArrayInts.add!($([0xff, 0xff]), $([0xff, 0xff]), 1)
@btime UArrayInts.add!($([0xffff, 0xffff]), $([0xffff, 0xffff]))
@btime $(0xffffffff) + $(0xffffffff)
@btime UArrayInts.add!($([0xffff]), $([0xffff, 0xffff]))
@btime (0x00000000000ffff + 0x0000000ffffffff) % UInt16


UArrayInts.mul!([0xffff, 0xffff], 0xffff)

@btime UArrayInts.mul!($([0xffff, 0xffff]), $(0xffff))
@code_warntype UArrayInts.mul!(Array{UInt8}(undef, 2), [0xff, 0xff], [0xff, 0xff])
@code_llvm UArrayInts.mul!(Array{UInt8}(undef, 2), [0xff, 0xff], [0xff, 0xff])
0xffffffff * 0xffff
@btime UArrayInts.mul!($(Array{UInt8}(undef, 2)), $([0xff, 0xff]), $([0xff, 0xff]))
0xffff * 0xffff
@btime $(0xffff) * $(0xffff)
@btime UArrayInts.mul!($([0xffff, 0xffff]), $([0xffff, 0xffff]))
@btime $(0xffffffff) * $(0xffffffff)
@btime UArrayInts.mul!($([0xffff]), $([0xffff, 0xffff]))
@btime (0x00000000000ffff * 0x0000000ffffffff) % UInt16
