1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 14:33:02 +02:00
llvm-mirror/lib/CodeGen/SelectionDAG
Simon Pilgrim 67352336fb [SelectionDAG] Fixed issue with uitofp vector constant folding being treated as sitofp
While the uitofp scalar constant folding treats an integer as an unsigned value (from lang ref):

%X = sitofp i8 -1 to double ; yields double:-1.0
%Y = uitofp i8 -1 to double ; yields double:255.0

The vector constant folding was always using sitofp:

%X = sitofp <2 x i8> <i8 -1, i8 -1> to <2 x double> ; yields <double -1.0, double -1.0>
%Y = uitofp <2 x i8> <i8 -1, i8 -1> to <2 x double> ; yields <double -1.0, double -1.0>

This patch fixes this so that the correct opcode is used for sitofp and uitofp.

%X = sitofp <2 x i8> <i8 -1, i8 -1> to <2 x double> ; yields <double -1.0, double -1.0>
%Y = uitofp <2 x i8> <i8 -1, i8 -1> to <2 x double> ; yields <double 255.0, double 255.0>

Differential Revision: http://reviews.llvm.org/D8560

llvm-svn: 233033
2015-03-23 22:44:55 +00:00
..
CMakeLists.txt
DAGCombiner.cpp Move private classes into anonymous namespaces 2015-03-23 12:30:58 +00:00
FastISel.cpp Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
FunctionLoweringInfo.cpp Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
InstrEmitter.cpp
InstrEmitter.h
LegalizeDAG.cpp [CodeGen] Replace the reused stores' chain for extractelt expansion. 2015-03-09 22:51:05 +00:00
LegalizeFloatTypes.cpp
LegalizeIntegerTypes.cpp LegalizeTypes: Handle shift by 0 in ExpandShiftByConstant. 2015-03-06 01:13:01 +00:00
LegalizeTypes.cpp
LegalizeTypes.h
LegalizeTypesGeneric.cpp
LegalizeVectorOps.cpp [SDAG] Handle LowerOperation returning its input consistently 2015-02-24 12:59:47 +00:00
LegalizeVectorTypes.cpp [SDAG] Don't widen VSETCC during type legalization for split operands 2015-03-23 08:22:43 +00:00
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp unique_ptrify ResourcePriorityQueue::ResourceModel 2015-03-03 20:49:08 +00:00
ScheduleDAGFast.cpp
ScheduleDAGRRList.cpp
ScheduleDAGSDNodes.cpp
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp
SDNodeDbgValue.h
SelectionDAG.cpp [SelectionDAG] Fixed issue with uitofp vector constant folding being treated as sitofp 2015-03-23 22:44:55 +00:00
SelectionDAGBuilder.cpp SelectionDAGBuilder: Rangeify a loop. NFC. 2015-03-20 18:48:40 +00:00
SelectionDAGBuilder.h Rewrite SelectionDAGBuilder::Clusterify to run in linear time. NFC. 2015-03-20 00:41:03 +00:00
SelectionDAGDumper.cpp X86: Optimize address mode matching for FRAME_ALLOC_RECOVER nodes 2015-03-05 18:50:12 +00:00
SelectionDAGISel.cpp SelectionDAGIsel: Fix comment about terminators being "handled below". 2015-03-19 00:02:22 +00:00
SelectionDAGPrinter.cpp
StatepointLowering.cpp Teach lowering to correctly handle invoke statepoint and gc results tied to them. Note that we still can not lower gc.relocates for invoke statepoints. 2015-03-10 16:26:48 +00:00
StatepointLowering.h
TargetLowering.cpp Fix sign extension for MIPS64 in makeLibCall function 2015-03-23 12:28:13 +00:00
TargetSelectionDAGInfo.cpp