diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-07-22 13:58:44 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-07-22 13:58:44 +0000 |
commit | ea0d4f9962fbc1741a730ec74b655940ea15424b (patch) | |
tree | 47e47fd7351dc3615c9c33add8a694638cec173d /llvm/lib/Analysis/CFLGraph.h | |
parent | 22c9e931470fea2e25bef1f52128e54ec96da403 (diff) | |
download | bcm5719-llvm-ea0d4f9962fbc1741a730ec74b655940ea15424b.tar.gz bcm5719-llvm-ea0d4f9962fbc1741a730ec74b655940ea15424b.zip |
[X86][AVX] Added support for lowering to VBROADCASTF128/VBROADCASTI128 (reapplied)
As reported on PR26235, we don't currently make use of the VBROADCASTF128/VBROADCASTI128 instructions (or the AVX512 equivalents) to load+splat a 128-bit vector to both lanes of a 256-bit vector.
This patch enables lowering from subvector insertion/concatenation patterns and auto-upgrades the llvm.x86.avx.vbroadcastf128.pd.256 / llvm.x86.avx.vbroadcastf128.ps.256 intrinsics to match.
We could possibly investigate using VBROADCASTF128/VBROADCASTI128 to load repeated constants as well (similar to how we already do for scalar broadcasts).
Reapplied with fix for PR28657 - removed intrinsic definitions (clang companion patch to be be submitted shortly).
Differential Revision: https://reviews.llvm.org/D22460
llvm-svn: 276416
Diffstat (limited to 'llvm/lib/Analysis/CFLGraph.h')
0 files changed, 0 insertions, 0 deletions