llvm-project/llvm/test
Sanjay Patel 70b36f193d [CGP] eliminate a sub instruction in memcmp expansion
As noted in D34071, there are some IR optimization opportunities that could be 
handled by normal IR passes if this expansion wasn't happening so late in CGP.

Regardless of that, it seems wasteful to knowingly produce suboptimal IR here, 
so I'm proposing this change:
  %s = sub i32 %x, %y
  %r = icmp ne %s, 0
    =>
  %r = icmp ne %x, %y

Changing the predicate to 'eq' mimics what InstCombine would do, so that's just
an efficiency improvement if we decide this expansion should happen sooner.

The fact that the PowerPC backend doesn't eliminate the 'subf.' might be 
something for PPC folks to investigate separately.

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

llvm-svn: 306471
2017-06-27 21:46:34 +00:00
..
Analysis [AVX2] [TTI CostModel] Add cost of interleaved loads/stores for AVX2 2017-06-25 08:26:25 +00:00
Assembler Align definition of DW_OP_plus with DWARF spec [3/3] 2017-06-14 13:14:38 +00:00
Bindings [LLVM-C] [OCaml] Expose Type::subtypes. 2017-06-05 11:49:52 +00:00
Bitcode Align definition of DW_OP_plus with DWARF spec [3/3] 2017-06-14 13:14:38 +00:00
BugPoint bugpoint: disabling symbolication of bugpoint-executed programs 2017-06-09 07:29:03 +00:00
CodeGen [CGP] eliminate a sub instruction in memcmp expansion 2017-06-27 21:46:34 +00:00
DebugInfo [llvm-pdbutil] Add a mode to `bytes` for dumping split debug chunks. 2017-06-26 17:22:36 +00:00
Examples
ExecutionEngine [RuntimeDyld, PowerPC] Fix check for external symbols when detecting reloction overflow 2017-05-23 14:51:18 +00:00
Feature Add constrained intrinsics for some libm-equivalent operations 2017-05-25 21:31:00 +00:00
FileCheck [FileCheck] Don't scan past the closing CHECK-DAG for CHECK-NOT inside CHECK-DAG 2017-06-07 12:06:45 +00:00
Instrumentation Fixing section name for Darwin platforms for sanitizer coverage 2017-06-14 23:40:25 +00:00
Integer
JitListener
LTO Apply summary-based dead stripping to regular LTO modules with summaries. 2017-06-15 17:26:13 +00:00
LibDriver [llvm-ar] Make llvm-lib behave more like the MSVC archiver 2017-06-12 19:45:35 +00:00
Linker [Linker] Remove llc usage from link-arm-and-thumb.ll test case. 2017-06-07 09:59:22 +00:00
MC [WebAssembly] Add data size and alignement to linking section 2017-06-27 20:27:59 +00:00
Object obj2yaml: Improve error reporting 2017-06-16 23:29:54 +00:00
ObjectYAML [WebAssembly] Add data size and alignement to linking section 2017-06-27 20:27:59 +00:00
Other [PM/ThinLTO] Port the ThinLTO pipeline (both components) to the new PM. 2017-06-01 11:39:39 +00:00
SymbolRewriter
TableGen [globalisel][tablegen] Add support for COPY_TO_REGCLASS. 2017-06-20 12:36:34 +00:00
ThinLTO/X86 [cfi] CFI-ICall for ThinLTO. 2017-06-16 00:18:29 +00:00
Transforms [CGP] eliminate a sub instruction in memcmp expansion 2017-06-27 21:46:34 +00:00
Unit [Lit] Fix to prevent creation of "%SystemDrive%" directory on Windows. 2017-05-08 08:55:38 +00:00
Verifier [Atomics] Rename and change prototype for atomic memcpy intrinsic 2017-06-16 14:43:59 +00:00
YAMLParser
tools [WebAssembly] Only run WebAssembly objdump tests if it is enabled as a target 2017-06-27 21:19:27 +00:00
.clang-format
CMakeLists.txt Rename llvm-pdbdump -> llvm-pdbutil. 2017-06-09 20:46:17 +00:00
TestRunner.sh
lit.cfg [llvm-pdbdump] Don't fail on PDBs with no ID stream. 2017-06-12 21:34:53 +00:00
lit.site.cfg.in Introduce the new feature "abi-breaking-checks" to satisfy -reverse-iterate in llvm/test/Transforms/Util/PredicateInfo/ 2017-06-07 00:22:52 +00:00