================
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits