summaryrefslogtreecommitdiff
path: root/lib/Target/AArch64/AArch64InstrFormats.td
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@codeaurora.org>2013-10-31 19:28:44 +0000
committerChad Rosier <mcrosier@codeaurora.org>2013-10-31 19:28:44 +0000
commit1d28917dc39f38847f5c69c0a60cd1491430bdad (patch)
tree691afc4dbf1350521d322b4882b1bc71f4632fef /lib/Target/AArch64/AArch64InstrFormats.td
parent1d6d49fbb104781cc3e9da9dcc3e36b6cbcd38b6 (diff)
downloadllvm-1d28917dc39f38847f5c69c0a60cd1491430bdad.tar.gz
llvm-1d28917dc39f38847f5c69c0a60cd1491430bdad.tar.bz2
llvm-1d28917dc39f38847f5c69c0a60cd1491430bdad.tar.xz
[AArch64] Add support for NEON scalar shift immediate instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193790 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 7a41ce05a1..44dbc9d540 100644
--- a/lib/Target/AArch64/AArch64InstrFormats.td
+++ b/lib/Target/AArch64/AArch64InstrFormats.td
@@ -1234,5 +1234,24 @@ class NeonI_Scalar3Diff<bit u, bits<2> size, bits<4> opcode,
// Inherit Rd in 4-0
}
+// Format AdvSIMD scalar shift by immediate
+
+class NeonI_ScalarShiftImm<bit u, bits<5> opcode,
+ dag outs, dag ins, string asmstr,
+ list<dag> patterns, InstrItinClass itin>
+ : A64InstRdn<outs, ins, asmstr, patterns, itin> {
+ bits<4> Imm4;
+ bits<3> Imm3;
+ let Inst{31-30} = 0b01;
+ let Inst{29} = u;
+ let Inst{28-23} = 0b111110;
+ let Inst{22-19} = Imm4;
+ let Inst{18-16} = Imm3;
+ let Inst{15-11} = opcode;
+ let Inst{10} = 0b1;
+ // Inherit Rn in 9-5
+ // Inherit Rd in 4-0
+}
+
}