1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 12:33:33 +02:00
Go to file
Simon Pilgrim c31bcce147 [InstCombine] Fix SSE2/AVX2 vector logical shift by constant
This patch fixes the sse2/avx2 vector shift by constant instcombine call to correctly deal with the fact that the shift amount is formed from the entire lower 64-bit and not just the lowest element as it currently assumes.

e.g.

%1 = tail call <4 x i32> @llvm.x86.sse2.psrl.d(<4 x i32> %v, <4 x i32> <i32 15, i32 15, i32 15, i32 15>)

In this case, (V)PSRLD doesn't perform a lshr by 15 but in fact attempts to shift by 64424509455 ((15 << 32) | 15) - giving a zero result.

In addition, this review also recognizes shift-by-zero from a ConstantAggregateZero type (PR23821).

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

llvm-svn: 244341
2015-08-07 18:22:50 +00:00
autoconf We're actually -Wmissing-field-initializers clean thanks to the cmake 2015-08-07 16:44:47 +00:00
bindings Revert "Fix llvm-config to emit the linker flag for the combined shared object built by autoconfig/make instead of the individual components." 2015-08-05 20:03:26 +00:00
cmake Remove the configure and cmake checks for sys/wait.h 2015-08-04 06:29:58 +00:00
docs [LangRef] Cleanup some stray whitespace inconsistencies. 2015-08-06 22:56:48 +00:00
examples [PM/AA] Hoist the interface for BasicAA into a header file. 2015-08-06 07:33:15 +00:00
include NFC. 2015-08-07 18:04:17 +00:00
lib [InstCombine] Fix SSE2/AVX2 vector logical shift by constant 2015-08-07 18:22:50 +00:00
projects build: make libunwind a proper project 2015-04-25 01:47:39 +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 [InstCombine] Fix SSE2/AVX2 vector logical shift by constant 2015-08-07 18:22:50 +00:00
tools Add dynamic_table iterators back to ELF.h. 2015-08-07 15:25:20 +00:00
unittests Thread premissions through sys::fs::create_director{y|ies} 2015-08-06 21:04:55 +00:00
utils Fix memory leaks by avoiding extra manual dynamic allocation 2015-08-06 19:23:33 +00:00
.arcconfig Updated phabricator server. 2014-04-07 03:57:04 +00:00
.clang-format Test commit. 2014-03-02 13:08:46 +00:00
.clang-tidy Enable display of compiler diagnostics in clang-tidy by default. 2014-10-29 17:29:38 +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] Handle Dragonfly BSD like FreeBSD 2015-08-06 17:17:44 +00:00
CODE_OWNERS.TXT [WebAssembly] Initial WebAssembly backend 2015-06-29 23:51:55 +00:00
configure We're actually -Wmissing-field-initializers clean thanks to the cmake 2015-08-07 16:44:47 +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
LLVMBuild.txt
Makefile [configure/make] Propagate names of build host tools when making BuildTools 2014-03-25 21:45:41 +00:00
Makefile.common
Makefile.config.in We're actually -Wmissing-field-initializers clean thanks to the cmake 2015-08-07 16:44:47 +00:00
Makefile.rules We're actually -Wmissing-field-initializers clean thanks to the cmake 2015-08-07 16:44:47 +00:00
README.txt Revert test commit at revision 233535. 2015-03-30 12:39:03 +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're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.