Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
authorHao Liu <Hao.Liu@arm.com>
Thu, 10 Oct 2013 17:00:52 +0000 (17:00 +0000)
committerHao Liu <Hao.Liu@arm.com>
Thu, 10 Oct 2013 17:00:52 +0000 (17:00 +0000)
commit6a5a667517160ca1b557002a29d08868ae029451
treeab7bac232ae99d6b321cad35b0d0a5d8fbd39fcf
parent812ddcc50f8bc3ec6ce115863ff2263815906aaf
Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
Including following 14 instructions:
4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers.
ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4).
4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers.
st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192361 91177308-0d34-0410-b5e6-96231b3b80d8
15 files changed:
include/llvm/CodeGen/ValueTypes.h
lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
lib/Target/AArch64/AArch64ISelLowering.cpp
lib/Target/AArch64/AArch64ISelLowering.h
lib/Target/AArch64/AArch64InstrFormats.td
lib/Target/AArch64/AArch64InstrNEON.td
lib/Target/AArch64/AArch64RegisterInfo.td
lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp
lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h
lib/Target/AArch64/Utils/AArch64BaseInfo.h
test/CodeGen/AArch64/neon-simd-ldst-multi-elem.ll [new file with mode: 0644]
test/MC/AArch64/neon-diagnostics.s
test/MC/AArch64/neon-simd-ldst-multi-elem.s [new file with mode: 0644]