llvm/test
Hal Finkel 0b19b561e0 [PowerPC] Handle cmp op promotion for SELECT[_CC] nodes in PPCTL::DAGCombineExtBoolTrunc
PPCTargetLowering::DAGCombineExtBoolTrunc contains logic to remove unwanted
truncations and extensions when dealing with nodes of the form:
  zext(binary-ops(binary-ops(trunc(x), trunc(y)), ...)

There was a FIXME in the implementation (now removed) regarding the fact that
the function would abort the transformations if any of the non-output operands
of a SELECT or SELECT_CC node would need to be promoted (because they were
also output operands, for example). As a result, we continued to generate
unnecessary zero-extends for code such as this:

  unsigned foo(unsigned a, unsigned b) {
    return  (a <= b) ? a : b;
  }

which would produce:

  cmplw 0, 3, 4
  isel 3, 4, 3, 1
  rldicl 3, 3, 0, 32
  blr

and now we produce:

  cmplw 0, 3, 4
  isel 3, 4, 3, 1
  blr

which is better in the obvious way.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224213 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-14 05:53:19 +00:00
..
Analysis BFI: Saturate when combining edges to a successor 2014-12-05 19:13:42 +00:00
Assembler AsmParser: Don't crash on an ill-formed MDNodeVector 2014-12-11 20:51:54 +00:00
Bindings [OCaml] Move Llvm.clone_module to its own Llvm_transform_utils module. 2014-12-01 19:50:39 +00:00
Bitcode Bitcode: Use unsigned char to record MDStrings 2014-12-11 23:34:30 +00:00
BugPoint
CodeGen [PowerPC] Handle cmp op promotion for SELECT[_CC] nodes in PPCTL::DAGCombineExtBoolTrunc 2014-12-14 05:53:19 +00:00
DebugInfo A fix for PR21176. 2014-12-12 05:11:47 +00:00
ExecutionEngine Small model and JIT generally don't go well with each other. 2014-11-25 17:14:22 +00:00
Feature Fix LLVMContext to match what MDKind names that the LL parser permits. Fixes PR21799! 2014-12-11 02:10:28 +00:00
FileCheck
Instrumentation [ASan] Change fake stack and local variables handling. 2014-12-11 21:53:03 +00:00
Integer
JitListener
Linker IR: Canonicalize metadata formatting, NFC 2014-12-11 06:32:29 +00:00
LTO Lazily link GlobalVariables and GlobalAliases. 2014-12-08 18:45:16 +00:00
MC [Hexagon] Adding double word add/min/minu/max/maxu instructions and tests. 2014-12-12 21:29:25 +00:00
Object Add missing test file 2014-12-04 09:20:13 +00:00
Other
SymbolRewriter
TableGen
tools Relax debug-map-parsing.test error message check for Windows 2014-12-12 18:52:07 +00:00
Transforms Reapply "[ARM] Combine base-updating/post-incrementing vector load/stores." 2014-12-13 23:22:12 +00:00
Unit
Verifier IR: Canonicalize metadata formatting, NFC 2014-12-11 06:32:29 +00:00
YAMLParser
.clang-format
CMakeLists.txt Revert r224149, llvm-dsymutil was already here. 2014-12-12 21:25:07 +00:00
lit.cfg Initial dsymutil tool commit. 2014-12-12 17:31:24 +00:00
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh