llvm-project/llvm/lib/Transforms/InstCombine
Sanjay Patel dba8b4c04d transform obscured FP sign bit ops into a fabs/fneg using TLI hook
This is effectively a revert of:
http://reviews.llvm.org/rL249702 - [InstCombine] transform masking off of an FP sign bit into a fabs() intrinsic call (PR24886)
and:
http://reviews.llvm.org/rL249701 - [ValueTracking] teach computeKnownBits that a fabs() clears sign bits
and a reimplementation as a DAG combine for targets that have IEEE754-compliant fabs/fneg instructions.

This is intended to resolve the objections raised on the dev list:
http://lists.llvm.org/pipermail/llvm-dev/2016-April/098154.html
and:
https://llvm.org/bugs/show_bug.cgi?id=24886#c4

In the interest of patch minimalism, I've only partly enabled AArch64. PowerPC, MIPS, x86 and others can enable later.

Differential Revision: http://reviews.llvm.org/D19391

llvm-svn: 271573
2016-06-02 20:01:37 +00:00
..
CMakeLists.txt Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
InstCombineAddSub.cpp Remove uses of builtin comma operator. 2016-02-18 22:09:30 +00:00
InstCombineAndOrXor.cpp transform obscured FP sign bit ops into a fabs/fneg using TLI hook 2016-06-02 20:01:37 +00:00
InstCombineCalls.cpp [X86] Remove SSE/AVX unaligned store intrinsics as clang no longer uses them. Auto upgrade to native unaligned store instructions. 2016-05-30 23:15:56 +00:00
InstCombineCasts.cpp [InstCombine] Fix assertion when bitcast is converted to gep 2016-05-23 19:23:17 +00:00
InstCombineCompares.cpp [InstCombine] add another test for wrong icmp constant (PR27792) 2016-05-17 20:20:40 +00:00
InstCombineInternal.h Clarify that we match BSwap in InstCombine and BitReverse in CGP. NFC. 2016-05-25 16:22:14 +00:00
InstCombineLoadStoreAlloca.cpp Reapply 267210 with fix for PR27490 2016-05-06 22:17:01 +00:00
InstCombineMulDivRem.cpp reduce indent; NFC 2016-05-22 17:08:52 +00:00
InstCombinePHI.cpp [InstCombine] Preserve fast math flags when combining PHIs 2016-04-22 11:21:36 +00:00
InstCombineSelect.cpp [InstCombine] Determine the result of a select based on a dominating condition. 2016-04-29 21:12:31 +00:00
InstCombineShifts.cpp add FIXME comment; NFC 2016-04-11 17:35:57 +00:00
InstCombineSimplifyDemanded.cpp [InstCombine] clean up; NFC 2016-04-29 20:54:56 +00:00
InstCombineVectorOps.cpp Fix an issue where fast math flags were dropped during scalarization. 2016-03-01 19:35:52 +00:00
InstructionCombining.cpp X86: permit using SjLj EH on x86 targets as an option 2016-05-31 01:48:07 +00:00
LLVMBuild.txt Update libdeps since TLI was moved from Target to Analysis in r226078. 2015-01-15 05:21:00 +00:00