diff options
author | Sanjay Patel <spatel@rotateright.com> | 2019-01-25 15:37:42 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2019-01-25 15:37:42 +0000 |
commit | 21aa6ddc1413667516f7b5cc7a6013a9593dd404 (patch) | |
tree | 5beab445e0415b28a875f746bc4f3dae2aa9f64f /llvm/lib/CodeGen/MachineTraceMetrics.cpp | |
parent | b120127001339c4cd36b9e3d3dc9731c857fbce6 (diff) | |
download | llvm-21aa6ddc1413667516f7b5cc7a6013a9593dd404.zip llvm-21aa6ddc1413667516f7b5cc7a6013a9593dd404.tar.gz llvm-21aa6ddc1413667516f7b5cc7a6013a9593dd404.tar.bz2 |
[x86] narrow a shuffle that doesn't use or set any high elements
This isn't the final fix for our reduction/horizontal codegen, but it takes care
of a lot of the problems. After we narrow the shuffle, existing combines for
insert/extract and binops kick in, and we end up with cheaper 128-bit ops.
The avg and mul reduction tests show an existing shuffle lowering hole for
AVX2/AVX512. I think in its most minimal form this is:
https://bugs.llvm.org/show_bug.cgi?id=40434
...but we might need multiple fixes to get it right.
Differential Revision: https://reviews.llvm.org/D57156
llvm-svn: 352209
Diffstat (limited to 'llvm/lib/CodeGen/MachineTraceMetrics.cpp')
0 files changed, 0 insertions, 0 deletions