summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorCullen Rhodes <cullen.rhodes@arm.com>2019-05-21 08:59:00 +0000
committerCullen Rhodes <cullen.rhodes@arm.com>2019-05-21 08:59:00 +0000
commite798e8d9d26c6d366e5b0d514f7eb8e487130433 (patch)
tree48333860d21fe6579bfa1c11b7b1216557b4e340 /llvm/lib/Target
parentecf4c9e13cdcadf5eb74d0dcbe1f5b3d4ac5f73e (diff)
downloadbcm5719-llvm-e798e8d9d26c6d366e5b0d514f7eb8e487130433.tar.gz
bcm5719-llvm-e798e8d9d26c6d366e5b0d514f7eb8e487130433.zip
[AArch64][SVE2] Asm: add integer pairwise arithmetic instructions
Summary: Patch adds support for the following instructions: ADDP, SMAXP, UMAXP, SMINP, UMINP The specification can be found here: https://developer.arm.com/docs/ddi0602/latest Reviewed By: SjoerdMeijer Differential Revision: https://reviews.llvm.org/D62128 llvm-svn: 361229
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td b/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
index 8fc77b2b275..a51f968056d 100644
--- a/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
+++ b/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
@@ -1127,6 +1127,13 @@ let Predicates = [HasSVE2] in {
defm SADALP_ZPmZ : sve2_int_sadd_long_accum_pairwise<0, "sadalp">;
defm UADALP_ZPmZ : sve2_int_sadd_long_accum_pairwise<1, "uadalp">;
+ // SVE2 integer pairwise arithmetic
+ defm ADDP_ZPmZ : sve2_int_arith_pred<0b100011, "addp">;
+ defm SMAXP_ZPmZ : sve2_int_arith_pred<0b101001, "smaxp">;
+ defm UMAXP_ZPmZ : sve2_int_arith_pred<0b101011, "umaxp">;
+ defm SMINP_ZPmZ : sve2_int_arith_pred<0b101101, "sminp">;
+ defm UMINP_ZPmZ : sve2_int_arith_pred<0b101111, "uminp">;
+
// SVE2 integer multiply long
defm SQDMULLB_ZZZ : sve2_wide_int_arith_long<0b11000, "sqdmullb">;
defm SQDMULLT_ZZZ : sve2_wide_int_arith_long<0b11001, "sqdmullt">;
OpenPOWER on IntegriCloud