1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 14:02:52 +02:00
llvm-mirror/lib/CodeGen/SelectionDAG
Simon Pilgrim f59c806c0f [VectorLegalizer] Expansion of CTLZ using CTPOP when possible
This patch avoids scalarization of CTLZ by instead expanding to use CTPOP (ref: "Hacker's Delight") when the necessary operations are available.

This also adds the necessary cost models for X86 SSE2 targets (the main beneficiary) to ensure vectorization only happens when its useful.

Differential Revision: https://reviews.llvm.org/D25910

llvm-svn: 286233
2016-11-08 14:10:28 +00:00
..
CMakeLists.txt
DAGCombiner.cpp DAGCombiner: fix use-after-free when merging consecutive stores 2016-11-03 14:25:04 +00:00
FastISel.cpp Add -O0 support for @llvm.invariant.group.barrier by discarding it if it gets to ISel. 2016-11-07 16:47:20 +00:00
FunctionLoweringInfo.cpp [WinEH] Allow catchpads to reuse the same catch object 2016-10-19 17:08:23 +00:00
InstrEmitter.cpp SDAG: Make sure we use an allocatable reg class when we create this vreg 2016-10-28 22:42:54 +00:00
InstrEmitter.h
LegalizeDAG.cpp Simplify. 2016-11-02 12:45:28 +00:00
LegalizeFloatTypes.cpp [CodeGen] Split out the notions of MI invariance and MI dereferenceability. 2016-09-11 01:38:58 +00:00
LegalizeIntegerTypes.cpp Expandload and Compressstore intrinsics 2016-11-03 03:23:55 +00:00
LegalizeTypes.cpp getValueType().getScalarSizeInBits() -> getScalarValueSizeInBits(), round 2 ; NFCI 2016-09-14 16:54:10 +00:00
LegalizeTypes.h [SelectionDAGBuilder] Support llvm.flt.rounds on targets where i32 is not legal 2016-10-10 20:45:15 +00:00
LegalizeTypesGeneric.cpp Do not assume that FP vector operands are never legalized by expanding 2016-10-26 19:51:35 +00:00
LegalizeVectorOps.cpp [VectorLegalizer] Expansion of CTLZ using CTPOP when possible 2016-11-08 14:10:28 +00:00
LegalizeVectorTypes.cpp getVectorElementType().getSizeInBits() -> getScalarSizeInBits() ; NFCI 2016-09-14 16:37:15 +00:00
LLVMBuild.txt
ResourcePriorityQueue.cpp Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
ScheduleDAGFast.cpp
ScheduleDAGRRList.cpp Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
ScheduleDAGSDNodes.cpp SelectionDAG: Avoid implicit iterator conversions in ScheduleDAGSDNodes, NFC 2016-07-08 19:07:09 +00:00
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp
SDNodeDbgValue.h
SelectionDAG.cpp [SelectionDAG] Add support for vector demandedelts in XOR opcodes 2016-11-06 16:49:19 +00:00
SelectionDAGBuilder.cpp Add -O0 support for @llvm.invariant.group.barrier by discarding it if it gets to ISel. 2016-11-07 16:47:20 +00:00
SelectionDAGBuilder.h Expandload and Compressstore intrinsics 2016-11-03 03:23:55 +00:00
SelectionDAGDumper.cpp Create llvm.addressofreturnaddress intrinsic 2016-10-12 22:13:19 +00:00
SelectionDAGISel.cpp Silence -Wunused-but-set-variable warning 2016-10-11 19:49:29 +00:00
SelectionDAGPrinter.cpp
SelectionDAGTargetInfo.cpp
StatepointLowering.cpp getValueType().getSizeInBits() -> getValueSizeInBits() ; NFCI 2016-09-14 16:05:51 +00:00
StatepointLowering.h
TargetLowering.cpp [DAG] disable nsw/nuw for add/sub/mul when simplifying based on demanded bits (PR30841) 2016-10-31 23:28:45 +00:00