[PATCH] merge vector stores into wider vector stores (PR21711)
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.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 11046 bytes
Desc: not available
More information about the llvm-commits