[PATCH] D31164: [IR] Add AllowContract to FastMathFlags

Sanjay Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 21 08:14:07 PDT 2017


spatel added inline comments.


================
Comment at: docs/LangRef.rst:2197-2200
+``contract``
+   Allow floating-point contraction (e.g. fusing a multiply followed by an
+   addition into a fused multiply-and-add).
+
----------------
mehdi_amini wrote:
> anemet wrote:
> > arsenm wrote:
> > > mehdi_amini wrote:
> > > > arsenm wrote:
> > > > > Should we also have an unsafe algebra that preserves signed zeros/nans etc?
> > > > @arsenm : isn't it the default when there is no `nsz` or `nnan` ?
> > > > 
> > > > 
> > > No, that is normal safe math. I mean unsafe algebraic transformations similar to contraction which will preserve nan/signed zeros/inf behavior but are still not safe.
> > Maybe but we may want that separate from contraction where the result is more exact.
> Do you have an example of such transformations?
If I'm understanding Matt's question, a mode that allows reassociation but is independent of the other relaxation bits could be handled by not having "fast" imply all of the other bits. This came up here:
http://lists.llvm.org/pipermail/llvm-dev/2016-November/107104.html

I think we need that mode, but it's separate from this set of patches.


https://reviews.llvm.org/D31164





More information about the llvm-commits mailing list