[libc] add uint128 implementation
authorMichael Jones <michaelrj@google.com>
Tue, 3 May 2022 16:55:00 +0000 (09:55 -0700)
committerMichael Jones <michaelrj@google.com>
Thu, 12 May 2022 18:16:53 +0000 (11:16 -0700)
commit1170951c737773e22b686cac195e0d13b2441374
treee14542cd0593ae2dcc472a2534c8ec5fe180fb66
parent91ed7e19418181ae385c2626cedd3b08b6ba43a6
[libc] add uint128 implementation

Some platforms don't support proper 128 bit integers, but some
algorithms use them, such as any that use long doubles. This patch
modifies the existing UInt class to support the necessary operators.
This does not put this new class into use, that will be in followup
patches.

Reviewed By: sivachandra, lntue

Differential Revision: https://reviews.llvm.org/D124959
libc/src/__support/CPP/CMakeLists.txt
libc/src/__support/CPP/TypeTraits.h
libc/src/__support/CPP/UInt.h [new file with mode: 0644]
libc/src/__support/FPUtil/CMakeLists.txt
libc/src/__support/FPUtil/UInt.h [deleted file]
libc/src/__support/FPUtil/XFloat.h
libc/src/math/generic/CMakeLists.txt
libc/test/src/__support/CMakeLists.txt
libc/test/src/__support/uint128_test.cpp [new file with mode: 0644]
libc/utils/UnitTest/LibcTest.cpp