1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/lib/Transforms
David Sherwood dcd9c105f6 [SVE][LoopVectorize] Add support for extracting the last lane of a scalable vector
There are certain loops like this below:

  for (int i = 0; i < n; i++) {
    a[i] = b[i] + 1;
    *inv = a[i];
  }

that can only be vectorised if we are able to extract the last lane of the
vectorised form of 'a[i]'. For fixed width vectors this already works since
we know at compile time what the final lane is, however for scalable vectors
this is a different story. This patch adds support for extracting the last
lane from a scalable vector using a runtime determined lane value. I have
added support to VPIteration for runtime-determined lanes that still permit
the caching of values. I did this by introducing a new class called VPLane,
which describes the lane we're dealing with and provides interfaces to get
both the compile-time known lane and the runtime determined value. Whilst
doing this work I couldn't find any explicit tests for extracting the last
lane values of fixed width vectors so I added tests for both scalable and
fixed width vectors.

Differential Revision: https://reviews.llvm.org/D95139
2021-03-05 09:57:56 +00:00
..
AggressiveInstCombine [Transforms] Use llvm::append_range (NFC) 2021-01-20 21:35:54 -08:00
CFGuard
Coroutines Improve the debug info for coro-split .resume functions 2021-03-04 11:05:35 -08:00
Hello
InstCombine [Instcombiner]Improve emission of logical or/and reductions. 2021-03-04 08:01:02 -08:00
Instrumentation [dfsan] Propagate origin tracking at store 2021-03-04 23:34:44 +00:00
IPO [clang][OpenMP] Use OpenMPIRBuilder for workshare loops. 2021-03-04 22:52:59 -06:00
ObjCARC Move llvm/Analysis/ObjCARCUtil.h to IR to fix layering. 2021-03-04 16:14:53 -08:00
Scalar [ObjC][ARC] Use operand bundle 'clang.arc.attachedcall' instead of 2021-03-04 11:22:30 -08:00
Utils Move llvm/Analysis/ObjCARCUtil.h to IR to fix layering. 2021-03-04 16:14:53 -08:00
Vectorize [SVE][LoopVectorize] Add support for extracting the last lane of a scalable vector 2021-03-05 09:57:56 +00:00
CMakeLists.txt [NewPM][HelloWorld] Move HelloWorld to Utils 2021-02-03 12:59:40 -08:00