<div dir="ltr">Hi,<div><br></div><div>For some maybe dumb reasons I try to write a portable version of int128.</div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>Maybe there is a hope for me in LLVM. Is there any pattern matcher that is producing MUL instruction of bigger type?</div><div>If not, would it be good idea to teach LLVM about it?</div><div><br></div><div>Bests,</div><div>PaweĊ‚</div></div>