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)
commit99eac7ee44cb0e1b4c3a2e79b70c6ffed0432393
treed05715ddad3399196b298afb31b69cecb2d9db00
parentc5ed819b02da049ecd434d8aa4ed2e220cba39e4
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).

llvm-svn: 192361
15 files changed:
llvm/include/llvm/CodeGen/ValueTypes.h
llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.h
llvm/lib/Target/AArch64/AArch64InstrFormats.td
llvm/lib/Target/AArch64/AArch64InstrNEON.td
llvm/lib/Target/AArch64/AArch64RegisterInfo.td
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp
llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h
llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
llvm/test/CodeGen/AArch64/neon-simd-ldst-multi-elem.ll [new file with mode: 0644]
llvm/test/MC/AArch64/neon-diagnostics.s
llvm/test/MC/AArch64/neon-simd-ldst-multi-elem.s [new file with mode: 0644]