]> granicus.if.org Git - llvm/commit
[AArch64][SVE2] Asm: support SVE2 Narrowing Group
authorCullen Rhodes <cullen.rhodes@arm.com>
Fri, 24 May 2019 10:22:30 +0000 (10:22 +0000)
committerCullen Rhodes <cullen.rhodes@arm.com>
Fri, 24 May 2019 10:22:30 +0000 (10:22 +0000)
commitd5314754c6fbef98b2bea10615877136d79a8882
tree1db6f370fbfe865ce8f8c7ad9a2f288db9ca1608
parent7f2c0b78553300cc64607e78d6c77b1d5fbdfbb4
[AArch64][SVE2] Asm: support SVE2 Narrowing Group

Summary:
Patch adds support for the following instructions:

SVE2 bitwise shift right narrow:
    * SQSHRUNB, SQSHRUNT, SQRSHRUNB, SQRSHRUNT, SHRNB, SHRNT, RSHRNB, RSHRNT,
      SQSHRNB, SQSHRNT, SQRSHRNB, SQRSHRNT, UQSHRNB, UQSHRNT, UQRSHRNB,
      UQRSHRNT

SVE2 integer add/subtract narrow high part:
    * ADDHNB, ADDHNT, RADDHNB, RADDHNT, SUBHNB, SUBHNT, RSUBHNB, RSUBHNT

SVE2 saturating extract narrow:
    * SQXTNB, SQXTNT, UQXTNB, UQXTNT, SQXTUNB, SQXTUNT

The specification can be found here:
https://developer.arm.com/docs/ddi0602/latest

Reviewed By: SjoerdMeijer

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361624 91177308-0d34-0410-b5e6-96231b3b80d8
62 files changed:
lib/Target/AArch64/AArch64SVEInstrInfo.td
lib/Target/AArch64/SVEInstrFormats.td
test/MC/AArch64/SVE2/addhnb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/addhnb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/addhnt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/addhnt.s [new file with mode: 0644]
test/MC/AArch64/SVE2/raddhnb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/raddhnb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/raddhnt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/raddhnt.s [new file with mode: 0644]
test/MC/AArch64/SVE2/rshrnb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/rshrnb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/rshrnt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/rshrnt.s [new file with mode: 0644]
test/MC/AArch64/SVE2/rsubhnb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/rsubhnb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/rsubhnt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/rsubhnt.s [new file with mode: 0644]
test/MC/AArch64/SVE2/shrnb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/shrnb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/shrnt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/shrnt.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqrshrnb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqrshrnb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqrshrnt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqrshrnt.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqrshrunb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqrshrunb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqrshrunt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqrshrunt.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqshrnb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqshrnb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqshrnt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqshrnt.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqshrunb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqshrunb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqshrunt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqshrunt.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqxtnb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqxtnb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqxtnt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqxtnt.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqxtunb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqxtunb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqxtunt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/sqxtunt.s [new file with mode: 0644]
test/MC/AArch64/SVE2/subhnb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/subhnb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/subhnt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/subhnt.s [new file with mode: 0644]
test/MC/AArch64/SVE2/uqrshrnb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/uqrshrnb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/uqrshrnt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/uqrshrnt.s [new file with mode: 0644]
test/MC/AArch64/SVE2/uqshrnb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/uqshrnb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/uqshrnt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/uqshrnt.s [new file with mode: 0644]
test/MC/AArch64/SVE2/uqxtnb-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/uqxtnb.s [new file with mode: 0644]
test/MC/AArch64/SVE2/uqxtnt-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/SVE2/uqxtnt.s [new file with mode: 0644]