llvm-6502/lib
Simon Pilgrim 0ee70a1554 [X86][SSE] Avoid scalarization of v2i64 vector shifts
Currently v2i64 vectors shifts (non-equal shift amounts) are scalarized, costing 4 x extract, 2 x x86-shifts and 2 x insert instructions - and it gets even more awkward on 32-bit targets.

This patch separately shifts the vector by both shift amounts and then shuffles the partial results back together, costing 2 x shuffles and 2 x sse-shifts instructions (+ 2 movs on pre-AVX hardware).

Note - this patch only improves the SHL / LSHR logical shifts as only these are supported in SSE hardware.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232660 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-18 19:35:31 +00:00
..
Analysis [SCEV] Make isImpliedCond smarter. 2015-03-18 00:41:29 +00:00
AsmParser AsmParser: Stop requiring 'name:' when it's not printed 2015-03-16 19:01:54 +00:00
Bitcode Internalize BitcodeReader. Not used outside of BitcodeReader.cpp. 2015-03-17 20:40:24 +00:00
CodeGen [ARM] Align stack objects passed to memory intrinsics 2015-03-18 12:01:59 +00:00
DebugInfo
ExecutionEngine Fix uses of reserved identifiers starting with an underscore followed by an uppercase letter 2015-03-16 18:06:57 +00:00
Fuzzer
IR [ConstantRange] Split makeICmpRegion in two. 2015-03-18 00:41:24 +00:00
IRReader
LineEditor
Linker
LTO Add a parameter for getLazyBitcodeModule to lazily load Metadata. 2015-03-13 19:24:30 +00:00
MC Add a default implementation of createObjectStreamer. 2015-03-18 19:08:20 +00:00
Object Be lazy about loading metadata in IRObjectFile. 2015-03-13 21:54:20 +00:00
Option Teach Twine to support SmallString. 2015-03-17 09:51:17 +00:00
Passes
ProfileData InstrProf: Fix CoverageMappingReader on big endian 2015-03-16 21:40:18 +00:00
Support Remove many superfluous SmallString::str() calls. 2015-03-18 10:17:07 +00:00
TableGen
Target [X86][SSE] Avoid scalarization of v2i64 vector shifts 2015-03-18 19:35:31 +00:00
Transforms [ConstantRange] Split makeICmpRegion in two. 2015-03-18 00:41:24 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile