llvm-project/llvm/test
Craig Topper e6913ec340 [X86] Post process the DAG after isel to remove vector moves that were added to zero upper bits.
We previously avoided inserting these moves during isel in a few cases which is implemented using a whitelist of opcodes. But it's too difficult to generate a perfect list of opcodes to whitelist. Especially with AVX512F without AVX512VL using 512 bit vectors to implement some 128/256 bit operations. Since isel is done bottoms up, we'd have to check the VT and opcode and subtarget in order to determine whether an EXTRACT_SUBREG would be generated for some operations.

So instead of doing that, this patch adds a post processing step that detects when the moves are unnecesssary after isel. At that point any EXTRACT_SUBREGs would have already been created and appear in the DAG. So then we just need to ensure the input to the move isn't one.

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

llvm-svn: 327724
2018-03-16 17:13:42 +00:00
..
Analysis [AArch64] Implement getArithmeticReductionCost 2018-03-16 11:34:15 +00:00
Assembler Make the LLParser accept call instructions of variables in the program AS 2018-02-27 11:15:11 +00:00
Bindings [LLVM-C] Redo unnamed_address attribute bindings 2018-03-14 06:45:51 +00:00
Bitcode Refactor check for dllimport in the Verifier. 2018-03-06 17:19:23 +00:00
BugPoint [bugpoint] Report non-existent opt binary 2018-02-09 06:09:15 +00:00
CodeGen [X86] Post process the DAG after isel to remove vector moves that were added to zero upper bits. 2018-03-16 17:13:42 +00:00
DebugInfo [WebAssembly] Add DebugLoc information to WebAssembly block and loop. 2018-03-15 22:06:51 +00:00
Examples
ExecutionEngine [RuntimeDyld][MachO] Fix assertion in encodeAddend, add missing directive to 2018-03-01 01:44:33 +00:00
Feature Remove the LoopInstSimplify pass (-loop-instsimplify) 2018-03-12 20:49:42 +00:00
FileCheck
Instrumentation [asan] Fix a false positive ODR violation due to LTO ConstantMerge pass [llvm part, take 3] 2018-03-08 21:02:18 +00:00
Integer
JitListener
LTO Revert "[LTO] Support filtering by hotness threshold" 2018-03-08 01:13:10 +00:00
Linker [DebugInfo] Add remaining files to r325970 2018-02-23 23:13:18 +00:00
MC [AMDGPU][MC][GFX8][GFX9][DISASSEMBLER] Added "_e32" suffix to 32-bit VINTRP opcodes 2018-03-16 16:38:04 +00:00
Object [WebAssembly] Reorder reloc sections to come between symtab and name 2018-03-05 12:59:03 +00:00
ObjectYAML [WebAssembly] Disallow weak undefined globals in the object format 2018-03-09 16:30:44 +00:00
Other Recommit r325001: [CallSiteSplitting] Support splitting of blocks with instrs before call. 2018-02-14 13:59:12 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen TableGen: Add !ne, !le, !lt, !ge, and !gt comparisons 2018-03-14 11:00:57 +00:00
ThinLTO/X86 [ThinLTO] Clear dllimport when setting dso_local. 2018-03-13 15:24:51 +00:00
Transforms [LICM/mustexec] Extend first iteration must execute logic to fcmps 2018-03-16 16:33:49 +00:00
Unit
Verifier [DebugInfo] Add verifier for DICompositeType vector 2018-03-08 19:31:37 +00:00
YAMLParser
tools DWARFVerifier: Enhance validation of .debug_names hash tables 2018-03-16 10:02:16 +00:00
.clang-format
CMakeLists.txt [CMake] Add missing test dependency 2018-03-08 14:43:24 +00:00
TestRunner.sh
lit.cfg.py [CMake] Add missing test dependency 2018-03-08 14:43:24 +00:00
lit.site.cfg.py.in