]> granicus.if.org Git - llvm/commit
[SVE][Inline-Asm] Support for SVE asm operands
authorKerry McLaughlin <kerry.mclaughlin@arm.com>
Mon, 2 Sep 2019 16:12:31 +0000 (16:12 +0000)
committerKerry McLaughlin <kerry.mclaughlin@arm.com>
Mon, 2 Sep 2019 16:12:31 +0000 (16:12 +0000)
commit16bef0f9a051afa7b57f5fd01624086c35ec1e60
tree291ab8fcf4b7ef8d0b744e7f0fab3b222682f782
parent7cb23df7f92dd3c2b3a8fd3f650d6730296ae40f
[SVE][Inline-Asm] Support for SVE asm operands

Summary:
Adds the following inline asm constraints for SVE:
  - w: SVE vector register with full range, Z0 to Z31
  - x: Restricted to registers Z0 to Z15 inclusive.
  - y: Restricted to registers Z0 to Z7 inclusive.

This change also adds the "z" modifier to interpret a register as an SVE register.

Not all of the bitconvert patterns added by this patch are used, but they have been included here for completeness.

Reviewers: t.p.northover, sdesmalen, rovka, momchil.velikov, rengolin, cameron.mcinally, greened

Reviewed By: sdesmalen

Subscribers: javed.absar, tschuett, rkruppe, psnobl, cfe-commits, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D66302

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@370673 91177308-0d34-0410-b5e6-96231b3b80d8
docs/LangRef.rst
lib/Target/AArch64/AArch64AsmPrinter.cpp
lib/Target/AArch64/AArch64ISelLowering.cpp
lib/Target/AArch64/AArch64InstrInfo.cpp
lib/Target/AArch64/AArch64SVEInstrInfo.td
test/CodeGen/AArch64/aarch64-sve-asm-negative.ll [new file with mode: 0644]
test/CodeGen/AArch64/aarch64-sve-asm.ll [new file with mode: 0644]
test/CodeGen/AArch64/arm64-inline-asm.ll