[PATCH] D11146: [ValueTracking] Add support for floating-point minnum and maxnum

James Molloy james.molloy at arm.com
Fri Jul 17 00:53:27 PDT 2015


jmolloy updated this revision to Diff 29980.
jmolloy added a comment.

Hi Matt,

Agreed. Comments updated.

I've kept the conservative behaviour of bailing out when one input may be a signed zero (and nsz is not set) for the moment.

If you think it's worth being more aggressive in that case, We'll need to add another field to SelectPatternResult modelling the behavior with signed zeroes (ARM's minnum instruction would return -0.0; I have no idea what yours might do). But I suspect there aren't enough cases to justify this extra modelling, not at the moment anyway.

James


Repository:
  rL LLVM

http://reviews.llvm.org/D11146

Files:
  include/llvm/Analysis/ValueTracking.h
  lib/Analysis/ValueTracking.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  lib/Transforms/InstCombine/InstCombineCasts.cpp
  lib/Transforms/InstCombine/InstCombineSelect.cpp
  lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
  test/Transforms/InstCombine/minmax-fp.ll
  unittests/Analysis/CMakeLists.txt
  unittests/Analysis/ValueTrackingTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11146.29980.patch
Type: text/x-patch
Size: 27008 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150717/24bf5bac/attachment.bin>


More information about the llvm-commits mailing list