1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
Go to file
Bradley Smith f53921a516 [SelectionDAG] Implement PromoteIntRes_INSERT_SUBVECTOR
Inserting into a smaller-than-legal scalable vector would result in an
internal compiler error. For example, inserting a <vscale x 4 x i8> into
a <vscale x 8 x i8> (both illegal vector types for SVE) would cause a
crash.

This crash was happening because there was no code to promote (legalise)
the result of an INSERT_SUBVECTOR node.

This patch implements PromoteIntRes_INSERT_SUBVECTOR, which legalises
the ISD node. This is currently done by going through memory. This is
necessary because of the requirement that the SubVec parameter of the
INSERT_SUBVECTOR node must be smaller than the Vec parameter, which
means that INSERT_SUBVECTOR cannot always have a legal result/operand
types.

Co-Authored-by: Joe Ellis <joe.ellis@arm.com>

Differential Revision: https://reviews.llvm.org/D102766
2021-07-01 17:05:53 +01:00
benchmarks
bindings [SanitizeCoverage] Add support for NoSanitizeCoverage function attribute 2021-05-25 12:57:14 +02:00
cmake Fail gracefully if no inlining model is available to download. 2021-07-01 04:04:11 +00:00
docs [llvm-mca] Fix JSON output (PR50922) 2021-07-01 12:53:20 +01:00
examples [ORC] Rename TargetProcessControl to ExecutorProcessControl. NFC. 2021-07-01 13:31:12 +10:00
include [VP] Implementation of intrinsic and SDNode definitions for VP load, store, gather, scatter. 2021-07-01 13:34:44 +02:00
lib [SelectionDAG] Implement PromoteIntRes_INSERT_SUBVECTOR 2021-07-01 17:05:53 +01:00
projects [RFC][debuginfo-test] Rename debug-info lit tests for general purposes 2021-06-28 11:31:40 +01:00
resources
runtimes [runtimes] Fix umbrella component targets 2021-06-12 19:49:44 -07:00
test [SelectionDAG] Implement PromoteIntRes_INSERT_SUBVECTOR 2021-07-01 17:05:53 +01:00
tools [llvm-mca] Fix JSON output (PR50922) 2021-07-01 12:53:20 +01:00
unittests [VP] Implementation of intrinsic and SDNode definitions for VP load, store, gather, scatter. 2021-07-01 13:34:44 +02:00
utils [clangd] Unbreak mac build differently 0c96a92d8666b8 2021-07-01 10:51:27 -04:00
.clang-format Test commit. 2014-03-02 13:08:46 +00:00
.clang-tidy NFC: .clang-tidy: Inherit configs from parents to improve maintainability 2021-06-08 08:25:59 -07:00
.gitattributes Fix the "git modified" issue on the preserve-comments-crlf.s. 2019-09-10 12:17:49 +00:00
.gitignore Remove .gitignore entries not relevant in the monorepo. 2021-04-07 12:25:02 -07:00
CMakeLists.txt [RFC][debuginfo-test] Rename debug-info lit tests for general purposes 2021-06-28 11:31:40 +01:00
CODE_OWNERS.TXT [M68k][CODE_OWNERS](0/8) Add code owner for the M68k target 2021-03-08 12:30:56 -08:00
configure
CREDITS.TXT Update personal info in CREDITS.TXT 2021-04-11 19:25:02 +08:00
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
llvm.spec.in Update structured references to the license to the new license. 2019-01-19 11:30:51 +00:00
README.txt Test commit. 2020-03-14 18:08:26 -07:00
RELEASE_TESTERS.TXT Update the list of platforms & archs 2018-12-16 14:47:16 +00:00

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.