1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00
llvm-mirror/lib/CodeGen/SelectionDAG
Evan Cheng 632cb17357 Intrinsics which do a vector compare (results are all zero or all ones) are modeled as icmp / fcmp + sext. This is turned into a vsetcc by dag combine (yes, not a good long term solution). The targets can then isel the vsetcc to the appropriate instruction.
The trouble arises when the result of a vector cmp + sext is then and'ed with all ones. Instcombine will turn it into a vector cmp + zext, dag combiner will miss turning it into a vsetcc and hell breaks loose after that.

Teach dag combine to turn a vector cpm + zest into a vsetcc + and 1. This fixes rdar://7923010.

llvm-svn: 104094
2010-05-19 01:08:17 +00:00
..
CallingConvLower.cpp Change errs() to dbgs(). 2010-01-05 01:24:50 +00:00
CMakeLists.txt Create a new TargetSelectionDAGInfo class. This will eventually acquire 2010-04-16 21:12:11 +00:00
DAGCombiner.cpp Intrinsics which do a vector compare (results are all zero or all ones) are modeled as icmp / fcmp + sext. This is turned into a vsetcc by dag combine (yes, not a good long term solution). The targets can then isel the vsetcc to the appropriate instruction. 2010-05-19 01:08:17 +00:00
FastISel.cpp Fast ISel trivially coalesces away no-op casts, so check for this when 2010-05-14 22:53:18 +00:00
FunctionLoweringInfo.cpp Remove the code for special-casing byval for fast-isel. SelectionDAG 2010-05-01 02:44:23 +00:00
FunctionLoweringInfo.h Add comment. 2010-04-29 06:58:53 +00:00
InstrEmitter.cpp Continuously refine the register class of REG_SEQUENCE def with all the source registers and sub-register indices. 2010-05-18 20:07:47 +00:00
InstrEmitter.h Don't set kill flags for instructions which the scheduler has cloned. 2010-05-14 22:01:14 +00:00
LegalizeDAG.cpp Implement a correct ui64->f32 conversion. The old 2010-05-13 23:50:42 +00:00
LegalizeFloatTypes.cpp More 80 violations. 2010-04-15 01:25:27 +00:00
LegalizeIntegerTypes.cpp Fix uint64->{float, double} conversion to do rounding correctly in 32-bit. 2010-05-15 18:51:12 +00:00
LegalizeTypes.cpp 80 col violations. 2010-04-15 01:01:55 +00:00
LegalizeTypes.h I got tired of VISIBILITY_HIDDEN colliding with the gcc enum. Rename it 2010-05-11 20:16:09 +00:00
LegalizeTypesGeneric.cpp More 80 violations. 2010-04-15 01:25:27 +00:00
LegalizeVectorOps.cpp Use const qualifiers with TargetLowering. This eliminates several 2010-04-17 15:26:15 +00:00
LegalizeVectorTypes.cpp More 80 violations. 2010-04-15 01:25:27 +00:00
Makefile make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. 2010-01-24 20:43:08 +00:00
ScheduleDAGFast.cpp Trim unneeded includes. 2010-01-21 21:44:43 +00:00
ScheduleDAGList.cpp Change errs() to dbgs(). 2010-01-05 01:24:43 +00:00
ScheduleDAGRRList.cpp Three changes: 2010-04-07 05:20:54 +00:00
ScheduleDAGSDNodes.cpp Get rid of the EdgeMapping map. Instead, just check for BasicBlock 2010-05-01 00:01:06 +00:00
ScheduleDAGSDNodes.h Get rid of the EdgeMapping map. Instead, just check for BasicBlock 2010-05-01 00:01:06 +00:00
SDNodeDbgValue.h Add const qualifiers to CodeGen's use of LLVM IR constructs. 2010-04-15 01:51:59 +00:00
SDNodeOrdering.h Allow 0 as an order number. Don't assign an order to formal arguments. 2009-12-22 21:35:02 +00:00
SelectionDAG.cpp Improve assertion messages. 2010-05-15 18:38:02 +00:00
SelectionDAGBuilder.cpp I got tired of VISIBILITY_HIDDEN colliding with the gcc enum. Rename it 2010-05-11 20:16:09 +00:00
SelectionDAGBuilder.h Don't pass SDValues by non-const reference unless they may be 2010-05-01 00:33:16 +00:00
SelectionDAGISel.cpp - Set the "HasCalls" flag after instruction selection is finished. 2010-05-17 23:09:50 +00:00
SelectionDAGPrinter.cpp Change errs() to dbgs(). 2010-01-05 01:24:45 +00:00
TargetLowering.cpp Trim #includes and forward declarations. 2010-05-11 19:11:43 +00:00
TargetSelectionDAGInfo.cpp Implement a bunch more TargetSelectionDAGInfo infrastructure. 2010-05-11 17:31:57 +00:00