1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
Go to file
Sanjay Patel a2ab5a7248 [DAGCombiner] eliminate shuffle of insert element
I noticed this pattern in D38316 / D38388. We failed to combine a shuffle that is either 
repeating a scalar insertion at the same position in a vector or translated to a different 
element index.

Like the earlier patch, this could be an instcombine too, but since we opted to make this 
a DAG transform earlier, I've made this one a DAG patch too.

We do not need any legality checking because the new insert is identical to the existing 
insert except that it may have a different constant insertion operand.

The constant insertion test in test/CodeGen/X86/vector-shuffle-combining.ll was the 
motivation for D38756.

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

llvm-svn: 320050
2017-12-07 15:17:58 +00:00
bindings Update go bindings to use new functions from rL317135. 2017-11-02 10:22:26 +00:00
cmake [CMake] Use PRIVATE when linking LLVM fuzzers. 2017-12-06 23:32:46 +00:00
docs Update BitCodeFormat. 2017-12-07 01:38:20 +00:00
examples [CMake] Use PRIVATE in target_link_libraries for executables 2017-12-05 21:49:56 +00:00
include [FuzzMutate] Allow only sized pointers for the GEP instruction 2017-12-07 11:10:11 +00:00
lib [DAGCombiner] eliminate shuffle of insert element 2017-12-07 15:17:58 +00:00
projects Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
resources
runtimes [CMake][runtimes] Support monorepo layout with runtimes build 2017-11-27 22:31:11 +00:00
test [DAGCombiner] eliminate shuffle of insert element 2017-12-07 15:17:58 +00:00
tools [dsymutil] Add -verify option to run DWARF verifier after linking. 2017-12-07 11:17:19 +00:00
unittests [FuzzMutate] Allow only sized pointers for the GEP instruction 2017-12-07 11:10:11 +00:00
utils [TableGen] Give the option of tolerating duplicate register names 2017-12-07 09:51:55 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes [MC] Fix regression tests on Windows when git “core.autocrlf” is set to true. 2017-11-17 21:59:43 +00:00
.gitignore
CMakeLists.txt [llvm] Add stripped installation targets 2017-11-30 21:48:26 +00:00
CODE_OWNERS.TXT Update my email addresses, NFC. 2017-10-26 10:16:54 +00:00
configure
CREDITS.TXT Add myself to CREDITS.txt 2017-09-18 14:33:39 +00:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt Test commit access 2017-08-18 02:39:28 +00:00
RELEASE_TESTERS.TXT Update my email addresses, NFC. 2017-10-26 10:16:54 +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.