search for: __int128

Displaying 20 results from an estimated 57 matches for "__int128".

2018 Dec 01
2
Where's the optimiser gone? (part 5.a): missed tail calls, and more...
Compile the following functions with "-O3 -target amd64" (see <https://godbolt.org/z/5xqYhH>): __int128 div(__int128 foo, __int128 bar) { return foo / bar; } On the left the generated code; on the right the expected, properly optimised code: div: # @div push rbp | mov rbp, rsp | call __divti3 | jmp __divti3 pop rbp | ret | __i...
2020 May 21
2
on division of __int128 bit integer
Hi Team, I observer that division of __int128 bit is very heavy operation. It internally call a routine '__udivti3', which internally call ' __udivmodti4'. Due to it the overall performance is much much slower (almost 15 time slower than if I do it via a combination of 64-bit or microsoft '_udiv128'). Also what to kno...
2012 Feb 09
2
[PATCH] Remove even more CPP hackery
...ave stdint.h */ typedef unsigned __int64 uint64_t; typedef unsigned __int32 uint32_t; typedef unsigned __int16 uint16_t; typedef unsigned __int8 uint8_t; typedef __int64 int64_t; typedef __int32 int32_t; typedef __int16 int16_t; typedef __int8 int8_t; #if defined(_M_IX64) typedef unsigned __int128 uint128_t; typedef __int128 int128_t; #endif
2013 Jan 06
0
[LLVMdev] Failure building llvm/clang from source using binary clang package on Fedora 17
...using this binary clang I get essentially two different errors: 1) In file included from /home/fceldiener/vcs/llvm/include/llvm/Support/SwapByteOrder.h:20: /usr/bin/../lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/limits:1404:27: error: use of undeclared identifier '__int128'; did you mean '__int128_t'? struct numeric_limits<__int128> ^ /usr/bin/../lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/limits:1478:36: error: expected '>' struct numeric_limits<unsigned __int128>...
2018 Aug 10
2
[cfe-dev] Filesystem has Landed in Libc++
...m(std::basic_ostream<CharT, Traits>& os, const CharT* fmt, const file_time<Duration>& t) { using namespace std::chrono; const std::string abbrev("UTC"); constexpr std::chrono::seconds offset{0}; using D128 = duration<__int128, typename Duration::period>; return date::to_stream(os, fmt, file_clock::to_local(time_point_cast<D128>(t)), &abbrev, &offset); } template <class Duration, class CharT, class Traits, class Alloc = std::allocator<CharT>>...
2016 Feb 18
2
Question about __NSConstantString and __NSConstantString_tag
...ontains some declarations which were not there before. Using "clang -Xclang -ast-dump” on a c++ file, I get the following result: TranslationUnitDecl 0x8e41ab0 <<invalid sloc>> <invalid sloc> |-TypedefDecl 0x8e41fe8 <<invalid sloc>> <invalid sloc> implicit __int128_t '__int128' | `-BuiltinType 0x8e41d00 '__int128' |-TypedefDecl 0x8e42048 <<invalid sloc>> <invalid sloc> implicit __uint128_t 'unsigned __int128' | `-BuiltinType 0x8e41d20 'unsigned __int128' |-TypedefDecl 0x8e42378 <<invalid sloc>> &lt...
2012 Feb 09
1
[PATCH] Remove even more CPP hackery
...> __int64 uint64_t; typedef unsigned __int32 uint32_t; typedef >> unsigned __int16 uint16_t; typedef unsigned __int8 uint8_t; >> typedef __int64 int64_t; typedef __int32 int32_t; typedef __int16 >> int16_t; typedef __int8 int8_t; #if defined(_M_IX64) typedef >> unsigned __int128 uint128_t; typedef __int128 int128_t; #endif > > Also, I agree with the consensus that developers have to #include > such a file before using including FLAC/all.h This is because many > Windows developers (such as myself) are likely to already have a > stdint.h replacement defined s...
2018 Dec 30
3
[cfe-dev] Portable multiplication 64 x 64 -> 128 for int128 reimplementation
...t; >> What is very valuable for this implementation is access to MUL >> instruction on x86 which provides full 64 x 64 -> 128 bit multiplication. >> An equally useful on ARM would be UMULH instruction. >> >> Well, the way you can access this on clang / GCC is to use __int128 type >> or use inline assembly. MSVC provides an intrinsic for this instruction. >> This defeats the idea of portable int128 reimplementation and makes >> constexpr implementation of multiplication at least inconvenient. >> >> Maybe there is a hope for me in LLVM. Is t...
2012 May 24
1
[LLVMdev] vmkit: Getting Started
.../vmkit.llvm.org/get_started.html but all I get is -- snip -- In file included from /home/birdspider/vmkit-test/llvm/include/llvm/Support/SwapByteOrder.h:20: /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/limits:1404:27: error: use of undeclared identifier '__int128'; did you mean '__int128_t'? struct numeric_limits<__int128> ^ /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/limits:1478:36: error: expected '>' struct numeric_limits<unsigned __int128>...
2017 Oct 19
2
Why x86_64 divq is not used for 128-bit by 64-bit division?
Hi there, Let's have this C code: unsigned long div(unsigned __int128 n, unsigned long d) { return n / d; } I would assume that the divq is the perfect match here. But the compiler generates the code that calls the __udivti3 procedure which performs 128-bit by 128-bit division. Why is divq not used here? - Paweł -------------- next part -------------- An HTML atta...
2013 Jan 06
0
[LLVMdev] Building llvm from source with clang instead of gcc
Edward Diener <eldlistmailingz at tropicsoft.com> writes: >> Clang will attempt to use your installed system libraries, usually >> libstdc++ and glibc on a Linux distribution. We could probably maintain >> a libstdc++ compatibility table that says clang x.y is compatible with >> libstdc++ up to z.w. In the vast majority of cases, this just works if >> you
2018 Dec 29
2
Portable multiplication 64 x 64 -> 128 for int128 reimplementation
...I try to write a portable version of int128. What is very valuable for this implementation is access to MUL instruction on x86 which provides full 64 x 64 -> 128 bit multiplication. An equally useful on ARM would be UMULH instruction. Well, the way you can access this on clang / GCC is to use __int128 type or use inline assembly. MSVC provides an intrinsic for this instruction. This defeats the idea of portable int128 reimplementation and makes constexpr implementation of multiplication at least inconvenient. Maybe there is a hope for me in LLVM. Is there any pattern matcher that is producing M...
2009 Feb 19
3
[LLVMdev] Possible DAGCombiner or TargetData Bug
...th a greater alignment? In this case Align is 8 and OrigAlign is 16 because SVT.getTypeForMVT() is Type::VectorTyID (<2 x i64>) which has an ABI type of VECTOR_ALIGN. Hmm...why is the ABI alignment for VectorTyID 16? The ABI certainly doesn't guarantee it. It only guarantees it for __int128, __float128 and __m128. Lots of other types can map to <2 x i64>. Any opinions on this? -Dave
2012 Feb 09
0
[PATCH] Remove even more CPP hackery
...t64_t; > typedef unsigned __int32 uint32_t; > typedef unsigned __int16 uint16_t; > typedef unsigned __int8 uint8_t; > typedef __int64 int64_t; > typedef __int32 int32_t; > typedef __int16 int16_t; > typedef __int8 int8_t; > #if defined(_M_IX64) > typedef unsigned __int128 uint128_t; > typedef __int128 int128_t; > #endif Also, I agree with the consensus that developers have to #include such a file before using including FLAC/all.h This is because many Windows developers (such as myself) are likely to already have a stdint.h replacement defined somewhere in th...
2013 Jan 06
3
[LLVMdev] Building llvm from source with clang instead of gcc
On 1/6/2013 9:47 AM, Justin Holewinski wrote: > On Sat, Jan 5, 2013 at 11:08 PM, Edward Diener > <eldlistmailingz at tropicsoft.com <mailto:eldlistmailingz at tropicsoft.com>> > wrote: > > On 1/5/2013 8:01 PM, Justin Holewinski wrote: > > > On Sat, Jan 5, 2013 at 5:59 PM, Edward Diener > <eldlistmailingz at tropicsoft.__com >
2018 Jul 27
5
Filesystem has Landed in Libc++
Hi All, I recently committed <filesystem> to trunk. I wanted to bring attention to some quirks it currently has. First, it's been put in a separate library, libc++fs, for now. Users are responsible for linking the library when they use filesystem. Second, it should still not be considered ABI stable. Vendors should be aware of this before shipping it. Hopefully all the standard and
2015 Dec 01
2
Endianness for multi-word types
On Mon, Nov 30, 2015 at 7:24 PM Gao, Yunzhong < yunzhong_gao at playstation.sony.com> wrote: > According to > http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html, > "The high-order double-precision value (the one that comes first in > storage) must have the larger magnitude." > > So the order of the two doubles in your fp128 is not affected by the
2015 Oct 28
4
RFC: Supporting macros in LLVM debug info
...col:8 M1 undefined | `-MacroDecl 0x11c03a0 <line:5:9> col:9 M1 defined `-MacroDecl 0x11c03f8 <mainfile.c:3:9> col:9 M2 defined TranslationUnitDecl 0xd6c078 <<invalid sloc>> <invalid sloc> |-TypedefDecl 0xd6c330 <<invalid sloc>> <invalid sloc> implicit __int128_t '__int128' |-TypedefDecl 0xd6c370 <<invalid sloc>> <invalid sloc> implicit __uint128_t 'unsigned __int128' |-TypedefDecl 0xd6c3c8 <<invalid sloc>> <invalid sloc> implicit __builtin_ms_va_list 'char *' `-TypedefDecl 0xd6c590 <<inval...
2020 Sep 15
2
[Release-testers] [11.0.0 Release] Please help writing release notes!
...g it to handle more than two level loop nests > Improved Loop Unroll to be able to unroll more loops > Implemented an option to allow loop fusion to work on loops with different constant trip counts > > Codegen: > > POWER10 support > > Added PC Relative addressing > Added __int128 vector bool support > > Security enhancement via probe-stack attribute support to protect against stack clash > Floating point support enhancements > > Improved half precision and quad precision support, including GLIBC > constrained FP operation support for arithmetic/rounding/ma...
2012 Nov 02
1
[LLVMdev] linker warnings in Linking CXX executable Debug/AsanTest
..._main /sw/src/fink.build/llvm32-3.2-0/llvm-3.2/projects/compiler-unsigned short restrict/lib/asan/lit_tests/strncpy-overflow.cc:23:0 #4 0x7fff8bd827e0 in start (in libdyld.dylib) + 0 Shadow byte and word: 0x100021241609: 1 0x100021241608: 00 01 fb fb fb fb fb fb long double restrictunsigned __int128::* shadow bytes: 0x1000212415e8: fa fa fa fa fa fa fa fa 0x1000212415f0: fa fa fa fa fa fa fa fa 0x1000212415f8: 06 fb fb fb fb fb fb fb 0x100021241600: fa fa fa fa fa fa fa fa =>0x100021241608: 00 01 fb fb fb fb fb fb 0x100021241610: fa fa fa fa fa fa fa fa 0x100021241618: fa fa fa...