[PATCH] merge vector stores into wider vector stores (PR21711)
Sanjay Patel
spatel at rotateright.com
Tue Jan 27 12:07:46 PST 2015
Hi qcolombet, hfinkel, andreadb,
This is, hopefully, the final patch needed to resolve PR21711 ( http://llvm.org/bugs/show_bug.cgi?id=21711 ).
The 'f3' test case in that report presents a situation where we have two 128-bit stores extracted from a 256-bit source vector. Instead of producing this:
vmovaps %xmm0, (%rdi)
vextractf128 $1, %ymm0, 16(%rdi)
This patch merges the 128-bit stores into a single 256-bit store:
vmovups %ymm0, (%rdi)
To minimize changes, this patch is limited to handling the single pattern of extract_subvectors feeding into stores, but I've included test cases for the other store merge patterns that could be handled similarly: build_vectors of constants and vector loads feeding into vector stores that could be widened.
http://reviews.llvm.org/D7208
Files:
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
test/CodeGen/X86/MergeConsecutiveStores.ll
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7208.18835.patch
Type: text/x-patch
Size: 11046 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150127/69030cf3/attachment.bin>
More information about the llvm-commits
mailing list