1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/test
Pierre Gousseau 1c56ea6dd5 [X86] Take advantage of the lzcnt instruction on btver2 architectures when ORing comparisons to zero.
This change adds transformations such as:
  zext(or(setcc(eq, (cmp x, 0)), setcc(eq, (cmp y, 0))))
  To:
  srl(or(ctlz(x), ctlz(y)), log2(bitsize(x))
This optimisation is beneficial on Jaguar architecture only, where lzcnt has a good reciprocal throughput.
Other architectures such as Intel's Haswell/Broadwell or AMD's Bulldozer/PileDriver do not benefit from it.
For this reason the change also adds a "HasFastLZCNT" feature which gets enabled for Jaguar.

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

llvm-svn: 284248
2016-10-14 16:41:38 +00:00
..
Analysis [ValueTracking] Fix crash in GetPointerBaseWithConstantOffset() 2016-10-07 14:23:29 +00:00
Assembler Fix IntegerType::MAX_INT_BITS value 2016-10-04 12:43:46 +00:00
Bindings
Bitcode Teach llvm::StripDebugInfo() about global variable !dbg attachments. 2016-10-10 17:53:33 +00:00
BugPoint Revert "Add -strip-nonlinetable-debuginfo capability" 2016-10-06 18:30:26 +00:00
CodeGen [X86] Take advantage of the lzcnt instruction on btver2 architectures when ORing comparisons to zero. 2016-10-14 16:41:38 +00:00
DebugInfo Truncate long names in type records 2016-10-13 17:33:22 +00:00
Demangle
Examples
ExecutionEngine
Feature
FileCheck
Instrumentation [InstrProf] Add support for dead_strip+live_support functionality 2016-10-11 21:48:16 +00:00
Integer
JitListener
LibDriver
Linker
LTO LTO: Use the correct mangler function in LTOCodeGenerator::applyScopeRestrictions(). 2016-10-12 20:12:19 +00:00
MC [mips] Fix aui/daui/dahi/dati for MIPSR6 2016-10-14 09:31:42 +00:00
Object [Support/ELF/AMDGPU] Add 32-bit lo/hi got and pc relative relocations 2016-10-14 04:03:49 +00:00
ObjectYAML
Other
SymbolRewriter
TableGen
ThinLTO/X86 [ThinLTO] Don't link module level assembly when importing 2016-10-12 18:39:29 +00:00
tools Fix test on non-x86 hosts 2016-10-11 16:32:37 +00:00
Transforms [InstCombine] use m_APInt to allow sub with constant folds for splat vectors 2016-10-14 16:31:54 +00:00
Unit
Verifier Verifier: Reject any unknown named MD nodes in the llvm.dbg namespace. 2016-10-05 22:15:37 +00:00
YAMLParser
.clang-format
CMakeLists.txt Add an llvm-opt-report tool to generate basic source-annotated optimization summaries 2016-10-05 22:10:35 +00:00
lit.cfg
lit.site.cfg.in
TestRunner.sh