llvm-6502/lib
Ahmed Bougacha ac655060b4 [ARM] Look through concat when lowering in-place shuffles (VZIP, ..)
Currently, we canonicalize shuffles that produce a result larger than
their operands with:
  shuffle(concat(v1, undef), concat(v2, undef))
->
  shuffle(concat(v1, v2), undef)

because we can access quad vectors (see PerformVECTOR_SHUFFLECombine).

This is useful in the general case, but there are special cases where
native shuffles produce larger results: the two-result ops.

We can look through the concat when lowering them:
  shuffle(concat(v1, v2), undef)
->
  concat(VZIP(v1, v2):0, :1)

This lets us generate the native shuffles instead of scalarizing to
dozens of VMOVs.

Differential Revision: http://reviews.llvm.org/D10424


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240118 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-19 02:32:35 +00:00
..
Analysis Fix "the the" in comments. 2015-06-19 01:53:21 +00:00
AsmParser Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
Bitcode [Bitcode] Replace hand-coded little endian handling with Endian.h functions. 2015-06-17 20:55:30 +00:00
CodeGen Fix "the the" in comments. 2015-06-19 01:53:21 +00:00
DebugInfo [DWARF] Fix a bug in line info handling 2015-05-31 23:37:04 +00:00
ExecutionEngine modules: Add explicit dependency on intrinsics_gen 2015-06-16 00:44:12 +00:00
Fuzzer [lib/Fuzzer] make assertions more informative and update comments for the user-supplied mutator 2015-05-30 17:33:13 +00:00
IR IRBuilder: Allow globals to be constructed in a specific address space 2015-06-19 02:12:07 +00:00
IRReader Return a unique_ptr from getLazyBitcodeModule and parseBitcodeFile. NFC. 2015-06-16 22:27:55 +00:00
LibDriver Bring in a BumpPtrStringSaver from lld and simplify the interface. 2015-06-13 12:49:52 +00:00
LineEditor
Linker Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
LTO Return a unique_ptr from getLazyBitcodeModule and parseBitcodeFile. NFC. 2015-06-16 22:27:55 +00:00
MC [MC] Adding prettyPrintAsm to MCTargetStreamer to allow targets to specialize how instructions are printed to asm. 2015-06-18 20:43:22 +00:00
Object Improve the --expand-relocs handling of MachO. 2015-06-18 22:38:20 +00:00
Option Option parsing: properly handle flag aliases for joined options (PR23394) 2015-05-04 18:00:13 +00:00
Passes
ProfileData modules: Add explicit dependency on intrinsics_gen 2015-06-16 00:44:12 +00:00
Support Fix "the the" in comments. 2015-06-19 01:53:21 +00:00
TableGen [TableGen] Change OpInit::getNumOperands and getOperand to use unsigned integers. NFC 2015-06-06 01:34:04 +00:00
Target [ARM] Look through concat when lowering in-place shuffles (VZIP, ..) 2015-06-19 02:32:35 +00:00
Transforms Fix "the the" in comments. 2015-06-19 01:53:21 +00:00
CMakeLists.txt LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00
LLVMBuild.txt Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00
Makefile LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00