llvm-6502/test
Benjamin Kramer 1db071f0da Teach instcombine to transform
(X >s -1) ? C1 : C2 and (X <s  0) ? C2 : C1
into ((X >>s 31) & (C2 - C1)) + C1, avoiding the conditional.

This optimization could be extended to take non-const C1 and C2 but we better
stay conservative to avoid code size bloat for now.

for
int sel(int n) {
     return n >= 0 ? 60 : 100;
}

we now generate
  sarl  $31, %edi
  andl  $40, %edi
  leal  60(%rdi), %eax

instead of
  testl %edi, %edi
  movl  $60, %ecx
  movl  $100, %eax
  cmovnsl %ecx, %eax


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107866 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-08 11:39:10 +00:00
..
Analysis Remove interprocedural-basic-aa and associated code. The AliasAnalysis 2010-07-07 14:27:09 +00:00
Archive
Assembler
Bindings/Ocaml
Bitcode
BugPoint
CodeGen A slight reworking of the custom patterns for x86-64 tpoff codegen and 2010-07-08 07:36:46 +00:00
DebugInfo Add variables into a scope before constructing scope DIE otherwise variables won't be included DIE tree. 2010-06-30 00:11:08 +00:00
ExecutionEngine
Feature Implement the "linker_private_weak" linkage type. This will be used for 2010-07-01 21:55:59 +00:00
FrontendAda
FrontendC Looks like this test is missing an XFAIL line. 2010-06-29 13:18:50 +00:00
FrontendC++ Less incorrect handling of zero-length bitfields. Radars 7992077 and 8093043. 2010-06-23 00:31:14 +00:00
FrontendFortran
FrontendObjC
FrontendObjC++
Integer
lib
Linker
LLVMC Test for the -filelist fix. 2010-07-01 01:00:37 +00:00
MC Implement the major chunk of PR7195: support for 'callw' 2010-07-07 22:27:31 +00:00
Other Don't write a file named "&1". 2010-06-18 01:49:17 +00:00
Scripts
TableGen Fix a tblgen bug. 2010-06-23 19:50:39 +00:00
Transforms Teach instcombine to transform 2010-07-08 11:39:10 +00:00
Unit
Verifier
CMakeLists.txt
lit.cfg tests: Tweak lit.cfg to fix breakage with out-of-dir lookup. 2010-06-23 18:06:16 +00:00
lit.site.cfg.in
Makefile
Makefile.tests
site.exp.in
TestRunner.sh