llvm-6502/lib/IR
Mehdi Amini 4c8f5afd99 InstCombine: fix fold "fcmp x, undef" to account for NaN
Summary:
See the two test cases.

; Can fold fcmp with undef on one side by choosing NaN for the undef

; Can fold fcmp with undef on both side
;   fcmp u_pred undef, undef -> true
;   fcmp o_pred undef, undef -> false
; because whatever you choose for the first undef
; you can choose NaN for the other undef

Reviewers: hfinkel, chandlerc, majnemer

Reviewed By: majnemer

Subscribers: majnemer, llvm-commits

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

From: Mehdi Amini <mehdi.amini@apple.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231626 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-09 03:20:25 +00:00
..
AsmWriter.cpp DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
AsmWriter.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
AttributeImpl.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
Attributes.cpp InstCombine: propagate deref via new addDereferenceableAttr 2015-02-14 19:37:54 +00:00
AutoUpgrade.cpp Remove 'llvm.x86.avx2.vbroadcasti128' intrinsic. 2015-03-04 00:13:25 +00:00
BasicBlock.cpp Remove getDataLayout() from Instruction/GlobalValue/BasicBlock/Function 2015-03-03 22:01:13 +00:00
CMakeLists.txt Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
Comdat.cpp
ConstantFold.cpp InstCombine: fix fold "fcmp x, undef" to account for NaN 2015-03-09 03:20:25 +00:00
ConstantFold.h
ConstantRange.cpp [ConstantRange] Teach multiply to be cleverer about signed ranges. 2015-03-06 15:50:47 +00:00
Constants.cpp Simplify code. NFC. 2015-03-02 11:57:04 +00:00
ConstantsContext.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
Core.cpp Fix invalid cast. 2015-02-23 21:51:06 +00:00
DataLayout.cpp Teach DataLayout to infer a plausible alignment for things even when nothing is specified by the user. 2015-03-08 21:53:59 +00:00
DebugInfo.cpp Fix DwarfExpression::AddMachineRegExpression so it doesn't read past the 2015-03-04 17:39:33 +00:00
DebugInfoMetadata.cpp IR: Change MDFile to directly store the filename/directory 2015-02-20 20:35:17 +00:00
DebugLoc.cpp
DiagnosticInfo.cpp Simplify expressions involving boolean constants with clang-tidy 2015-03-09 01:57:13 +00:00
DiagnosticPrinter.cpp
DIBuilder.cpp DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
Dominators.cpp
Function.cpp InstCombine: propagate deref via new addDereferenceableAttr 2015-02-14 19:37:54 +00:00
GCOV.cpp
Globals.cpp Remove getDataLayout() from Instruction/GlobalValue/BasicBlock/Function 2015-03-03 22:01:13 +00:00
GVMaterializer.cpp
InlineAsm.cpp Simplify expressions involving boolean constants with clang-tidy 2015-03-09 01:57:13 +00:00
Instruction.cpp Remove getDataLayout() from Instruction/GlobalValue/BasicBlock/Function 2015-03-03 22:01:13 +00:00
Instructions.cpp Instructions: Use delegated constructors to reduce duplication 2015-03-05 22:05:26 +00:00
IntrinsicInst.cpp
IRBuilder.cpp PlaceSafepoints: use IRBuilder helpers 2015-02-26 00:35:56 +00:00
IRPrintingPasses.cpp
LegacyPassManager.cpp
LLVMBuild.txt
LLVMContext.cpp
LLVMContextImpl.cpp
LLVMContextImpl.h IR: Fix MDType fields from unsigned to uint64_t 2015-02-19 23:56:07 +00:00
Makefile
Mangler.cpp
MDBuilder.cpp [IC] Turn non-null MD on pointer loads to range MD on integer loads. 2015-02-25 05:10:25 +00:00
Metadata.cpp IR: Add MDNode::replaceWithPermanent() 2015-02-10 19:13:46 +00:00
MetadataImpl.h Added missing header for the explicit dependency on MDNode. 2015-02-04 00:20:52 +00:00
MetadataTracking.cpp
Module.cpp Make DataLayout Non-Optional in the Module 2015-03-04 18:43:29 +00:00
module.modulemap
Pass.cpp
PassManager.cpp
PassRegistry.cpp Revert r231276 (including r231277): Add a lock() function in PassRegistry to speed up multi-thread synchronization. 2015-03-05 17:53:00 +00:00
Statepoint.cpp Add invoke related functionality into StatepointSite classes. 2015-02-19 11:02:11 +00:00
SymbolTableListTraitsImpl.h
Type.cpp [slp] Fix a nasty bug in the SLP vectorizer that Joerg pointed out. 2015-02-12 02:30:56 +00:00
TypeFinder.cpp
Use.cpp
UseListOrder.cpp
User.cpp
Value.cpp isDereferenceablePointer: look through gc.relocate calls 2015-02-09 21:08:03 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp
Verifier.cpp Simplify expressions involving boolean constants with clang-tidy 2015-03-09 01:57:13 +00:00