llvm-project/llvm/lib/IR
Nikita Popov 0c5d6ccbfc [InstCombine] Support ssub.sat canonicalization for non-splats
Extend ssub.sat(X, C) -> sadd.sat(X, -C) canonicalization to also
support non-splat vector constants. This is done by generalizing
the implementation of the isNotMinSignedValue() helper to return
true for constants that are non-splat, but don't contain any
signed min elements.

Differential Revision: https://reviews.llvm.org/D55011

llvm-svn: 348072
2018-12-01 10:58:34 +00:00
..
AsmWriter.cpp [DebugInfo] IR/Bitcode changes for DISubprogram flags. 2018-11-28 21:14:32 +00:00
AttributeImpl.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
Attributes.cpp [Inliner] Modify the merging of min-legal-vector-width attribute to better handle when the caller or callee don't have the attribute. 2018-11-29 07:27:38 +00:00
AttributesCompatFunc.td
AutoUpgrade.cpp [X86] Modify the the rdtscp intrinsic to return values instead of taking a pointer argument 2018-09-07 19:14:15 +00:00
BasicBlock.cpp [IR] Add hasNPredecessors, hasNPredecessorsOrMore to BasicBlock 2018-11-19 19:54:27 +00:00
CMakeLists.txt [New PM] Introducing PassInstrumentation framework 2018-09-20 17:08:45 +00:00
Comdat.cpp [LLVM-C] [bindings/go] Add C and Golang bindings for COMDAT 2018-03-14 18:33:53 +00:00
ConstantFold.cpp [ConstantFolding] improve folding of binops with vector undef operand 2018-08-20 18:19:02 +00:00
ConstantFold.h
ConstantRange.cpp [IR] Strip trailing whitespace. NFC 2018-07-03 12:39:52 +00:00
Constants.cpp [InstCombine] Support ssub.sat canonicalization for non-splats 2018-12-01 10:58:34 +00:00
ConstantsContext.h [IR] Add a dedicated FNeg IR Instruction 2018-11-13 18:15:47 +00:00
Core.cpp [LLVM-C] Fix Windows Build of Core 2018-11-06 01:54:12 +00:00
DIBuilder.cpp [DebugInfo] DISubprogram flags get their own flags word. NFC. 2018-11-19 18:29:28 +00:00
DataLayout.cpp [NFC] Make getPreferredAlignment honor section markings. 2018-08-29 23:46:26 +00:00
DebugInfo.cpp [DebugInfo] DISubprogram flags get their own flags word. NFC. 2018-11-19 18:29:28 +00:00
DebugInfoMetadata.cpp Comment tweak requested in code review. NFC 2018-11-29 21:13:51 +00:00
DebugLoc.cpp [IR] Add a boolean field in DILocation to know if a line must covered or not 2018-09-20 08:53:06 +00:00
DiagnosticHandler.cpp Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
DiagnosticInfo.cpp This change add's optimization remark in LoopVersioning LICM pass. 2018-01-23 09:47:28 +00:00
DiagnosticPrinter.cpp
DomTreeUpdater.cpp [Dominators] Refine the logic of recalculate() in the DomTreeUpdater 2018-08-03 06:51:35 +00:00
Dominators.cpp [TI removal] Make variables declared as `TerminatorInst` and initialized 2018-10-15 10:04:59 +00:00
Function.cpp Make Function::getInstructionCount const 2018-10-18 19:49:44 +00:00
GVMaterializer.cpp
Globals.cpp [IR] Allow increasing the alignment of dso-local globals. 2018-10-31 23:03:58 +00:00
IRBuilder.cpp [IRBuilder] Fixup CreateIntrinsic to allow specifying Types to Mangle. 2018-10-08 10:32:33 +00:00
IRPrintingPasses.cpp Print newline after banner for ModulePass 2018-11-14 10:05:28 +00:00
InlineAsm.cpp Remove trailing space 2018-07-30 19:41:25 +00:00
Instruction.cpp [IR] Add a dedicated FNeg IR Instruction 2018-11-13 18:15:47 +00:00
Instructions.cpp [TI removal] Leverage the fact that TerminatorInst is gone to create 2018-11-22 10:31:35 +00:00
IntrinsicInst.cpp [FPEnv] Add constrained CEIL/FLOOR/ROUND/TRUNC intrinsics 2018-11-05 15:59:49 +00:00
LLVMBuild.txt
LLVMContext.cpp allow custom OptBisect classes set to LLVMContext 2018-04-05 10:29:37 +00:00
LLVMContextImpl.cpp [LLVMContext] Detecting leaked instructions with metadata 2018-06-29 20:13:13 +00:00
LLVMContextImpl.h [DebugInfo] DISubprogram flags get their own flags word. NFC. 2018-11-19 18:29:28 +00:00
LegacyPassManager.cpp [New PM][PassInstrumentation] IR printing support for New Pass Manager 2018-09-24 16:08:15 +00:00
MDBuilder.cpp [Metadata] Replace a SmallVector with an array; NFC 2018-08-15 22:15:35 +00:00
Mangler.cpp [IR] Avoid the need to prefix MS C++ symbols with '\01' 2018-03-16 20:13:32 +00:00
Metadata.cpp Use llvm::copy. NFC 2018-11-17 01:44:25 +00:00
MetadataImpl.h
Module.cpp Pass code-model through Module IR to LTO which will use it. 2018-09-21 18:41:31 +00:00
ModuleSummaryIndex.cpp [ThinLTO] Fix comment. NFC 2018-11-19 14:19:37 +00:00
Operator.cpp Adding a width of the GEP index to the Data Layout. 2018-02-14 06:58:08 +00:00
OptBisect.cpp [NFC] OptPassGate extracted from OptBisect 2018-03-27 16:57:20 +00:00
Pass.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
PassInstrumentation.cpp [New PM] Introducing PassInstrumentation framework 2018-09-20 17:08:45 +00:00
PassManager.cpp
PassRegistry.cpp
PassTimingInfo.cpp [New PM][PassTiming] implement -time-passes for the new pass manager 2018-10-05 22:32:01 +00:00
ProfileSummary.cpp [ProfileSummary] Move a vector we're about to destroy anyway; NFC 2018-04-12 20:54:05 +00:00
SafepointIRVerifier.cpp Use llvm::any_of instead std::any_of. NFC 2018-10-31 00:31:06 +00:00
Statepoint.cpp
SymbolTableListTraitsImpl.h Remove trailing space 2018-07-30 19:41:25 +00:00
Type.cpp IR: Optimize StructType::get to perform one hash lookup instead of two, NFCI 2018-10-25 13:38:07 +00:00
TypeFinder.cpp Use ranged for loops in TypeFinder.cpp, NFC 2018-02-08 18:02:27 +00:00
Use.cpp
User.cpp Remove redundant includes from lib/IR. 2017-12-13 21:30:52 +00:00
Value.cpp [IR] Add hasNPredecessors, hasNPredecessorsOrMore to BasicBlock 2018-11-19 19:54:27 +00:00
ValueSymbolTable.cpp Remove trailing space 2018-07-30 19:41:25 +00:00
Verifier.cpp [DWARFv5] Verify all-or-nothing constraint on DIFile source 2018-11-30 19:13:38 +00:00