[PATCH] D144454: Add builtin for llvm set rounding

xiongji90 via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 28 00:51:31 PST 2023


xiongji90 added a comment.

In D144454#4142253 <https://reviews.llvm.org/D144454#4142253>, @rjmccall wrote:

> New builtins should be documented in the user manual.
>
> There are standard pragmas for changing the rounding mode, right?  What's the interaction between the ability to set this dynamically with a builtin call and those pragmas?

Hi, @rjmccall 
Current status is LLVM has added llvm.get.rounding and llvm.set.rounding intrinsic and has also added "__builtin_flt_rounds" for llvm.get.rounding but there is no corresponding for llvm.set.rounding intrinisc. According to original patch to add llvm.set.rounding: https://reviews.llvm.org/D74729 and LLVM document for this intrinsic: https://llvm.org/docs/LangRef.html#id1506
The introduction of llvm.set.rounding intrinsic can provide same functionality as C library function "fesetround" and avoid unnecessary dependency on C library. Currently, this intrinsic can't benefit C/C++ developers since we don't have a corresponding builtin and we even can't add a C/C++ test for this intrinsic.
There may be more use scenario other then normal C/C++ program, for example, in heterogeneous computing, some other device such as GPU may support rounding mode setting in device code,  users can invoke __builtin_flt_rounds_set in their source code to use this functionality but they can't use C library functions since it unavailable in GPU or other device.

Thanks very much for the review!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D144454



More information about the cfe-commits mailing list