OSDN Git Service

Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
authorHao Liu <Hao.Liu@arm.com>
Thu, 10 Oct 2013 15:01:24 +0000 (15:01 +0000)
committerHao Liu <Hao.Liu@arm.com>
Thu, 10 Oct 2013 15:01:24 +0000 (15:01 +0000)
commitd622bef31d11a5a6429fe7fad557c9b111e96f69
tree9717677e5d819174ae2e85d817161d320b55dc70
parent8ccf2b3c9e0f70220c88f3328ddebebd7866f92c
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@192352 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]