Add Microsoft Mangling for OpenCL Half Type

Half-type mangling is accomplished following the method introduced by Erich 
Keane for mangling _Float16. Updated the half.cl LIT test to cover this 
particular case.

Patch By: vbridgers

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

llvm-svn: 331263
This commit is contained in:
Erich Keane 2018-05-01 14:16:15 +00:00
parent f6b81dae9e
commit 14c1085317
2 changed files with 6 additions and 2 deletions

View File

@ -1923,8 +1923,11 @@ void MicrosoftCXXNameMangler::mangleType(const BuiltinType *T, Qualifiers,
mangleArtificalTagType(TTK_Struct, "_Float16", {"__clang"});
break;
case BuiltinType::Float128:
case BuiltinType::Half: {
case BuiltinType::Half:
mangleArtificalTagType(TTK_Struct, "_Half", {"__clang"});
break;
case BuiltinType::Float128: {
DiagnosticsEngine &Diags = Context.getDiags();
unsigned DiagID = Diags.getCustomDiagID(
DiagnosticsEngine::Error, "cannot mangle this built-in %0 type yet");

View File

@ -1,4 +1,5 @@
// RUN: %clang_cc1 %s -emit-llvm -o - -triple spir-unknown-unknown | FileCheck %s
// RUN: %clang_cc1 %s -emit-llvm -o - -triple x86_64-pc-win32 | FileCheck %s
#pragma OPENCL EXTENSION cl_khr_fp16 : enable