llvm-6502/test
Andrea Di Biagio 1726e2ff15 [X86] Add two combine rules to simplify dag nodes introduced during type legalization when promoting nodes with illegal vector type.
This patch teaches the backend how to simplify/canonicalize dag node
sequences normally introduced by the backend when promoting certain dag nodes
with illegal vector type.

This patch adds two new combine rules:
1) fold (shuffle (bitcast (BINOP A, B)), Undef, <Mask>) ->
        (shuffle (BINOP (bitcast A), (bitcast B)), Undef, <Mask>)

2) fold (BINOP (shuffle (A, Undef, <Mask>)), (shuffle (B, Undef, <Mask>))) ->
        (shuffle (BINOP A, B), Undef, <Mask>).

Both rules are only triggered on the type-legalized DAG.
In particular, rule 1. is a target specific combine rule that attempts
to sink a bitconvert into the operands of a binary operation.
Rule 2. is a target independet rule that attempts to move a shuffle
immediately after a binary operation.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209930 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-30 23:17:53 +00:00
..
Analysis
Assembler
Bindings
Bitcode [X86] Move test from r209863 to CodeGen/X86 2014-05-29 23:52:53 +00:00
BugPoint
CodeGen [X86] Add two combine rules to simplify dag nodes introduced during type legalization when promoting nodes with illegal vector type. 2014-05-30 23:17:53 +00:00
DebugInfo
ExecutionEngine
Feature Rename alias variables to make it easier to add new tests to the file. 2014-05-29 16:16:12 +00:00
FileCheck
Instrumentation [ASan] Use llvm.global_ctors to insert init-order checking calls into ASan runtime. 2014-05-29 00:51:15 +00:00
Integer
JitListener
Linker
LTO
MC MachO: move test to ARM directory. 2014-05-30 16:01:29 +00:00
Object [elf2yaml][ELF] Move Info field to the RelocationSection structure. This 2014-05-29 11:05:31 +00:00
Other
TableGen
tools
Transforms Make bitcast, extractelement, and insertelement considered cheap for speculation. 2014-05-30 18:34:43 +00:00
Unit
Verifier
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh