[clang] [CIR][AArch64] Lower vfmaq_v f32/f64 (PR #195602)

Andrzej WarzyƄski via cfe-commits cfe-commits at lists.llvm.org
Mon May 4 09:50:31 PDT 2026


================
@@ -677,7 +678,20 @@ static mlir::Value emitCommonNeonBuiltinExpr(
   case NEON::BI__builtin_neon_vext_v:
   case NEON::BI__builtin_neon_vextq_v:
   case NEON::BI__builtin_neon_vfma_v:
-  case NEON::BI__builtin_neon_vfmaq_v:
+    cgf.cgm.errorNYI(expr->getSourceRange(),
+                     std::string("unimplemented AArch64 builtin call: ") +
+                         ctx.BuiltinInfo.getName(builtinID));
+    return mlir::Value{};
+  case NEON::BI__builtin_neon_vfmaq_v: {
+    mlir::Value op0 = cgf.getBuilder().createBitcast(ops[0], ty);
+    mlir::Value op1 = cgf.getBuilder().createBitcast(ops[1], ty);
+    mlir::Value op2 = cgf.getBuilder().createBitcast(ops[2], ty);
+    llvm::SmallVector<mlir::Value> fmaOps = {op1, op2, op0};
+    return cir::LLVMIntrinsicCallOp::create(
+               cgf.getBuilder(), loc, cgf.getBuilder().getStringAttr("fma"), ty,
+               fmaOps)
+        .getResult();
----------------
banach-space wrote:

Please use `emitCallMaybeConstrainedBuiltin`.

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


More information about the cfe-commits mailing list