aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h
diff options
context:
space:
mode:
authorSimon Tatham <simon.tatham@arm.com>2019-10-07 17:05:48 +0100
committerSimon Tatham <simon.tatham@arm.com>2019-10-24 16:33:13 +0100
commitceeff95ca48f0c1460c8feb4eebced9a5cd12b58 (patch)
tree7ef32a5107b3696cea548285887514b9a4f023d3 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h
parent1b45297e013e1edae5028d844ca7cb591c79b07d (diff)
downloadllvm-ceeff95ca48f0c1460c8feb4eebced9a5cd12b58.zip
llvm-ceeff95ca48f0c1460c8feb4eebced9a5cd12b58.tar.gz
llvm-ceeff95ca48f0c1460c8feb4eebced9a5cd12b58.tar.bz2
[ARM] Add some sample IR MVE intrinsics with C++ isel.
This adds some initial example IR intrinsics for MVE instructions that deliver multiple output values, and hence, have to be instruction- selected by custom C++ code instead of Tablegen patterns. I've added the writeback gather load instructions (taking a vector of base addresses and a single common offset, returning a vector of loaded values and an updated vector of base addresses); one example from the long shift family (taking and returning a 64-bit value in two GPRs); and the VADC instruction (which propagates a carry bit from each vector-lane addition to the next, taking an input carry flag in FPSCR and outputting the final one in FPSCR as well). To support the VPT-predicated forms of these instructions, I've written some helper functions to add the cluster of MVE predicate operands to the end of a MachineInstr. `AddMVEPredicateToOps` is used when the instruction actually is predicated (so it takes a predicate mask argument), and `AddEmptyMVEPredicateToOps` is for when the instruction is unpredicated (so it fills in $noreg for the mask). Each one comes in a form suitable for `vpred_n`, and one for `vpred_r` which takes the extra 'inactive' parameter. For VADC, the representation of the carry flag in the IR intrinsic is a word intended to be moved directly to and from `FPSCR_nzcvqc`, i.e. with the carry flag in bit 29 of the word. (The user-facing ACLE intrinsic will want it to be in bit 0, but I'll do that on the clang side.) Reviewers: dmgreen, miyuki, ostannard Subscribers: kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68699
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h')
0 files changed, 0 insertions, 0 deletions