[clang] [llvm] [Experimental] Alternative implementation of FP8 Neon (PR #120476)

via cfe-commits cfe-commits at lists.llvm.org
Wed Dec 18 12:38:32 PST 2024


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff 229d78de31467f623e33716a30cb0c6d285d7683 1cde192318d698668510362400a08b95a5cf54e4 --extensions cpp,h,c -- clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_cvt.c clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_fdot.c clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_fmla.c clang/test/Sema/aarch64-fp8-intrinsics/acle_neon_fp8_cvt.c clang/test/Sema/aarch64-fp8-intrinsics/acle_neon_fp8_fdot.c clang/test/Sema/aarch64-fp8-intrinsics/acle_neon_fp8_fmla.c clang/include/clang/AST/Type.h clang/include/clang/Basic/TargetBuiltins.h clang/lib/AST/ASTContext.cpp clang/lib/AST/ItaniumMangle.cpp clang/lib/AST/Type.cpp clang/lib/CodeGen/CGBuiltin.cpp clang/lib/CodeGen/CodeGenFunction.h clang/lib/CodeGen/CodeGenTypes.cpp clang/lib/CodeGen/Targets/AArch64.cpp clang/lib/Sema/SemaARM.cpp clang/lib/Sema/SemaExpr.cpp clang/lib/Sema/SemaType.cpp clang/test/CodeGen/arm-mfp8.c clang/test/Sema/arm-mfp8.cpp clang/utils/TableGen/NeonEmitter.cpp clang/utils/TableGen/SveEmitter.cpp
``````````

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp
index 80292b04ed..32d159d191 100644
--- a/clang/lib/AST/ASTContext.cpp
+++ b/clang/lib/AST/ASTContext.cpp
@@ -2269,7 +2269,7 @@ TypeInfo ASTContext::getTypeInfoImpl(const Type *T) const {
     Width = 0;                                                                 \
     Align = 16;                                                                \
     break;
-#define AARCH64_SCALAR_TYPE(Name, MangledName, Id, SingletonId, Bits)              \
+#define AARCH64_SCALAR_TYPE(Name, MangledName, Id, SingletonId, Bits)          \
   case BuiltinType::Id:                                                        \
     Width = Bits;                                                              \
     Align = Bits;                                                              \
diff --git a/clang/lib/AST/ItaniumMangle.cpp b/clang/lib/AST/ItaniumMangle.cpp
index 1e1f457fdf..4eaa7363e4 100644
--- a/clang/lib/AST/ItaniumMangle.cpp
+++ b/clang/lib/AST/ItaniumMangle.cpp
@@ -3433,7 +3433,7 @@ void CXXNameMangler::mangleType(const BuiltinType *T) {
     type_name = MangledName;                                                   \
     Out << (type_name == Name ? "u" : "") << type_name.size() << type_name;    \
     break;
-#define AARCH64_SCALAR_TYPE(Name, MangledName, Id, SingletonId, Bits)              \
+#define AARCH64_SCALAR_TYPE(Name, MangledName, Id, SingletonId, Bits)          \
   case BuiltinType::Id:                                                        \
     type_name = MangledName;                                                   \
     Out << (type_name == Name ? "u" : "") << type_name.size() << type_name;    \
@@ -3917,7 +3917,9 @@ void CXXNameMangler::mangleNeonVectorType(const VectorType *T) {
     case BuiltinType::Float:     EltName = "float32_t"; break;
     case BuiltinType::Half:      EltName = "float16_t"; break;
     case BuiltinType::BFloat16:  EltName = "bfloat16_t"; break;
-    case BuiltinType::MFloat8:   EltName = "mfloat8_t"; break;
+    case BuiltinType::MFloat8:
+      EltName = "mfloat8_t";
+      break;
     default:
       llvm_unreachable("unexpected Neon vector element type");
     }
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp
index ce4b4df820..d8eb7c9b18 100644
--- a/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/clang/lib/CodeGen/CGBuiltin.cpp
@@ -14120,8 +14120,8 @@ Value *CodeGenFunction::EmitAArch64BuiltinExpr(unsigned BuiltinID,
     llvm::Type *Ty = llvm::FixedVectorType::get(Int8Ty, 16);
     Ops[0] = Builder.CreateInsertVector(Ty, PoisonValue::get(Ty), Ops[0],
                                         Builder.getInt64(0));
-    return EmitFP8NeonCvtCall(Intrinsic::aarch64_neon_fp8_fcvtn2,
-                              Ty, Ops[1]->getType(), false, Ops, E, "vfcvtn2");
+    return EmitFP8NeonCvtCall(Intrinsic::aarch64_neon_fp8_fcvtn2, Ty,
+                              Ops[1]->getType(), false, Ops, E, "vfcvtn2");
   }
 
   case NEON::BI__builtin_neon_vdot_f16_mf8_fpm:
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 4295e41dad..b343844ac5 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -10178,7 +10178,7 @@ QualType Sema::CheckVectorOperands(ExprResult &LHS, ExprResult &RHS,
   if ((LHSVecType && LHSVecType->getElementType()->isMFloat8Type()) ||
       (RHSVecType && RHSVecType->getElementType()->isMFloat8Type()))
     return InvalidOperands(Loc, LHS, RHS);
-    
+
   // AltiVec-style "vector bool op vector bool" combinations are allowed
   // for some operators but not others.
   if (!AllowBothBool && LHSVecType &&

``````````

</details>


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


More information about the cfe-commits mailing list