llvm-6502/lib/CodeGen/SelectionDAG
Nadav Rotem e757f00446 Currently targets that do not support selects with scalar conditions and vector operands - scalarize the code. ARM is such a target
because it does not support CMOV of vectors. To implement this efficientlyi, we broadcast the condition bit and use a sequence of NAND-OR
to select between the two operands. This is the same sequence we use for targets that don't have vector BLENDs (like SSE2).

rdar://12201387



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162926 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-30 19:17:29 +00:00
..
CMakeLists.txt llvm/lib: [CMake] Add explicit dependency to intrinsics_gen. 2012-06-24 13:32:01 +00:00
DAGCombiner.cpp Rejected 169195. As Duncan commented, bitcasting to proper type is wrong approach. We need to insert some valid TRANCATE node here. 2012-08-22 09:33:55 +00:00
FastISel.cpp Try to reduce the compile time impact of r161232. 2012-08-03 21:26:24 +00:00
FunctionLoweringInfo.cpp Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp and 2012-06-28 00:05:13 +00:00
InstrEmitter.cpp Verify the order of tied operands in inline asm. 2012-08-29 23:52:52 +00:00
InstrEmitter.h Allow trailing physreg RegisterSDNode operands on non-variadic instructions. 2012-07-04 23:53:23 +00:00
LegalizeDAG.cpp Fix bug 13532. 2012-08-28 02:12:42 +00:00
LegalizeFloatTypes.cpp Convert assert(0) to llvm_unreachable 2012-02-05 08:31:47 +00:00
LegalizeIntegerTypes.cpp Remove tabs. 2012-07-19 00:04:14 +00:00
LegalizeTypes.cpp Change interface for TargetLowering::LowerCallTo and TargetLowering::LowerCall 2012-05-25 16:35:28 +00:00
LegalizeTypes.h Add support for FMA to WidenVectorResult. 2012-08-30 07:13:41 +00:00
LegalizeTypesGeneric.cpp The result type of EXTRACT_VECTOR_ELT doesn't have to match the element type of 2012-07-12 09:01:35 +00:00
LegalizeVectorOps.cpp Currently targets that do not support selects with scalar conditions and vector operands - scalarize the code. ARM is such a target 2012-08-30 19:17:29 +00:00
LegalizeVectorTypes.cpp Add support for FMA to WidenVectorResult. 2012-08-30 07:13:41 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
Makefile
ResourcePriorityQueue.cpp I'm introducing a new machine model to simultaneously allow simple 2012-07-07 04:00:00 +00:00
ScheduleDAGFast.cpp Simplify some more getAliasSet callers. 2012-06-01 22:38:17 +00:00
ScheduleDAGRRList.cpp Fix a typo (the the => the) 2012-07-23 08:51:15 +00:00
ScheduleDAGSDNodes.cpp Reapply 155668: Fix the SD scheduler to avoid gluing the same node twice. 2012-04-28 01:03:23 +00:00
ScheduleDAGSDNodes.h Add SelectionDAG::getTargetIndex. 2012-08-07 22:37:05 +00:00
ScheduleDAGVLIW.cpp misched preparation: rename core scheduler methods for consistency. 2012-03-07 23:00:49 +00:00
SDNodeDbgValue.h
SDNodeOrdering.h
SelectionDAG.cpp Remove extra MayLoad/MayStore flags from atomic_load/store. 2012-08-28 03:11:32 +00:00
SelectionDAGBuilder.cpp BranchProb: modify the definition of an edge in BranchProbabilityInfo to handle 2012-08-24 18:14:27 +00:00
SelectionDAGBuilder.h BranchProb: modify the definition of an edge in BranchProbabilityInfo to handle 2012-08-24 18:14:27 +00:00
SelectionDAGDumper.cpp Add SelectionDAG::getTargetIndex. 2012-08-07 22:37:05 +00:00
SelectionDAGISel.cpp BranchProb: modify the definition of an edge in BranchProbabilityInfo to handle 2012-08-24 18:14:27 +00:00
SelectionDAGPrinter.cpp Add a getName function to MachineFunction. Use it in places that previously did getFunction()->getName(). Remove includes of Function.h that are no longer needed. 2012-08-22 06:07:19 +00:00
TargetLowering.cpp TargetLowering: Use the large shift amount during legalize types. The legalizer may call us with an overly large type. 2012-08-17 15:54:21 +00:00
TargetSelectionDAGInfo.cpp