aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/AArch64/AArch64InstrFormats.td
diff options
context:
space:
mode:
authorJiangning Liu <jiangning.liu@arm.com>2013-10-05 08:22:10 +0000
committerJiangning Liu <jiangning.liu@arm.com>2013-10-05 08:22:10 +0000
commitbeb6afa84397a27e48a9d72ac1d588bc6fcaf564 (patch)
treee4c47d31248bdeca916aa69eb24edf9cdcf6685a /lib/Target/AArch64/AArch64InstrFormats.td
parent936910d9293f7118056498c75c7bca79a7fc579c (diff)
downloadexternal_llvm-beb6afa84397a27e48a9d72ac1d588bc6fcaf564.zip
external_llvm-beb6afa84397a27e48a9d72ac1d588bc6fcaf564.tar.gz
external_llvm-beb6afa84397a27e48a9d72ac1d588bc6fcaf564.tar.bz2
Implement aarch64 neon instruction set AdvSIMD (Across).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192028 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/AArch64/AArch64InstrFormats.td')
-rw-r--r--lib/Target/AArch64/AArch64InstrFormats.td19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/Target/AArch64/AArch64InstrFormats.td b/lib/Target/AArch64/AArch64InstrFormats.td
index 9a7a0bb..fb87db6 100644
--- a/lib/Target/AArch64/AArch64InstrFormats.td
+++ b/lib/Target/AArch64/AArch64InstrFormats.td
@@ -1159,5 +1159,24 @@ class NeonI_ScalarPair<bit u, bits<2> size, bits<5> opcode,
// Inherit Rd in 4-0
}
+// Format AdvSIMD 2 vector across lanes
+class NeonI_2VAcross<bit q, bit u, bits<2> size, bits<5> opcode,
+ dag outs, dag ins, string asmstr,
+ list<dag> patterns, InstrItinClass itin>
+ : A64InstRdn<outs, ins, asmstr, patterns, itin>
+{
+ let Inst{31} = 0b0;
+ let Inst{30} = q;
+ let Inst{29} = u;
+ let Inst{28-24} = 0b01110;
+ let Inst{23-22} = size;
+ let Inst{21-17} = 0b11000;
+ let Inst{16-12} = opcode;
+ let Inst{11-10} = 0b10;
+
+ // Inherit Rn in 9-5
+ // Inherit Rd in 4-0
+}
+
}