llvm-project/llvm
Roman Lebedev 9bece444dd [InstCombine] Recommit: Shift amount reassociation: shl-trunc-shl pattern
This was initially committed in r368059 but got reverted in r368084
because there was a faulty logic in how the shift amounts type mismatch
was being handled (it simply wasn't).

I've added an explicit bailout before we SimplifyAddInst() - i don't think
it's designed in general to handle differently-typed values, even though
the actual problem only comes from ConstantExpr's.

I have also changed the common type deduction, to not just blindly
look past zext, but try to do that so that in the end types match.

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

llvm-svn: 368141
2019-08-07 09:41:50 +00:00
..
benchmarks
bindings
cmake Append an executable suffix to the toolchain tool paths on Windows platform. 2019-08-07 03:19:40 +00:00
docs Reverts commit r368117, r368115 and r368112 2019-08-07 05:15:34 +00:00
examples Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
include [InstCombine] Recommit: Shift amount reassociation: shl-trunc-shl pattern 2019-08-07 09:41:50 +00:00
lib [InstCombine] Recommit: Shift amount reassociation: shl-trunc-shl pattern 2019-08-07 09:41:50 +00:00
projects [libc++] Take 2: Integrate the PSTL into libc++ 2019-08-05 18:29:14 +00:00
resources
runtimes
test [InstCombine] Recommit: Shift amount reassociation: shl-trunc-shl pattern 2019-08-07 09:41:50 +00:00
tools [llvm-readelf] --notes: move 'Data size' column left by 1 2019-08-07 09:13:11 +00:00
unittests [yaml2obj] Move core yaml2obj code into lib and include for use in unit tests 2019-08-07 02:44:49 +00:00
utils [unittests] Mark private gmock headers with IWYU pragmas. NFC 2019-08-07 08:45:38 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [build] Add the ability to create a symlink for lipo 2019-07-31 16:46:57 +00:00
CODE_OWNERS.TXT
CREDITS.TXT Update email address. 2019-07-17 07:02:02 +00:00
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

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.