[PATCH] [ARM] Don't break alignment when combining base updates into load/stores.

Ahmed Bougacha ahmed.bougacha at gmail.com
Mon Dec 22 08:45:38 PST 2014


r223862 caused a regression; quoting:
The selection logic for vld/vst doesn't care about less-than-standard alignment attributes.  In this case, the alignment of the loads is 1, but SelectVLD selected VLD1q64, because the result type was v2i64.  It was obvious from the testcases I added in that commit, but I didn't register the wrongness.

This patch introduces bitcasts if necessary, and changes the vld/vst type to one whose standard alignment matches the original load/store alignment.

http://reviews.llvm.org/D6759

Files:
  lib/Target/ARM/ARMISelLowering.cpp
  test/CodeGen/ARM/memcpy-inline.ll
  test/CodeGen/ARM/vector-load.ll
  test/CodeGen/ARM/vector-store.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D6759.17562.patch
Type: text/x-patch
Size: 14512 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141222/5dca12b4/attachment.bin>


More information about the llvm-commits mailing list