llvm-6502/lib/CodeGen/SelectionDAG
Tim Northover f8d927f22b CodeGen: emit IR-level f16 conversion intrinsics as fptrunc/fpext
This makes the first stage DAG for @llvm.convert.to.fp16 an fptrunc,
and correspondingly @llvm.convert.from.fp16 an fpext. The legalisation
path is now uniform, regardless of the input IR:

  fptrunc -> FP_TO_FP16 (if f16 illegal) -> libcall
  fpext -> FP16_TO_FP (if f16 illegal) -> libcall

Each target should be able to select the version that best matches its
operations and not be required to duplicate patterns for both fptrunc
and FP_TO_FP16 (for example).

As a result we can remove some redundant AArch64 patterns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213507 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-21 09:13:56 +00:00
..
CMakeLists.txt
DAGCombiner.cpp [SDAG,cleanup] Switch the DAG combiner over to use the spelling 2014-07-21 08:56:44 +00:00
FastISel.cpp [FastISel] Local values shouldn't be alive across an inline asm call with side effects. 2014-07-16 22:20:51 +00:00
FunctionLoweringInfo.cpp [Modules] Remove potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:02:50 +00:00
InstrEmitter.cpp This reapplies r207235 with an additional bugfixes caught by the msan 2014-04-25 20:49:25 +00:00
InstrEmitter.h
LegalizeDAG.cpp CodeGen: generate single libcall for fptrunc -> f16 operations. 2014-07-17 11:12:12 +00:00
LegalizeFloatTypes.cpp CodeGen: emit IR-level f16 conversion intrinsics as fptrunc/fpext 2014-07-21 09:13:56 +00:00
LegalizeIntegerTypes.cpp CodeGen: extend f16 conversions to permit types > float. 2014-07-17 10:51:23 +00:00
LegalizeTypes.cpp Make it possible for ints/floats to return different values from getBooleanContents() 2014-07-10 10:18:12 +00:00
LegalizeTypes.h ARM: support legalisation of "fptrunc ... to half" operations. 2014-07-18 13:01:19 +00:00
LegalizeTypesGeneric.cpp Fix ppcf128 component access on little-endian systems 2014-07-03 15:06:47 +00:00
LegalizeVectorOps.cpp [x86,SDAG] Introduce any- and sign-extend-vector-inreg nodes analogous 2014-07-10 12:32:32 +00:00
LegalizeVectorTypes.cpp [x86,SDAG] Introduce any- and sign-extend-vector-inreg nodes analogous 2014-07-10 12:32:32 +00:00
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp Fix 'platform-specific' hyphenations 2014-06-30 18:57:16 +00:00
ScheduleDAGFast.cpp [Modules] Remove potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:02:50 +00:00
ScheduleDAGRRList.cpp fixed typo 2014-07-14 18:21:07 +00:00
ScheduleDAGSDNodes.cpp Convert SelectionDAG::MorphNodeTo to use ArrayRef. 2014-04-27 19:21:16 +00:00
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp The hazard recognizer only needs a subtarget, not a target machine 2014-06-13 22:38:52 +00:00
SDNodeDbgValue.h This reapplies r207235 with an additional bugfixes caught by the msan 2014-04-25 20:49:25 +00:00
SelectionDAG.cpp [DAG] Refactor some logic. No functional change. 2014-07-21 07:28:51 +00:00
SelectionDAGBuilder.cpp CodeGen: emit IR-level f16 conversion intrinsics as fptrunc/fpext 2014-07-21 09:13:56 +00:00
SelectionDAGBuilder.h Fix 'platform-specific' hyphenations 2014-06-30 18:57:16 +00:00
SelectionDAGDumper.cpp CodeGen: extend f16 conversions to permit types > float. 2014-07-17 10:51:23 +00:00
SelectionDAGISel.cpp [C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges. 2014-07-20 09:10:11 +00:00
SelectionDAGPrinter.cpp Revert "Introduce a string_ostream string builder facilty" 2014-06-26 22:52:05 +00:00
TargetLowering.cpp SelectionDAG: Factor FP_TO_SINT lower code out of DAGLegalizer 2014-07-10 22:40:18 +00:00
TargetSelectionDAGInfo.cpp Have TargetSelectionDAGInfo take a DataLayout initializer rather than 2014-06-06 19:04:48 +00:00