[PATCH] D109383: [RISCV] Disable use of i128 shift libcalls on RV32.

Kito Cheng via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 7 19:23:43 PDT 2021


kito-cheng added a comment.

In D109383#2987768 <https://reviews.llvm.org/D109383#2987768>, @efriedma wrote:

> On rv32, we pass the clang flag to enable i128 support when we build compiler-rt, so __ashlti3 is available.  Not sure about libgcc.

IIRC, RV32 require to enable i128 since the f128 routines need that, and f128 is necessary for RISC-V because long double is 128 bit floating point, however the libgcc part has technical issue on support soft i128 for 32 bits target, which is not only for RV32 but also for all other 32 bits target in GCC.

But compiler-rt didn't have such technical issue, so in theory `__int128` could be used for RV32 on clang, but we didn't turn it on by default is because we want to make sure the compatiblitiy between GCC, or in another word compatible with libgcc.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D109383/new/

https://reviews.llvm.org/D109383



More information about the llvm-commits mailing list