llvm-project/llvm/lib
Craig Topper b8b90ac1c5 [X86][DAGCombiner] Teach narrowShuffle to use concat_vectors instead of inserting into undef
Summary:
Concat_vectors is more canonical during early DAG combine. For example, its what's used by SelectionDAGBuilder when converting IR shuffles into SelectionDAG shuffles when element counts between inputs and mask don't match. We also have combines in DAGCombiner than can pull concat_vectors through a shuffle. See partitionShuffleOfConcats. So it seems like concat_vectors is a better operation to use here. I had to teach DAGCombiner's SimplifyVBinOp to also handle concat_vectors with undef. I haven't checked yet if we can remove the INSERT_SUBVECTOR version in there or not.

I didn't want to mess with the other caller of getShuffleHalfVectors that's used during shuffle lowering where insert_subvector probably is what we want to produce so I've enabled this via a boolean passed to the function.

Reviewers: spatel, RKSimon

Reviewed By: RKSimon

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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

llvm-svn: 369872
2019-08-25 17:59:49 +00:00
..
Analysis [TLI] Simplify code. NFCI. 2019-08-24 17:30:12 +00:00
AsmParser [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
BinaryFormat [BinaryFormat] Teach identify_magic about Tapi files. 2019-08-21 21:00:16 +00:00
Bitcode Do a sweep of symbol internalization. NFC. 2019-08-23 19:59:23 +00:00
Bitstream [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00
CodeGen [X86][DAGCombiner] Teach narrowShuffle to use concat_vectors instead of inserting into undef 2019-08-25 17:59:49 +00:00
DebugInfo Removing block comments from CodeView records in assembly files & related code cleanup 2019-08-25 01:09:11 +00:00
Demangle llvm-undname: Correctly demangle vararg parameters 2019-06-04 19:10:08 +00:00
ExecutionEngine [ORC] Remove query dependencies when symbols are resolved. 2019-08-23 20:37:32 +00:00
FuzzMutate [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Fuzzer
IR [Constant] Add 'isElementWiseEqual()' method 2019-08-24 06:49:51 +00:00
IRReader [IRReader] Expose getLazyIRModule 2019-02-11 22:01:13 +00:00
LTO Do a sweep of symbol internalization. NFC. 2019-08-23 19:59:23 +00:00
LineEditor [CMake] Delete redundant DEPENDS/LINK_LIBS from LineEditor/XRay 2019-06-22 01:50:21 +00:00
Linker Linker: Add support for GlobalIFunc. 2019-08-08 22:09:18 +00:00
MC [PowerPC][AIX] Adds support for writing the .data section in assembly files 2019-08-25 15:17:25 +00:00
MCA [MCA] consistently use MCPhysReg instead of unsigned as register type. NFCI 2019-08-22 13:32:17 +00:00
Object [Object] FIX: update PlatformKind name in TapiFile 2019-08-21 23:57:57 +00:00
ObjectYAML [yaml2obj] - Allow setting the symbol st_other field to any integer. 2019-08-23 09:31:07 +00:00
Option [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Passes [LoopPassManager + MemorySSA] Only enable use of MemorySSA for LPMs known to preserve it. 2019-08-21 17:00:57 +00:00
ProfileData [SampleFDO] Add ExtBinary format to support extension of binary profile. 2019-08-23 19:05:30 +00:00
Remarks Do a sweep of symbol internalization. NFC. 2019-08-23 19:59:23 +00:00
Support Do a sweep of symbol internalization. NFC. 2019-08-23 19:59:23 +00:00
TableGen [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Target [X86][DAGCombiner] Teach narrowShuffle to use concat_vectors instead of inserting into undef 2019-08-25 17:59:49 +00:00
Testing [Testing] Move clangd::Annotations to llvm testing support 2019-04-25 10:08:31 +00:00
TextAPI [TextAPI] Update reader to be supported by lib/Object 2019-08-16 15:30:48 +00:00
ToolDrivers [llvm-dlltool] Make sure to strip decorations from ExtName for renamed exports 2019-08-23 11:18:11 +00:00
Transforms [Constant] Add 'isElementWiseEqual()' method 2019-08-24 06:49:51 +00:00
WindowsManifest Fight a bit against global initializers. NFC. 2019-08-22 19:43:27 +00:00
XRay [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
CMakeLists.txt Fix build errors LLVM tests are disabled. 2019-07-11 22:08:35 +00:00
LLVMBuild.txt [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00