OSDN Git Service

[X86][AVX] EltsFromConsecutiveLoads - Add BROADCAST lowering support
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 19 Feb 2019 15:57:09 +0000 (15:57 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 19 Feb 2019 15:57:09 +0000 (15:57 +0000)
commitcd7aa81b8b2a2e7f74875799d33188d94dd053c4
tree6ebf213febbfa4cfc55e274cdf4073a5b4929310
parent0f417c50db8f9f09c7dedac30a4b56ad0550619b
[X86][AVX] EltsFromConsecutiveLoads - Add BROADCAST lowering support

This patch adds scalar/subvector BROADCAST handling to EltsFromConsecutiveLoads.

It mainly shows codegen changes to 32-bit code which failed to handle i64 loads, although 64-bit code is also using this new path to more efficiently combine to a broadcast load.

Differential Revision: https://reviews.llvm.org/D58053

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@354340 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/avx-vbroadcast.ll
test/CodeGen/X86/avx2-vbroadcast.ll
test/CodeGen/X86/avx512-intrinsics-upgrade.ll
test/CodeGen/X86/avx512dqvl-intrinsics-upgrade.ll
test/CodeGen/X86/avx512ifma-intrinsics-upgrade.ll
test/CodeGen/X86/avx512ifma-intrinsics.ll
test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll
test/CodeGen/X86/i64-mem-copy.ll
test/CodeGen/X86/insertelement-shuffle.ll
test/CodeGen/X86/vector-shuffle-combining-xop.ll