llvm-6502/lib
Sanjay Patel be9ee96926 [X86, AVX] instcombine common cases of vperm2* intrinsics into shuffles
vperm2* intrinsics are just shuffles. 
In a few special cases, they're not even shuffles.

Optimizing intrinsics in InstCombine is better than
handling this in the front-end for at least two reasons:

1. Optimizing custom-written SSE intrinsic code at -O0 makes vector coders
   really angry (and so I have regrets about some patches from last week).

2. Doing mask conversion logic in header files is hard to write and 
   subsequently read.

There are a couple of TODOs in this patch to complete this optimization.

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232852 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-20 21:47:56 +00:00
..
Analysis Correctly estimate SROA savings for store operands in inline cost analysis. 2015-03-20 18:33:12 +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 Fixing a bug with WinEH PHI handling 2015-03-20 21:42:54 +00:00
DebugInfo DWARFFormValue: Add getAsSignedConstant method. 2015-03-04 22:07:41 +00:00
ExecutionEngine Fix uses of reserved identifiers starting with an underscore followed by an uppercase letter 2015-03-16 18:06:57 +00:00
Fuzzer [sanitizer/coverage] Add AFL-style coverage counters (search heuristic for fuzzing). 2015-03-03 23:27:02 +00:00
IR Verifier: Check that !dbg attachments have the right type 2015-03-20 19:26:58 +00:00
IRReader Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
LineEditor Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
Linker DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
LTO Verifier: Remove the separate -verify-di pass 2015-03-19 22:24:17 +00:00
MC Don't declare all text sections at the start of the .s 2015-03-20 20:00:01 +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 [PM] Fixup for r231556 where I missed a dependency on intrinsics 2015-03-07 09:08:20 +00:00
ProfileData InstrProf: Fix CoverageMappingReader on big endian 2015-03-16 21:40:18 +00:00
Support Note that we don't support COFF on PPC. 2015-03-19 02:40:56 +00:00
TableGen Add missing includes. make_unique proliferated everywhere. 2015-03-01 21:28:53 +00:00
Target [X86] Prefer blendps over insertps codegen for one special case 2015-03-20 21:19:52 +00:00
Transforms [X86, AVX] instcombine common cases of vperm2* intrinsics into shuffles 2015-03-20 21:47:56 +00:00
CMakeLists.txt [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00
LLVMBuild.txt [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00
Makefile [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00