llvm-project/llvm
Craig Topper 30d3e9c395 [X86][CostModel] Adjust the costs of ZERO_EXTEND/SIGN_EXTEND with less than 128-bit inputs
Now that we legalize by widening, the element types here won't change. Previously these were modeled as the elements being widened and then the instruction might become an AND or SHL/ASHR pair. But now they'll become something like a ZERO_EXTEND_VECTOR_INREG/SIGN_EXTEND_VECTOR_INREG.

For AVX2, when the destination type is legal its clear the cost should be 1 since we have extend instructions that can produce 256 bit vectors from less than 128 bit vectors. I'm a little less sure about AVX1 costs, but I think the ones I changed were definitely too high, but they might still be too high.

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

llvm-svn: 368858
2019-08-14 14:52:39 +00:00
..
benchmarks
bindings
cmake Remove minimum toolchain soft-error 2019-08-14 04:30:51 +00:00
docs Remove minimum toolchain soft-error 2019-08-14 04:30:51 +00:00
examples [ORC] Fix SpeculativeJIT example code broken by r368707. 2019-08-13 22:44:54 +00:00
include Revert "raw_ostream: add operator<< overload for std::error_code" 2019-08-14 13:59:04 +00:00
lib [X86][CostModel] Adjust the costs of ZERO_EXTEND/SIGN_EXTEND with less than 128-bit inputs 2019-08-14 14:52:39 +00:00
projects [libc++] Take 2: Integrate the PSTL into libc++ 2019-08-05 18:29:14 +00:00
resources
runtimes
test [X86][CostModel] Adjust the costs of ZERO_EXTEND/SIGN_EXTEND with less than 128-bit inputs 2019-08-14 14:52:39 +00:00
tools Recommit r368812 "[llvm/Object] - Convert SectionRef::getName() to return Expected<>" 2019-08-14 11:10:11 +00:00
unittests Revert "raw_ostream: add operator<< overload for std::error_code" 2019-08-14 13:59:04 +00:00
utils gn build: Pre-merge https://reviews.llvm.org/D66195 2019-08-14 12:38:43 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Revert the test commit 2019-08-09 20:52:39 +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.