[llvm-dev] Vector Shuffle chain lowering to X86 instructions simplification inconsistencies
Charith Mendis via llvm-dev
llvm-dev at lists.llvm.org
Fri Oct 28 14:25:56 PDT 2016
Hi all,
Attached herewith is a fairly simple LLVM file (shuffle.ll) with lots of
vector shuffles.
When I use llc with -O3 -mcpu=core-avx2 the first shuffle sequence
containing types of 128 wide gets reduced a single shuffle, where as the
second shuffle sequence containing types of 256 wide doesn't get reduced to
a single shuffle instruction in the resulting X86 code (Shuffle.s attached).
The second sequence is identical to first and is a rewidening of the
sequence for a higher vector length.
Can this be explained and where in the machine lowering passes does this
simplification happen?
Thanks
--
Kind regards,
Charith Mendis
Graduate Student,
CSAIL,
Massachusetts Institute of Technology
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161028/fb2f054e/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: shuffle.ll
Type: application/octet-stream
Size: 12448 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161028/fb2f054e/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: shuffle.s
Type: application/octet-stream
Size: 8733 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161028/fb2f054e/attachment-0001.obj>
More information about the llvm-dev
mailing list