llvm-6502/test
Andrea Di Biagio e54158504f [X86] Teach the DAGCombiner how to fold a OR of two shufflevector nodes.
This patch teaches the DAGCombiner how to fold a binary OR between two
shufflevector into a single shuffle vector when possible.

The rules are:
  1. fold (or (shuf A, V_0, MA), (shuf B, V_0, MB)) -> (shuf A, B, Mask1)
  2. fold (or (shuf A, V_0, MA), (shuf B, V_0, MB)) -> (shuf B, A, Mask2)

The DAGCombiner can take advantage of the fact that OR is commutative and
compute two possible shuffle masks (Mask1 and Mask2) for the resulting
shuffle node.

Before folding a dag according to either rule 1 or 2, DAGCombiner verifies
that the resulting shuffle mask is legal for the target.
DAGCombiner would firstly try to fold according to 1.; If not possible
then it will try to fold according to 2.
If both Mask1 and Mask2 are illegal then we conservatively don't fold
the OR instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203156 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-06 20:19:52 +00:00
..
Analysis Teach lint about address spaces 2014-03-06 17:33:55 +00:00
Assembler Bug 18228 - Fix accepting bitcasts between vectors of pointers with a 2014-01-22 19:21:33 +00:00
Bindings Don't try to set a dummy DataLayout. It is parsed now. 2014-02-25 20:41:28 +00:00
Bitcode Ensure bitcode encoding of instructions and their operands stays stable. 2014-03-02 15:26:36 +00:00
BugPoint
CodeGen [X86] Teach the DAGCombiner how to fold a OR of two shufflevector nodes. 2014-03-06 20:19:52 +00:00
DebugInfo DebugInfo: Tag units as having been indexed in GNU pubnames by using a DW_AT_GNU_pubnames of DW_FORM_flag(_present) rather than sec_offsets to the pubnames/types sections 2014-03-06 05:47:39 +00:00
ExecutionEngine Ignore old JIT tests in AARch64 - CMake style 2014-02-25 09:31:00 +00:00
Feature Change math intrinsic attributes from readonly to readnone. These 2014-03-06 00:18:15 +00:00
FileCheck
Instrumentation [msan] Handle X86 SIMD bitshift intrinsics. 2014-03-03 13:47:42 +00:00
Integer
JitListener
Linker Fix datalayout test that I broke with my previous LinkModules warning improvement. 2014-03-05 21:37:08 +00:00
LTO Add back r201608, r201622, r201624 and r201625 2014-02-19 17:23:20 +00:00
MC AVX-512: Added rrk, rrkz, rmk, rmkz, rmbk, rmbkz versions of AVX512 FP packed instructions, added encoding tests for them. 2014-03-06 08:45:30 +00:00
Object Now that it is possible, use the mangler in IRObjectFile. 2014-02-28 02:17:23 +00:00
Other [PM] Wire up the Verifier for the new pass manager and connect it to the 2014-01-20 11:34:08 +00:00
TableGen [TableGen] Correctly generate implicit anonymous prototype defs in multiclasses 2014-01-02 20:47:09 +00:00
tools Fix the printing of n_type. 2014-03-06 20:13:41 +00:00
Transforms Allow constant folding of copysign 2014-03-06 05:32:52 +00:00
Unit With rpaths being set correctly, SHLIBPATH_VAR is not needed anymore. 2014-02-28 16:16:51 +00:00
Verifier [PM] Make the verifier work independently of any pass manager. 2014-01-19 02:22:18 +00:00
YAMLParser
.clang-format
CMakeLists.txt [CMake] check-llvm: Include "bugpoint" in dependent list. 2014-03-04 16:13:30 +00:00
lit.cfg PGO: llvm-profdata: tool for merging profiles 2014-02-17 23:22:49 +00:00
lit.site.cfg.in Eliminate inappropriate use of FindProgramByName() from lli 2014-01-22 21:52:35 +00:00
Makefile With rpaths being set correctly, SHLIBPATH_VAR is not needed anymore. 2014-02-28 16:16:51 +00:00
Makefile.tests
TestRunner.sh