llvm-project/llvm
Simon Pilgrim 20ab6b875a [X86][SSE] Use MOVMSK for all_of/any_of reduction patterns
This is a first attempt at using the MOVMSK instructions to replace all_of/any_of reduction patterns (i.e. an and/or + shuffle chain).

So far this only matches patterns where we are reducing an all/none bits source vector (i.e. a comparison result) but we should be able to expand on this in conjunction with improvements to 'bool vector' handling both in the x86 backend as well as the vectorizers etc.

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

llvm-svn: 293880
2017-02-02 11:52:33 +00:00
..
bindings Fix go bindings after r289702 (hopefully, don't really know how to build 2016-12-15 06:54:29 +00:00
cmake Fix LLDB Android AArch64 GCC debug info build 2017-02-02 01:17:49 +00:00
docs MC: Introduce the ABS8 symbol modifier. 2017-01-31 18:28:44 +00:00
examples Use print() instead of dump() in code 2017-01-28 02:47:46 +00:00
include DIBuilder.h: Fix a typo. [-Wdocumentation] 2017-02-02 09:55:22 +00:00
lib [X86][SSE] Use MOVMSK for all_of/any_of reduction patterns 2017-02-02 11:52:33 +00:00
projects
resources
runtimes [CMake] Handle common options for runtimes build 2017-01-10 19:47:05 +00:00
test [X86][SSE] Use MOVMSK for all_of/any_of reduction patterns 2017-02-02 11:52:33 +00:00
tools Re-submit r293820: Return Error instead of bool from mergeTypeStreams(). 2017-02-02 00:47:10 +00:00
unittests Change debug-info-for-profiling from a TargetOption to a function attribute. 2017-02-01 22:45:09 +00:00
utils [opt-viewer] HTML-escape function names 2017-02-02 05:49:02 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore [AVR] Add the integrated testing tool to the .gitignore 2016-12-14 11:47:14 +00:00
CMakeLists.txt This addresses LLDB bug 31699, which was caused by LLVM using static linking on Windows. 2017-01-28 07:39:52 +00:00
CODE_OWNERS.TXT
CREDITS.TXT Revert revision 289721. 2016-12-14 21:58:42 +00:00
LICENSE.TXT Bump year to 2017 in LICENSE.txt 2017-01-12 18:02:42 +00:00
LLVMBuild.txt
README.txt Test commit. 2017-01-27 23:59:26 +00:00
RELEASE_TESTERS.TXT Update the release tester for MIPS. NFC. 2017-01-17 11:00:28 +00:00
configure
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.