[PATCH] Add support for fast-math flags to the FCmp instruction.

James Molloy james at jamesmolloy.co.uk
Fri May 15 09:58:08 PDT 2015


Hi Michael,

Primarily, I'm upgrading InstCombine to recognize patterns for min and max
better. Part of that is adding matching for floating point min and max.

The fcmp/select pattern isn't exactly equivalent to a FMINNUM/FMAXNUM
operation in several cases involving NaNs and signed zeroes. There is
currently logic in the backends to match these late - I'm trying to move it
all to one place.

I can query the function, but that's really lame.

Cheers,

James

On Fri, 15 May 2015 at 17:54 Michael Ilseman <milseman at apple.com> wrote:

> What are you hoping to accomplish with the information from the flags?
> When I looked into this way back when, it wasn’t quite compelling, but I’m
> sure I missed a lot of the cases you’re seeing.
>
> > On May 15, 2015, at 6:58 AM, James Molloy <james.molloy at arm.com> wrote:
> >
> > Hi hfinkel, majnemer, chandlerc,
> >
> > FCmp behaves a lot like a floating-point binary operator in many ways,
> > and can benefit from fast-math information. Flags such as nsz and nnan
> > can affect if this fcmp (in combination with a select) can be treated
> > as a fminnum/fmaxnum operation.
> >
> > This adds backwards-compatible bitcode support, IR parsing and writing,
> > LangRef changes and IRBuilder changes. I'll need to audit InstSimplify
> > and InstCombine in a followup to find places where flags should be
> > copied.
> >
> > REPOSITORY
> >  rL LLVM
> >
> > http://reviews.llvm.org/D9793
> >
> > Files:
> >  docs/LangRef.rst
> >  include/llvm/IR/IRBuilder.h
> >  include/llvm/IR/Operator.h
> >  lib/AsmParser/LLParser.cpp
> >  lib/Bitcode/Reader/BitcodeReader.cpp
> >  lib/Bitcode/Writer/BitcodeWriter.cpp
> >  test/Bitcode/fcmp-fast.ll
> >  unittests/IR/IRBuilderTest.cpp
> >
> > EMAIL PREFERENCES
> >  http://reviews.llvm.org/settings/panel/emailpreferences/
> > <D9793.25866.patch>_______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150515/9cb99034/attachment.html>


More information about the llvm-commits mailing list