[llvm-branch-commits] [clang] release/20.x: [AArch64] Add MSVC mangling for the __mfp8 type (#124968) (PR #125066)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Jan 30 07:08:02 PST 2025
https://github.com/llvmbot created https://github.com/llvm/llvm-project/pull/125066
Backport 7939ce6295e7fc0214cd307f97dfccc0cabde381
Requested by: @MacDue
>From 5f3e4eeefd408e660aec1c93053edd8d29d3b432 Mon Sep 17 00:00:00 2001
From: Momchil Velikov <momchil.velikov at arm.com>
Date: Thu, 30 Jan 2025 10:42:12 +0000
Subject: [PATCH] [AArch64] Add MSVC mangling for the __mfp8 type (#124968)
Fixes #124907
(cherry picked from commit 7939ce6295e7fc0214cd307f97dfccc0cabde381)
---
clang/lib/AST/MicrosoftMangle.cpp | 5 +++++
clang/test/CodeGenCXX/aarch64-ms-mangle-mfp8.cpp | 14 ++++++++++++++
2 files changed, 19 insertions(+)
create mode 100644 clang/test/CodeGenCXX/aarch64-ms-mangle-mfp8.cpp
diff --git a/clang/lib/AST/MicrosoftMangle.cpp b/clang/lib/AST/MicrosoftMangle.cpp
index edeeaeaa9ae17c..42b735ccf4a2ce 100644
--- a/clang/lib/AST/MicrosoftMangle.cpp
+++ b/clang/lib/AST/MicrosoftMangle.cpp
@@ -2792,6 +2792,10 @@ void MicrosoftCXXNameMangler::mangleType(const BuiltinType *T, Qualifiers,
mangleArtificialTagType(TagTypeKind::Struct, "__bf16", {"__clang"});
break;
+ case BuiltinType::MFloat8:
+ mangleArtificialTagType(TagTypeKind::Struct, "__mfp8", {"__clang"});
+ break;
+
#define WASM_REF_TYPE(InternalName, MangledName, Id, SingletonId, AS) \
case BuiltinType::Id: \
mangleArtificialTagType(TagTypeKind::Struct, MangledName); \
@@ -2808,6 +2812,7 @@ void MicrosoftCXXNameMangler::mangleType(const BuiltinType *T, Qualifiers,
#define SVE_TYPE(Name, Id, SingletonId) \
case BuiltinType::Id:
+#define SVE_SCALAR_TYPE(Name, MangledName, Id, SingletonId, Bits)
#include "clang/Basic/AArch64SVEACLETypes.def"
#define PPC_VECTOR_TYPE(Name, Id, Size) \
case BuiltinType::Id:
diff --git a/clang/test/CodeGenCXX/aarch64-ms-mangle-mfp8.cpp b/clang/test/CodeGenCXX/aarch64-ms-mangle-mfp8.cpp
new file mode 100644
index 00000000000000..b5fd9171ad81a9
--- /dev/null
+++ b/clang/test/CodeGenCXX/aarch64-ms-mangle-mfp8.cpp
@@ -0,0 +1,14 @@
+// RUN: %clang_cc1 -triple aarch64-windows-msvc -emit-llvm -o - %s | FileCheck %s
+
+typedef __mfp8 mf8;
+typedef __attribute__((neon_vector_type(8))) __mfp8 mf8x8_t;
+typedef __attribute__((neon_vector_type(16))) __mfp8 mf8x16_t;
+
+// CHECK: "?f@@YAXU__mfp8 at __clang@@@Z"
+void f(mf8 v) {}
+
+// CHECK: "?f@@YAXT?$__vector at U__mfp8@__clang@@$07 at __clang@@@Z"
+void f(mf8x8_t v) {}
+
+// CHECK: "?f@@YAXT?$__vector at U__mfp8@__clang@@$0BA@@__clang@@@Z"
+void f(mf8x16_t v) {}
More information about the llvm-branch-commits
mailing list