llvm-project/clang/utils
Simon Tatham 9e37892773 [ARM,MVE] Add intrinsics for vector get/set lane.
This adds the `vgetq_lane` and `vsetq_lane` families, to copy between
a scalar and a specified lane of a vector.

One of the new `vgetq_lane` intrinsics returns a `float16_t`, which
causes a compile error if `%clang_cc1` doesn't get the option
`-fallow-half-arguments-and-returns`. The driver passes that option to
cc1 already, but I've had to edit all the explicit cc1 command lines
in the existing MVE intrinsics tests.

A couple of fixes are included for the code I wrote up front in
MveEmitter to support lane-index immediates (and which nothing has
tested until now): the type was wrong (`uint32_t` instead of `int`)
and the range was off by one.

I've also added a method of bypassing the default promotion to `i32`
that is done by the MveEmitter code generation: it's sensible to
promote short scalars like `i16` to `i32` if they're going to be
passed to custom IR intrinsics representing a machine instruction
operating on GPRs, but not if they're going to be passed to standard
IR operations like `insertelement` which expect the exact type.

Reviewers: ostannard, MarkMurrayARM, dmgreen

Reviewed By: dmgreen

Subscribers: kristof.beyls, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D70188
2019-11-15 09:53:58 +00:00
..
ABITest Portable Python script across Python version 2018-12-18 16:07:37 +00:00
CIndex Portable Python script across Python version 2018-12-18 16:07:37 +00:00
ClangVisualizers Improve MSVC visualizations so the parser shows where we are in the code 2019-08-06 13:29:35 +00:00
TableGen [ARM,MVE] Add intrinsics for vector get/set lane. 2019-11-15 09:53:58 +00:00
TestUtils Portable Python script across Python version 2018-12-18 16:07:37 +00:00
VtableTest
analyzer [analyzer] exploded-graph-rewriter: Rename Environment to Expressions. 2019-10-18 20:15:41 +00:00
check_cfc Portable Python script across Python version 2019-01-03 14:27:05 +00:00
hmaptool [clang] [cmake] Add distribution install targets for remaining components 2019-10-04 05:43:20 +00:00
perf-training Revert "NFC: utils/perf-training: Python 3 compatibility for lit.cfg" 2019-07-24 22:42:50 +00:00
valgrind
CaptureCmd
ClangDataFormat.py
CmpDriver
FindSpecRefs
FuzzTest
bash-autocomplete.sh [bash-completion] Fix tab separation on macOS 2018-05-24 16:25:40 +00:00
builtin-defines.c This reverts commit 632a36bfcfc8273c1861f04ff6758d863c47c784. 2019-07-13 06:27:35 +00:00
clangdiag.py Portable Python script across Python version 2018-12-18 16:07:37 +00:00
creduce-clang-crash.py [creduce] Fixed a typo in the error message we're looking for. 2019-11-07 17:16:51 -08:00
find-unused-diagnostics.sh Unused diagnostics can occur in tblgen. 2018-01-25 15:57:22 +00:00
make-ast-dump-check.sh Add script to update OpenMP -ast-dump test expectations, and use it to 2019-06-02 04:00:38 +00:00
modfuzz.py Portable Python script across Python version 2018-12-18 16:07:37 +00:00
token-delta.py Portable Python script across Python version 2018-12-18 16:07:37 +00:00