diff options
author | Kevin Qin <Kevin.Qin@arm.com> | 2013-09-17 02:21:02 +0000 |
---|---|---|
committer | Kevin Qin <Kevin.Qin@arm.com> | 2013-09-17 02:21:02 +0000 |
commit | e54360be01d1eaccd5ef27f510634927aaa887a4 (patch) | |
tree | de8361fd5b80233388e09af2757d380623f52f59 /lib/Target/AArch64/AArch64InstrFormats.td | |
parent | 24e1b39a24ca7b8866a636498173f3959b561058 (diff) | |
download | external_llvm-e54360be01d1eaccd5ef27f510634927aaa887a4.zip external_llvm-e54360be01d1eaccd5ef27f510634927aaa887a4.tar.gz external_llvm-e54360be01d1eaccd5ef27f510634927aaa887a4.tar.bz2 |
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
Diffstat (limited to 'lib/Target/AArch64/AArch64InstrFormats.td')
-rw-r--r-- | lib/Target/AArch64/AArch64InstrFormats.td | 40 |
1 files changed, 40 insertions, 0 deletions
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<bit q, bit u, bits<5> opcode, // Inherit Rd in 4-0 } +// Format AdvSIMD duplicate and insert +class NeonI_copy<bit q, bit op, bits<4> imm4, + dag outs, dag ins, string asmstr, + list<dag> patterns, InstrItinClass itin> + : A64InstRdn<outs, ins, asmstr, patterns, itin> +{ + 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<bit q, bit op, + dag outs, dag ins, string asmstr, + list<dag> patterns, InstrItinClass itin> + : A64InstRdn<outs, ins, asmstr, patterns, itin> +{ + 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 +} + } |