1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
Go to file
Simon Pilgrim b13c68898e [X86][AVX] Support bit-mask integer shuffles for 256-bit integer vectors
AVX1 doesn't support the shuffling of 256-bit integer vectors. For 32/64-bit elements we get around this by shuffling as float/double but for 8/16-bit elements (assuming they can't widen) we currently just split, shuffle as 128-bit vectors and concatenate the results back.

This patch adds the ability to lower using the bit-mask patterns before defaulting to the splitting behaviour. In some cases this ends up matching what AVX2 would do anyhow or what AVX1 does on the split vectors.

Part 1 of 2

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

llvm-svn: 261081
2016-02-17 10:37:49 +00:00
bindings Kill LLVMAddTargetData 2016-02-16 00:22:02 +00:00
cmake cmake: Simplify the iOS.cmake toolchain 2016-02-12 23:36:05 +00:00
docs Deprecate LLVMGetDataLayout and replace it by LLVMGetDataLayoutStr 2016-02-16 00:23:52 +00:00
examples Remove autoconf support 2016-01-26 21:29:08 +00:00
include Detecte vector reduction operations just before instruction selection. 2016-02-17 06:37:04 +00:00
lib [X86][AVX] Support bit-mask integer shuffles for 256-bit integer vectors 2016-02-17 10:37:49 +00:00
projects Remove autoconf support 2016-01-26 21:29:08 +00:00
resources In MSVC builds embed a VERSIONINFO resource in our exe and DLL files. 2015-06-12 15:58:29 +00:00
test [X86][AVX] Support bit-mask integer shuffles for 256-bit integer vectors 2016-02-17 10:37:49 +00:00
tools llvm-dwp: Support for type units when merging DWPs into larger DWPs 2016-02-17 07:00:24 +00:00
unittests [LCG] Construct an actual call graph with call-edge SCCs nested inside 2016-02-17 00:18:16 +00:00
utils [TableGen] Fix inconsistent spacing. NFC 2016-02-16 04:24:58 +00:00
.arcconfig Updated phabricator server. 2014-04-07 03:57:04 +00:00
.clang-format
.clang-tidy adding readability-identifier-naming to llvm clang-tidy configuration. 2015-12-08 17:44:51 +00:00
.gitignore Minor updates to gitignore so that symlinks are ignored in the projects dir. 2015-07-07 20:24:58 +00:00
CMakeLists.txt [CMake] Add a macro definition to detect if we are building GlobalISel: 2016-02-10 23:00:57 +00:00
CODE_OWNERS.TXT [docs] Remove references to autotools build. 2016-01-30 01:10:15 +00:00
configure Remove autoconf support 2016-01-26 21:29:08 +00:00
CREDITS.TXT [WebAssembly] Initial WebAssembly backend 2015-06-29 23:51:55 +00:00
LICENSE.TXT Update for a new year. 2015-03-12 01:25:29 +00:00
llvm.spec.in [Sparc] Implement i64 load/store support for 32-bit sparc. 2015-08-10 19:11:39 +00:00
LLVMBuild.txt
README.txt Revert previous test commit. 2016-01-04 19:13:29 +00:00

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.