llvm-6502/lib/CodeGen/SelectionDAG
Hal Finkel 71da6755c8 Fix legalization of SETCC with promoted integer intrinsics
If the input operands to SETCC are promoted, we need to make sure that we
either use the promoted form of both operands (or neither); a mixture is not
allowed. This can happen, for example, if a target has a custom promoted
i1-returning intrinsic (where i1 is not a legal type). In this case, we need to
use the promoted form of both operands.

This change only augments the behavior of the existing logic in the case where
the input types (which may or may not have already been legalized) disagree,
and should not affect existing target code because this case would otherwise
cause an assert in the SETCC operand promotion code.

This will be covered by (essentially all of the) tests for the new PPCCTRLoops
infrastructure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181926 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-15 21:37:27 +00:00
..
CMakeLists.txt llvm/lib: [CMake] Add explicit dependency to intrinsics_gen. 2012-06-24 13:32:01 +00:00
DAGCombiner.cpp Remove redundant variable introduced by r181682. 2013-05-13 19:02:31 +00:00
FastISel.cpp Temporarily revert "Change the informal convention of DBG_VALUE so that we can express a" 2013-04-30 22:35:14 +00:00
FunctionLoweringInfo.cpp Revert 172027 and 174336. Remove diagnostics about over-aligned stack objects. 2013-02-08 20:35:15 +00:00
InstrEmitter.cpp Temporarily revert "Change the informal convention of DBG_VALUE so that we can express a" 2013-04-30 22:35:14 +00:00
InstrEmitter.h Use MachineInstrBuilder in InstrEmitter. 2012-12-20 18:08:09 +00:00
LegalizeDAG.cpp Remove unused MEMBARRIER DAG node; it's been replaced by ATOMIC_FENCE. 2013-04-20 12:32:17 +00:00
LegalizeFloatTypes.cpp Fix PR15632: No support for ppcf128 floating-point remainder on PowerPC. 2013-04-03 13:05:44 +00:00
LegalizeIntegerTypes.cpp Fix legalization of SETCC with promoted integer intrinsics 2013-05-15 21:37:27 +00:00
LegalizeTypes.cpp Move SDNode order propagation to SDNodeOrdering, which also fixes a missed 2013-03-20 14:51:01 +00:00
LegalizeTypes.h Legalize vector truncates by parts rather than just splitting. 2013-04-21 23:47:41 +00:00
LegalizeTypesGeneric.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
LegalizeVectorOps.cpp Fix vselect when getSetCCResultType returns a different type from the operands 2013-05-07 20:24:18 +00:00
LegalizeVectorTypes.cpp Legalize vector truncates by parts rather than just splitting. 2013-04-21 23:47:41 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
Makefile
ResourcePriorityQueue.cpp Change TargetLowering::getRegClassFor to take an MVT, instead of EVT. 2012-12-13 06:34:11 +00:00
ScheduleDAGFast.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
ScheduleDAGRRList.cpp Revert "pre-RA-sched: fix TargetOpcode usage" 2013-03-20 15:43:00 +00:00
ScheduleDAGSDNodes.cpp Change TargetLowering::getRepRegClassFor to take an MVT, instead of 2012-12-13 18:45:35 +00:00
ScheduleDAGSDNodes.h Fix #includes, so we include only what we really need. 2013-02-20 00:26:25 +00:00
ScheduleDAGVLIW.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
SDNodeDbgValue.h Sort includes for all of the .h files under the 'lib' tree. These were 2012-12-04 07:12:27 +00:00
SDNodeOrdering.h Make variable name more explicit and eliminate redundant lookup in SDNodeOrdering 2013-03-20 23:10:59 +00:00
SelectionDAG.cpp Teach SelectionDAG to constant fold all-constant FMA nodes the same way that it constant folds FADD, FMUL, etc. 2013-05-09 22:27:13 +00:00
SelectionDAGBuilder.cpp [inline asm] Return an undef SDValue of the expected value type, rather than 2013-05-01 19:49:26 +00:00
SelectionDAGBuilder.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
SelectionDAGDumper.cpp Remove unused MEMBARRIER DAG node; it's been replaced by ATOMIC_FENCE. 2013-04-20 12:32:17 +00:00
SelectionDAGISel.cpp Temporarily revert "Change the informal convention of DBG_VALUE so that we can express a" 2013-04-30 22:35:14 +00:00
SelectionDAGPrinter.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
TargetLowering.cpp Add static cast to unsigned char whenever a character classification function is called with a signed char argument, in order to avoid assertions in Windows Debug configuration. 2013-02-12 21:21:59 +00:00
TargetSelectionDAGInfo.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00