aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/Frontend/CompilerInvocationTest.cpp
diff options
context:
space:
mode:
authorDavid Sherwood <david.sherwood@arm.com>2021-01-15 14:12:50 +0000
committerDavid Sherwood <david.sherwood@arm.com>2021-03-05 09:57:56 +0000
commitfec0a0adac544aeb43da758749c463ff5151ac1e (patch)
tree1e7dd4c9b6639aa705189ff5e6a62ff8bd463254 /clang/unittests/Frontend/CompilerInvocationTest.cpp
parentfcf75ae6ce20e3575b1464ce724619f38c43edd2 (diff)
downloadllvm-fec0a0adac544aeb43da758749c463ff5151ac1e.zip
llvm-fec0a0adac544aeb43da758749c463ff5151ac1e.tar.gz
llvm-fec0a0adac544aeb43da758749c463ff5151ac1e.tar.bz2
[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
Diffstat (limited to 'clang/unittests/Frontend/CompilerInvocationTest.cpp')
0 files changed, 0 insertions, 0 deletions