llvm/test
Ahmed Bougacha 8b5527deef [X86] Combine (cmov (and/or (setcc) (setcc))) into (cmov (cmov)).
Fold and/or of setcc's to double CMOV:

(CMOV F, T, ((cc1 | cc2) != 0)) -> (CMOV (CMOV F, T, cc1), T, cc2)
(CMOV F, T, ((cc1 & cc2) != 0)) -> (CMOV (CMOV T, F, !cc1), F, !cc2)

When we can't use the CMOV instruction, it might increase branch
mispredicts.  When we can, or when there is no mispredict, this
improves throughput and reduces register pressure.

These can't be catched by generic combines, because the pattern can
appear when legalizing some instructions (such as fcmp une).

rdar://19767934
http://reviews.llvm.org/D7634


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231045 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-03 01:09:14 +00:00
..
Analysis [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
Assembler Teach DataLayout that alignments on basic types must be powers of two. 2015-03-02 09:35:03 +00:00
Bindings
Bitcode [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
BugPoint [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
CodeGen [X86] Combine (cmov (and/or (setcc) (setcc))) into (cmov (cmov)). 2015-03-03 01:09:14 +00:00
DebugInfo Revert r230979, should apply to all X86 ELF. 2015-03-02 18:50:18 +00:00
ExecutionEngine [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
Feature [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
FileCheck FileCheck: Add CHECK-SAME 2015-02-26 04:53:00 +00:00
Instrumentation [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
Integer [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
JitListener [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
Linker lit: Add 'cd' support to the internal shell and port some tests 2015-03-02 21:33:18 +00:00
LTO [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
MC AVX-512: Add assembly parser support for Rounding mode 2015-03-02 15:00:34 +00:00
Object lit: Add 'cd' support to the internal shell and port some tests 2015-03-02 21:33:18 +00:00
Other [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
SymbolRewriter
TableGen
tools lit: Add 'cd' support to the internal shell and port some tests 2015-03-02 21:33:18 +00:00
Transforms LowerBitSets: Use byte arrays instead of bit sets to represent in-memory bit sets. 2015-03-03 00:49:28 +00:00
Unit
Verifier Teach the verifier to enforce that the alignment argument of memory intrinsics must be a power of 2. 2015-03-02 09:35:06 +00:00
YAMLParser
.clang-format
CMakeLists.txt Back out two accidental changes that snuck in with r229245. Sorry these 2015-02-14 09:05:58 +00:00
lit.cfg Change SystemZ large tests to use the existing long_tests property 2015-03-02 19:34:11 +00:00
lit.site.cfg.in Remove log statements from config scripts. 2015-02-22 07:31:42 +00:00
Makefile Attempt to fix the builders. 2015-02-22 07:01:41 +00:00
Makefile.tests
TestRunner.sh