[clang] [compiler-rt] [llvm] [SystemZ] Add support for half (fp16) (PR #109164)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 17 05:31:38 PST 2025


================
@@ -179,20 +179,31 @@ bool SystemZABIInfo::isVectorArgumentType(QualType Ty) const {
           getContext().getTypeSize(Ty) <= 128);
 }
 
-bool SystemZABIInfo::isFPArgumentType(QualType Ty) const {
+// The Size argument will in case of af an overaligned single element struct
+// reflect the overalignment value. In such a case the argument will be
+// passed using the type matching Size.
+llvm::Type *SystemZABIInfo::getFPArgumentType(QualType Ty,
+                                              uint64_t Size) const {
   if (IsSoftFloatABI)
-    return false;
+    return nullptr;
 
   if (const BuiltinType *BT = Ty->getAs<BuiltinType>())
     switch (BT->getKind()) {
+    case BuiltinType::Float16:
+      if (Size == 16)
----------------
arsenm wrote:

I don't understand why a size check is necessary; Float16 implies the size? 

https://github.com/llvm/llvm-project/pull/109164


More information about the llvm-commits mailing list