LLVM backend for 6502
Go to file
Simon Pilgrim f9df477221 [X86][SSE] Vectorized v4i32 non-uniform shifts.
While the v4i32 shl operation is already vectorized using a cvttps2dq/pmulld pattern, the lshr/ashr opeations are still scalarized.

This patch adds vectorization support for non-uniform v4i32 shift operations - it splats constant shift amounts to allow them to use the immediate sse shift instructions, or extracts/zero-extends non-constant shift amounts. The individual results are then blended together.

Differential Revision: http://reviews.llvm.org/D11063

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241989 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-12 11:15:19 +00:00
autoconf [Support] Lazy load of dbghlp.dll on Windows 2015-07-02 14:34:57 +00:00
bindings Remove getRelocationAddress. 2015-07-06 14:55:37 +00:00
cmake Revert r241621, "[CMake] Cleanup tools/CMakeLists.txt to take advantage of the auto-registration that was already partially working." 2015-07-08 02:35:43 +00:00
docs Add argmemonly attribute. 2015-07-11 10:30:36 +00:00
examples
include Revert "[ExecutionEngine] Use std::function rather than a function pointer for the LazyFunctionCreator." 2015-07-11 13:42:48 +00:00
lib [X86][SSE] Vectorized v4i32 non-uniform shifts. 2015-07-12 11:15:19 +00:00
projects
resources
test [X86][SSE] Vectorized v4i32 non-uniform shifts. 2015-07-12 11:15:19 +00:00
tools Fix llvm-config to emit the linker flag for the combined shared object built by autoconfig/make instead of the individual components. 2015-07-10 20:24:17 +00:00
unittests Revert "[ExecutionEngine] Use std::function rather than a function pointer for the LazyFunctionCreator." 2015-07-11 13:42:48 +00:00
utils MC: Remove MCSubtargetInfo() default constructor 2015-07-10 22:43:42 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore Minor updates to gitignore so that symlinks are ignored in the projects dir. 2015-07-07 20:24:58 +00:00
CMakeLists.txt
CODE_OWNERS.TXT
configure Disallow in-source builds (as we already do for the cmake build). 2015-07-01 18:09:21 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in Disallow in-source builds (as we already do for the cmake build). 2015-07-01 18:09:21 +00:00
Makefile.rules
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're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.