diff options
author | Sander de Smalen <sander.desmalen@arm.com> | 2018-07-30 15:42:46 +0000 |
---|---|---|
committer | Sander de Smalen <sander.desmalen@arm.com> | 2018-07-30 15:42:46 +0000 |
commit | 9b33309c87a1a621c4f1a8cb065613f0194eef73 (patch) | |
tree | c77bd1b96f75b6d1047dc08bd538b4154d5655fd /clang/lib/Basic/Module.cpp | |
parent | 403826ee0f3050ca9d508599216455ce5af4b7ad (diff) | |
download | llvm-9b33309c87a1a621c4f1a8cb065613f0194eef73.zip llvm-9b33309c87a1a621c4f1a8cb065613f0194eef73.tar.gz llvm-9b33309c87a1a621c4f1a8cb065613f0194eef73.tar.bz2 |
[AArch64][SVE] Asm: Add MOVPRFX instructions.
This patch adds predicated and unpredicated MOVPRFX instructions, which
can be prepended to SVE instructions that are destructive on their first
source operand, to make them a constructive operation, e.g.
add z1.s, p0/m, z1.s, z2.s <=> z1 = z1 + z2
can be made constructive:
movprfx z0, z1
add z0.s, p0/m, z0.s, z2.s <=> z0 = z1 + z2
The predicated MOVPRFX instruction can additionally be used to zero
inactive elements, e.g.
movprfx z0.s, p0/z, z1.s
add z0.s, p0/m, z0.s, z2.s
Not all instructions can be prefixed with the MOVPRFX instruction
which is why this patch also adds a mechanism to validate prefixed
instructions. The exact rules when a MOVPRFX applies is detailed in
the SVE supplement of the Architectural Reference Manual.
This is patch [1/2] in a series to add MOVPRFX instructions:
- Patch [1/2]: https://reviews.llvm.org/D49592
- Patch [2/2]: https://reviews.llvm.org/D49593
Reviewers: rengolin, SjoerdMeijer, samparker, fhahn, javed.absar
Reviewed By: SjoerdMeijer
Differential Revision: https://reviews.llvm.org/D49592
llvm-svn: 338258
Diffstat (limited to 'clang/lib/Basic/Module.cpp')
0 files changed, 0 insertions, 0 deletions