[llvm-commits] [PATCH] Use vld1/vst1 for unaligned load/store
David Peixotto
dpeixott at codeaurora.org
Thu Sep 13 17:53:10 PDT 2012
This patch is the result of a discussion of unaligned vector loads/store on
llvmdev:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-September/053082.html.
The vld1 and vst1 variants in armv7 neon only require memory
alignment to the element size of the vector. Because of this
property, we can use a vld1.8 and vst1.8 to load/store f64 and v2f64
vectors to unaligned addresses on little-endian targets. This should
be faster than the target-independent codegen lowering that does an
aligned load/store to the stack and unaligned load/store of each
element of the vector.
This patch includes two changes:
1. Add new patterns for selecting vld1/vst1 for byte and half-word
aligned vector stores for v2f64 vectors.
2. Allow unaligned load/store using vld1/vst1 for little-endian
arm targets that support NEON. The vld1/vst1 instructions will
be used to load/store f64 and v2f64 types aligned along byte
and half-word memory accesses.
-- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted
by The Linux Foundation
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120913/67f6bf65/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Use-vld1-vst1-for-unaligned-load-store.patch
Type: application/octet-stream
Size: 17930 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120913/67f6bf65/attachment.obj>
More information about the llvm-commits
mailing list