llvm-project/llvm
Craig Topper 079924b0b7 Revert r363802, r363850, and r363856 "[TargetLowering] SimplifyDemandedBits..."
This reverts the following patches.
"[TargetLowering] SimplifyDemandedBits SIGN_EXTEND_VECTOR_INREG -> ANY/ZERO_EXTEND_VECTOR_INREG"
"[TargetLowering] SimplifyDemandedBits ZERO_EXTEND_VECTOR_INREG -> ANY_EXTEND_VECTOR_INREG"
"[TargetLowering] SimplifyDemandedBits - add ANY_EXTEND_VECTOR_INREG support"

We can end up with an any_extend_vector_inreg with a 256 bit result type
and a 128 bit result type. This is allowed by the ISD opcode, but the
generic operation legalizer is only able to expand cases where the
total vector width is the same.

The X86 backend creates these mismatched cases for zext_vec_inreg/sext_vec_inreg.
The SimplifyDemandedBits changes are allowing those nodes to become
aext_vec_inreg. For the zext/sext cases, the X86 backend has Custom
handling and never lets them get to the generic legalizer. We need to do the same
for aext_vec_inreg.

llvm-svn: 364264
2019-06-25 01:32:42 +00:00
..
benchmarks
bindings [bindings/go] Add debug information accessors 2019-06-24 16:23:17 +00:00
cmake Remove flag for no longer supported MSVC version 2019-06-24 18:47:53 +00:00
docs [docs][llvm-nm] Add missing options to documentation 2019-06-24 10:50:49 +00:00
examples
include DataExtractor: use decodeSLEB128 to implement getSLEB128 2019-06-24 23:45:18 +00:00
lib Revert r363802, r363850, and r363856 "[TargetLowering] SimplifyDemandedBits..." 2019-06-25 01:32:42 +00:00
projects
resources
runtimes Setup testing target dependencies for default runtimes 2019-06-11 00:25:57 +00:00
test Revert r363802, r363850, and r363856 "[TargetLowering] SimplifyDemandedBits..." 2019-06-25 01:32:42 +00:00
tools [llvm-objcopy][NFCI] Fix build failure with GCC 2019-06-25 01:08:21 +00:00
unittests GlobalISel: Remove unsigned variant of SrcOp 2019-06-24 16:16:12 +00:00
utils [PowerPC][UpdateTestChecks] powerpc- triple support 2019-06-24 18:00:34 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore gitignore: Ignore Qt Creator project configuration files. NFC 2019-06-12 08:28:31 +00:00
CMakeLists.txt build: extract LLVM distribution target handling 2019-06-14 18:28:57 +00:00
CODE_OWNERS.TXT
CREDITS.TXT
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.