[llvm-dev] llvm.rint specification

Zakharin, Vyacheslav P via llvm-dev llvm-dev at lists.llvm.org
Wed Nov 14 10:52:28 PST 2018


Hi Cameron,

Thank you for the comments, but I am confused even more now ☺

> llvm.rint won't honor the FPEnv in all cases. It falls under the default FPEnv
The default FPEnv section specifies round-to-nearest rounding mode.  In this case, how is it correct to map rint() user call to llvm.rint intrinsic call?  If this is just a temporary inconsistency, and the long term solution is to map rint() user call to llvm.experimental.constrained.rint intrinsic call, I am OK with this.  If it is not, then I must be missing something.

I am sorry if this has been described somewhere in the RFC for the constrained FP intrinsics, which I haven’t read yet.

Thanks,
Slava

From: Cameron McInally [mailto:cameron.mcinally at nyu.edu]
Sent: Wednesday, November 14, 2018 9:35 AM
To: Zakharin, Vyacheslav P <vyacheslav.p.zakharin at intel.com>
Cc: LLVM Developers Mailing List <llvm-dev at lists.llvm.org>
Subject: Re: [llvm-dev] llvm.rint specification


On Tue, Nov 13, 2018 at 7:56 PM Zakharin, Vyacheslav P via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
Hello,

I believe llvm.rint description in LangRef is not quite complete.

Llvm seems to map math.h:rint() call to llvm.rint intrinsic, and the LangRef says that the result of llvm.rint matches the result of libm rint() call.  Next, LangRef states that llvm.rint “returns the operand rounded to the nearest integer.”

Shouldn’t the specification also say that “the actual rounding mode is determined by the runtime floating-point environment”, just like it does for llvm.experimental.constrained.rint?  That would match the actual libm rint() behavior…

Hi Salva,

llvm.rint won't honor the FPEnv in all cases. It falls under the default FPEnv, as specified here:

https://llvm.org/docs/LangRef.html#floating-point-environment

That said, I agree that the LangRef copy for RINT (and probably other intrinsics) is sloppy and needs to be cleaned up. Please bear with us. The constrained FP intrinsic project is a work in progress.

-Cameron
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181114/2c72577b/attachment-0001.html>


More information about the llvm-dev mailing list