llvm-6502/lib/CodeGen/SelectionDAG
Andrea Di Biagio 6077ca9abb [DAGCombiner] teach how to simplify xor/and/or nodes according to the following rules:
1)  (AND (shuf (A, C, Mask), shuf (B, C, Mask)) -> shuf (AND (A, B), C, Mask)
 2)  (OR  (shuf (A, C, Mask), shuf (B, C, Mask)) -> shuf (OR  (A, B), C, Mask)
 3)  (XOR (shuf (A, C, Mask), shuf (B, C, Mask)) -> shuf (XOR (A, B), V_0, Mask)

 4)  (AND (shuf (C, A, Mask), shuf (C, B, Mask)) -> shuf (C, AND (A, B), Mask)
 5)  (OR  (shuf (C, A, Mask), shuf (C, B, Mask)) -> shuf (C, OR  (A, B), Mask)
 6)  (XOR (shuf (C, A, Mask), shuf (C, B, Mask)) -> shuf (V_0, XOR (A, B), Mask)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204160 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-18 17:12:59 +00:00
..
CMakeLists.txt
DAGCombiner.cpp [DAGCombiner] teach how to simplify xor/and/or nodes according to the following rules: 2014-03-18 17:12:59 +00:00
FastISel.cpp Phase 2 of the great MachineRegisterInfo cleanup. This time, we're changing 2014-03-13 23:12:04 +00:00
FunctionLoweringInfo.cpp [C++11] Add range based accessors for the Use-Def chain of a Value. 2014-03-09 03:16:01 +00:00
InstrEmitter.cpp Make stackmap machineinstrs clobber the scratch regs too. 2014-03-05 07:08:16 +00:00
InstrEmitter.h
LegalizeDAG.cpp IR: add a second ordering operand to cmpxhg for failure 2014-03-11 10:48:52 +00:00
LegalizeFloatTypes.cpp
LegalizeIntegerTypes.cpp IR: add a second ordering operand to cmpxhg for failure 2014-03-11 10:48:52 +00:00
LegalizeTypes.cpp [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-08 06:31:39 +00:00
LegalizeTypes.h [AArch64 NEON] Fix pattern match failed on FP_ROUND from v1f128 to v1f64. 2014-01-26 02:19:35 +00:00
LegalizeTypesGeneric.cpp [C++11] Replace llvm::tie with std::tie. 2014-03-02 13:30:33 +00:00
LegalizeVectorOps.cpp [VectorLegalizer/X86] Don't unvectorize fp_to_uint for v8f32->v8i16 2014-03-17 17:06:14 +00:00
LegalizeVectorTypes.cpp ISel: Make VSELECT selection terminate in cases where the condition type has to 2014-03-07 23:25:55 +00:00
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp [C++11] Replace llvm::next and llvm::prior with std::next and std::prev. 2014-03-02 12:27:27 +00:00
ScheduleDAGFast.cpp [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-08 06:31:39 +00:00
ScheduleDAGRRList.cpp Remove copy ctors that did the same thing as the default one. 2014-03-11 11:32:49 +00:00
ScheduleDAGSDNodes.cpp [C++11] Replace llvm::next and llvm::prior with std::next and std::prev. 2014-03-02 12:27:27 +00:00
ScheduleDAGSDNodes.h [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-08 06:31:39 +00:00
ScheduleDAGVLIW.cpp [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-08 06:31:39 +00:00
SDNodeDbgValue.h [Layering] Move DebugLoc.h into the IR library. The implementation 2014-03-05 10:30:38 +00:00
SelectionDAG.cpp Make DAGCombiner work on vector bitshifts with constant splat vectors. 2014-03-17 18:58:01 +00:00
SelectionDAGBuilder.cpp IR: add a second ordering operand to cmpxhg for failure 2014-03-11 10:48:52 +00:00
SelectionDAGBuilder.h Replace '#include ValueTypes.h' with forward declarations. 2014-03-12 08:00:24 +00:00
SelectionDAGDumper.cpp [Layering] Move DebugInfo.h into the IR library where its implementation 2014-03-06 00:46:21 +00:00
SelectionDAGISel.cpp Phase 1 of refactoring the MachineRegisterInfo iterators to make them suitable 2014-03-13 06:02:25 +00:00
SelectionDAGPrinter.cpp [Layering] Move DebugInfo.h into the IR library where its implementation 2014-03-06 00:46:21 +00:00
TargetLowering.cpp Implement inalloca codegen for x86 with the new inalloca design 2014-01-31 23:50:57 +00:00
TargetSelectionDAGInfo.cpp Rename some member variables from TD to DL. 2014-02-18 15:33:12 +00:00