1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/lib
Chandler Carruth 6ffdf68855 [x86] Teach the new vector shuffle lowering to be even more aggressive
in exposing the scalar value to the broadcast DAG fragment so that we
can catch even reloads and fold them into the broadcast.

This is somewhat magical I'm afraid but seems to work. It is also what
the old lowering did, and I've switched an old test to run both
lowerings demonstrating that we get the same result.

Unlike the old code, I'm not lowering f32 or f64 scalars through this
path when we only have AVX1. The target patterns include pretty heinous
code to re-cast those as shuffles when the scalar happens to not be
spilled because AVX1 provides no broadcast mechanism from registers
what-so-ever. This is terribly brittle. I'd much rather go through our
generic lowering code to get this. If needed, we can add a peephole to
get even more opportunities to broadcast-from-spill-slots that are
exposed post-RA, but my suspicion is this just doesn't matter that much.

llvm-svn: 218734
2014-10-01 03:19:43 +00:00
..
Analysis [BasicAA] Make better use of zext and sign information 2014-09-30 22:43:40 +00:00
AsmParser
Bitcode Do not destroy external linkage when deleting function body 2014-09-23 12:54:19 +00:00
CodeGen Implement DW_TAG_subrange_type with DW_AT_count rather than DW_AT_upper_bound 2014-10-01 00:56:55 +00:00
DebugInfo Store TypeUnits in a SmallVector<DWARFUnitSection> instead of a single DWARFUnitSection. 2014-09-29 13:56:39 +00:00
ExecutionEngine Unit test r218187, changing RTDyldMemoryManager::getSymbolAddress's behavior favor mangled lookup over unmangled lookup. 2014-09-29 21:25:13 +00:00
IR [AVX512] Added intrinsics for VPCMPEQB and VPCMPEQW. 2014-09-30 11:32:22 +00:00
IRReader
LineEditor
Linker
LTO LTO: introduce object file-based on-disk module format. 2014-09-18 21:28:49 +00:00
MC Extend C disassembler API to allow specifying target features 2014-09-30 16:31:40 +00:00
Object Object: BSS/virtual sections don't have contents 2014-09-26 22:32:16 +00:00
Option
ProfileData llvm-cov: Use the number of executed functions for the function coverage metric. 2014-09-30 12:45:13 +00:00
Support Fix llvm::huge_valf multiple initializations with Visual C++. 2014-09-27 14:41:29 +00:00
TableGen Refactoring: raw pointer -> unique_ptr 2014-09-25 19:55:58 +00:00
Target [x86] Teach the new vector shuffle lowering to be even more aggressive 2014-10-01 03:19:43 +00:00
Transforms [InstCombine] Optimize icmp-select-icmp 2014-10-01 00:13:22 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile