[all-commits] [llvm/llvm-project] 40f46c: [ARM] Add alignment checks for MVE VLDn
David Green via All-commits
all-commits at lists.llvm.org
Thu Jan 28 05:10:33 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 40f46cb0e4301b343d99771188e6bbad01c83c62
https://github.com/llvm/llvm-project/commit/40f46cb0e4301b343d99771188e6bbad01c83c62
Author: David Green <david.green at arm.com>
Date: 2021-01-28 (Thu, 28 Jan 2021)
Changed paths:
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/ARMISelLowering.h
M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
M llvm/test/CodeGen/Thumb2/mve-vld2.ll
M llvm/test/CodeGen/Thumb2/mve-vld4.ll
M llvm/test/CodeGen/Thumb2/mve-vst2.ll
M llvm/test/CodeGen/Thumb2/mve-vst4.ll
Log Message:
-----------
[ARM] Add alignment checks for MVE VLDn
The MVE VLD2/4 and VST2/4 instructions require the pointer to be aligned
to at least the size of the element type. This adds a check for that
into the ARM lowerInterleavedStore and lowerInterleavedLoad functions,
not creating the intrinsics if they are invalid for the alignment of
the load/store.
Unfortunately this is one of those bug fixes that does effect some
useful codegen, as we were able to sometimes do some nice lowering of
q15 types. But they can cause problem with low aligned pointers.
Differential Revision: https://reviews.llvm.org/D95319
More information about the All-commits
mailing list