llvm-project/llvm
Kerry McLaughlin a31f4c52bf [SVE][CodeGen] Fix legalisation for scalable types
Summary:
This patch handles illegal scalable types when lowering IR operations,
addressing several places where the value of isScalableVector() is
ignored.

For types such as <vscale x 8 x i32>, this means splitting the
operations. In this example, we would split it into two
operations of type <vscale x 4 x i32> for the low and high halves.

In cases such as <vscale x 2 x i32>, the elements in the vector
will be promoted. In this case they will be promoted to
i64 (with a vector of type <vscale x 2 x i64>)

Reviewers: sdesmalen, efriedma, huntergr

Reviewed By: efriedma

Subscribers: david-arm, tschuett, hiraditya, rkruppe, psnobl, cfe-commits, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D78812
2020-05-07 10:01:31 +01:00
..
benchmarks
bindings Update go bindings for 2dea3f1298 2020-04-22 19:02:59 +02:00
cmake [cmake] restrict object library dependency generation to PUBLIC libraries 2020-05-04 14:12:42 -07:00
docs [dsymutil] Add option to print statistics about the .debug_info size. 2020-05-06 19:48:45 -07:00
examples [examples] Fix an incomplete comment. 2020-05-01 11:06:41 -07:00
include [dsymutil] Add option to print statistics about the .debug_info size. 2020-05-06 19:48:45 -07:00
lib [SVE][CodeGen] Fix legalisation for scalable types 2020-05-07 10:01:31 +01:00
projects
resources
runtimes
test [SVE][CodeGen] Fix legalisation for scalable types 2020-05-07 10:01:31 +01:00
tools [dsymutil] Add option to print statistics about the .debug_info size. 2020-05-06 19:48:45 -07:00
unittests SplitIndirectBrCriticalEdges: Fix Branch Probability update 2020-05-07 15:31:44 +07:00
utils [gn build] (manually) merge 07f8ca6ab1 2020-05-05 06:15:20 -04:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Revert "[lldb][cmake] Also use local submodule visibility on Darwin" 2020-05-05 15:23:34 +02: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.