1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 12:43:36 +01:00
llvm-mirror/lib
Cullen Rhodes 6682076a17 [IR] Introduce llvm.experimental.vector.splice intrinsic
This patch introduces a new intrinsic @llvm.experimental.vector.splice
that constructs a vector of the same type as the two input vectors,
based on a immediate where the sign of the immediate distinguishes two
variants. A positive immediate specifies an index into the first vector
and a negative immediate specifies the number of trailing elements to
extract from the first vector.

For example:

  @llvm.experimental.vector.splice(<A,B,C,D>, <E,F,G,H>, 1) ==> <B, C, D, E>  ; index
  @llvm.experimental.vector.splice(<A,B,C,D>, <E,F,G,H>, -3) ==> <B, C, D, E> ; trailing element count

These intrinsics support both fixed and scalable vectors, where the
former is lowered to a shufflevector to maintain existing behaviour,
although while marked as experimental the recommended way to express
this operation for fixed-width vectors is to use shufflevector. For
scalable vectors where it is not possible to express a shufflevector
mask for this operation, a new ISD node has been implemented.

This is one of the named shufflevector intrinsics proposed on the
mailing-list in the RFC at [1].

Patch by Paul Walker and Cullen Rhodes.

[1] https://lists.llvm.org/pipermail/llvm-dev/2020-November/146864.html

Reviewed By: sdesmalen

Differential Revision: https://reviews.llvm.org/D94708
2021-03-09 10:44:22 +00:00
..
Analysis [ValueTracking] Move matchSimpleRecurrence out of line 2021-03-09 00:04:47 +01:00
AsmParser [DebugInfo] Add DIArgList MD to store multple values in DbgVariableIntrinsics 2021-03-05 17:02:24 +00:00
BinaryFormat [WebAssembly] Add new relocation for location relative data 2021-03-08 11:34:10 -08:00
Bitcode [DebugInfo] Support DIArgList in DbgVariableIntrinsic 2021-03-08 14:36:13 +00:00
Bitstream [llvm] Use llvm::append_range (NFC) 2021-01-06 18:27:33 -08:00
CodeGen [IR] Introduce llvm.experimental.vector.splice intrinsic 2021-03-09 10:44:22 +00:00
DebugInfo Fix a crash in DWARFUnit::getInlinedChainForAddress in case of unexpected DWARF information. 2021-03-09 14:20:27 +04:00
Demangle [Demangle] Support demangling Swift calling convention in MS demangler. 2021-01-27 13:24:54 -08:00
DWARFLinker [llvm] Add assertions for the smart pointers with the possibility to be null in DWARFLinker::loadClangModule 2021-02-27 10:14:39 +03:00
ExecutionEngine [JITLink] Fix Wtype-limits gcc warning (NFC) 2021-03-05 15:28:01 +08:00
Extensions
FileCheck [FileCheck] Do not skip end of line in diagnostics 2021-03-03 08:20:39 +00:00
Frontend [clang][OpenMP] Use OpenMPIRBuilder for workshare loops. 2021-03-04 22:52:59 -06:00
Fuzzer
FuzzMutate [FuzzMutate] Add mutator to modify instruction flags. 2021-01-23 19:05:20 +00:00
InterfaceStub [elfabi] Fix a bug when .dynsym contains no non-local symbol 2021-02-19 11:36:53 -08:00
IR Move ObjCARCUtil.h back to llvm/Analysis 2021-03-08 16:35:24 -08:00
IRReader
LineEditor
Linker [llvm-link] fix IRMover returning wrong modified vector type 2021-02-22 11:29:42 +00:00
LTO [IRSymTab] Set FB_used on llvm.compiler.used symbols 2021-03-03 16:22:30 -08:00
MC [WebAssembly] Add new relocation for location relative data 2021-03-08 11:34:10 -08:00
MCA [MCA] Add support for in-order CPUs 2021-03-04 14:08:19 +03:00
Object [llvm-readelf] Support dumping the BB address map section with --bb-addr-map. 2021-03-08 16:20:11 -08:00
ObjectYAML Read NumBlocks as uint64_t. 2021-03-08 16:46:13 -08:00
Option [clang][cli] NFC: Remove ArgList infrastructure for recording queries 2021-02-25 13:53:24 +01:00
Passes [NPM] Add -enable-loopinterchange option to NPM 2021-03-07 02:39:28 +08:00
ProfileData [SampleFDO] Another fix to prevent repeated indirect call promotion in 2021-03-04 18:44:12 -08:00
Remarks Add intrinsics_gen as a dependency of libRemarks 2021-03-08 14:17:27 -08:00
Support [M68k](3/8) Skeleton and target description files 2021-03-08 12:30:57 -08:00
TableGen [TableGen] Use range-based for loops (NFC) 2021-03-06 15:52:55 -08:00
Target [IR] Introduce llvm.experimental.vector.splice intrinsic 2021-03-09 10:44:22 +00:00
Testing [clangd] Implement semanticTokens modifiers 2021-02-09 16:31:22 +01:00
TextAPI [lld-macho] Change loadReexport to handle the case where a TAPI re-exports to reference documents nested within other TBD. 2021-03-02 12:14:31 -05:00
ToolDrivers llvm-lib: Pull error printing code out of two functions 2021-01-26 19:13:30 -05:00
Transforms [CSSPGO] Always use callsite samples as callsite probe counts. 2021-03-08 22:52:36 -08:00
WindowsManifest
XRay
CMakeLists.txt