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

Jonas Paulsson via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 14 11:54:22 PST 2025


================
@@ -446,10 +448,11 @@ ABIArgInfo SystemZABIInfo::classifyArgumentType(QualType Ty) const {
 
     // The structure is passed as an unextended integer, a float, or a double.
     if (isFPArgumentType(SingleElementTy)) {
-      assert(Size == 32 || Size == 64);
+      assert(Size == 16 || Size == 32 || Size == 64);
       return ABIArgInfo::getDirect(
-          Size == 32 ? llvm::Type::getFloatTy(getVMContext())
-                     : llvm::Type::getDoubleTy(getVMContext()));
+          Size == 16   ? llvm::Type::getHalfTy(getVMContext())
----------------
JonPsson1 wrote:

ok - patch updated to do this mapping in a direct way. It was actually more beneficial perhaps than merely guarding against bfloat, as the Size can reflect an overalignment in which case the (for historical reasons I beleive) type actually changes to match the alignment.

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


More information about the llvm-commits mailing list