llvm-project/llvm
Simon Pilgrim 44a9a71d2a [TTI] Fix uses of SK_ExtractSubvector shuffle costs (PR39368)
Correct costings of SK_ExtractSubvector requires the SubTy argument to indicate the type/size of the extracted subvector.

Unlike the rest of the shuffle kinds this means that the main Ty argument represents the source vector type not the destination!

I've done my best to fix a number of vectorizer uses:

SLP - the reduction epilogue costs should be using a SK_PermuteSingleSrc shuffle as these all occur at the hardware vector width - we're not extracting (illegal) subvector types. This is causing the cost model diffs as SK_ExtractSubvector costs are poorly handled and tend to just return 1 at the moment.

LV - I'm not clear on what the SK_ExtractSubvector should represents for recurrences - I've used a <1 x ?> subvector extraction as that seems to match the VF delta.

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

llvm-svn: 345617
2018-10-30 18:10:02 +00:00
..
benchmarks
bindings [TI removal] Remove TerminatorInst references from bindings. 2018-10-18 07:40:03 +00:00
cmake [MinGW] Enable large file for mingw-w64 2018-10-24 12:22:12 +00:00
docs Add docs+a script for building clang/LLVM with PGO 2018-10-26 20:56:03 +00:00
examples [BuildingAJIT] Update the Ch1 KaleidoscopeJIT class to expose errors to clients. 2018-10-18 00:51:38 +00:00
include [TTI] Fix uses of SK_ExtractSubvector shuffle costs (PR39368) 2018-10-30 18:10:02 +00:00
lib [TTI] Fix uses of SK_ExtractSubvector shuffle costs (PR39368) 2018-10-30 18:10:02 +00:00
projects
resources
runtimes
test [TTI] Fix uses of SK_ExtractSubvector shuffle costs (PR39368) 2018-10-30 18:10:02 +00:00
tools [llvm-objcopy] Fix --keep-global-symbol/--globalize-symbol for undefined symbols. 2018-10-30 16:23:38 +00:00
unittests [VFS] Add property 'fallthrough' that controls fallback to real file system. 2018-10-26 22:14:33 +00:00
utils [llvm-mca][UpdateTestChecks] Don't try to align blocks that have already been subject to alignment in update_mca_test_checks.py 2018-10-29 13:24:20 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore [git/svn] Ignore Visual Studio's CMakeSettings.json. 2018-10-29 14:51:02 +00:00
CMakeLists.txt [CMake] Fix a missing LLVM_ENABLE_IDE from r344555 2018-10-15 22:36:59 +00:00
CODE_OWNERS.TXT
CREDITS.TXT [NFC] Add periods to CREDITS.txt (testing git-llvm) 2018-10-26 06:57:02 +00:00
LICENSE.TXT
LLVMBuild.txt
README.txt Test commit. 2018-09-22 01:01:03 +00:00
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.