From e54360be01d1eaccd5ef27f510634927aaa887a4 Mon Sep 17 00:00:00 2001 From: Kevin Qin Date: Tue, 17 Sep 2013 02:21:02 +0000 Subject: Implement 3 AArch64 neon instructions : umov smov ins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190839 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/AArch64/AArch64InstrFormats.td | 40 +++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'lib/Target/AArch64/AArch64InstrFormats.td') diff --git a/lib/Target/AArch64/AArch64InstrFormats.td b/lib/Target/AArch64/AArch64InstrFormats.td index dd35367..735670b 100644 --- a/lib/Target/AArch64/AArch64InstrFormats.td +++ b/lib/Target/AArch64/AArch64InstrFormats.td @@ -1089,5 +1089,45 @@ class NeonI_2VShiftImm opcode, // Inherit Rd in 4-0 } +// Format AdvSIMD duplicate and insert +class NeonI_copy imm4, + dag outs, dag ins, string asmstr, + list patterns, InstrItinClass itin> + : A64InstRdn +{ + bits<5> Imm5; + let Inst{31} = 0b0; + let Inst{30} = q; + let Inst{29} = op; + let Inst{28-21} = 0b01110000; + let Inst{20-16} = Imm5; + let Inst{15} = 0b0; + let Inst{14-11} = imm4; + let Inst{10} = 0b1; + + // Inherit Rn in 9-5 + // Inherit Rd in 4-0 +} +// Format AdvSIMD insert from element to vector +class NeonI_insert patterns, InstrItinClass itin> + : A64InstRdn +{ + bits<5> Imm5; + bits<4> Imm4; + let Inst{31} = 0b0; + let Inst{30} = q; + let Inst{29} = op; + let Inst{28-21} = 0b01110000; + let Inst{20-16} = Imm5; + let Inst{15} = 0b0; + let Inst{14-11} = Imm4; + let Inst{10} = 0b1; + + // Inherit Rn in 9-5 + // Inherit Rd in 4-0 +} + } -- cgit v1.1