summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AArch64
diff options
context:
space:
mode:
authorSander de Smalen <sander.desmalen@arm.com>2018-07-04 14:05:33 +0000
committerSander de Smalen <sander.desmalen@arm.com>2018-07-04 14:05:33 +0000
commit1e4dc2e97d6cf6a8c13e90cf5cc9eec56a62e4f8 (patch)
tree73d9a817f646ed3156db1cc273380313a9ae1cf6 /llvm/lib/Target/AArch64
parentaef74139629dbece1f6b73969fb0601ec692e063 (diff)
downloadbcm5719-llvm-1e4dc2e97d6cf6a8c13e90cf5cc9eec56a62e4f8.tar.gz
bcm5719-llvm-1e4dc2e97d6cf6a8c13e90cf5cc9eec56a62e4f8.zip
[AArch64][SVE] Asm: Support for reversed subtract (SUBR) instruction.
This patch adds both a vector and an immediate form, e.g. - Vector form: subr z0.h, p0/m, z0.h, z1.h subtract active elements of z0 from z1, and store the result in z0. - Immediate form: subr z0.h, z0.h, #255 subtract elements of z0, and store the result in z0. llvm-svn: 336274
Diffstat (limited to 'llvm/lib/Target/AArch64')
-rw-r--r--llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td6
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td b/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
index 7269e1e1983..ae818716af4 100644
--- a/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
+++ b/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
@@ -31,8 +31,9 @@ let Predicates = [HasSVE] in {
def EOR_ZZZ : sve_int_bin_cons_log<0b10, "eor">;
def BIC_ZZZ : sve_int_bin_cons_log<0b11, "bic">;
- defm ADD_ZPmZ : sve_int_bin_pred_arit_0<0b000, "add">;
- defm SUB_ZPmZ : sve_int_bin_pred_arit_0<0b001, "sub">;
+ defm ADD_ZPmZ : sve_int_bin_pred_arit_0<0b000, "add">;
+ defm SUB_ZPmZ : sve_int_bin_pred_arit_0<0b001, "sub">;
+ defm SUBR_ZPmZ : sve_int_bin_pred_arit_0<0b011, "subr">;
defm ORR_ZPmZ : sve_int_bin_pred_log<0b000, "orr">;
defm EOR_ZPmZ : sve_int_bin_pred_log<0b001, "eor">;
@@ -41,6 +42,7 @@ let Predicates = [HasSVE] in {
defm ADD_ZI : sve_int_arith_imm0<0b000, "add">;
defm SUB_ZI : sve_int_arith_imm0<0b001, "sub">;
+ defm SUBR_ZI : sve_int_arith_imm0<0b011, "subr">;
defm SQADD_ZI : sve_int_arith_imm0<0b100, "sqadd">;
defm UQADD_ZI : sve_int_arith_imm0<0b101, "uqadd">;
defm SQSUB_ZI : sve_int_arith_imm0<0b110, "sqsub">;
OpenPOWER on IntegriCloud