================
@@ -2212,33 +2219,99 @@ CIRGenFunction::emitAArch64BuiltinExpr(unsigned
builtinID, const CallExpr *expr,
case NEON::BI__builtin_neon_vset_lane_mf8:
case NEON::BI__builtin_neon_vsetq_lane_mf8:
case NEON::BI__builtin_neon_vsetq_lane_f64:
+ cgm.errorNYI(expr->getSourceRange(),
+ std::string("unimplemented AArch64 builtin call: ") +
+ getContext().BuiltinInfo.getName(builtinID));
+ return mlir::Value{};
+
case NEON::BI__builtin_neon_vget_lane_i8:
+ return emitAArch64GetLaneBuiltinExpr(builder, loc, ops[0],
+ emitScalarExpr(expr->getArg(1)));
case NEON::BI__builtin_neon_vdupb_lane_i8:
+ cgm.errorNYI(expr->getSourceRange(),
+ std::string("unimplemented AArch64 builtin call: ") +
+ getContext().BuiltinInfo.getName(builtinID));
+ return mlir::Value{};
+
case NEON::BI__builtin_neon_vgetq_lane_i8:
+ return emitAArch64GetLaneBuiltinExpr(builder, loc, ops[0],
+ emitScalarExpr(expr->getArg(1)));
case NEON::BI__builtin_neon_vdupb_laneq_i8:
case NEON::BI__builtin_neon_vget_lane_mf8:
case NEON::BI__builtin_neon_vdupb_lane_mf8:
case NEON::BI__builtin_neon_vgetq_lane_mf8:
case NEON::BI__builtin_neon_vdupb_laneq_mf8:
+ cgm.errorNYI(expr->getSourceRange(),
+ std::string("unimplemented AArch64 builtin call: ") +
+ getContext().BuiltinInfo.getName(builtinID));
+ return mlir::Value{};
case NEON::BI__builtin_neon_vget_lane_i16:
+ return emitAArch64GetLaneBuiltinExpr(builder, loc, ops[0],
+ emitScalarExpr(expr->getArg(1)));
case NEON::BI__builtin_neon_vduph_lane_i16:
+ cgm.errorNYI(expr->getSourceRange(),
+ std::string("unimplemented AArch64 builtin call: ") +
+ getContext().BuiltinInfo.getName(builtinID));
+ return mlir::Value{};
case NEON::BI__builtin_neon_vgetq_lane_i16:
+ return emitAArch64GetLaneBuiltinExpr(builder, loc, ops[0],
+ emitScalarExpr(expr->getArg(1)));
case NEON::BI__builtin_neon_vduph_laneq_i16:
+ cgm.errorNYI(expr->getSourceRange(),
+ std::string("unimplemented AArch64 builtin call: ") +
+ getContext().BuiltinInfo.getName(builtinID));
+ return mlir::Value{};
case NEON::BI__builtin_neon_vget_lane_i32:
+ return emitAArch64GetLaneBuiltinExpr(builder, loc, ops[0],
+ emitScalarExpr(expr->getArg(1)));
case NEON::BI__builtin_neon_vdups_lane_i32:
case NEON::BI__builtin_neon_vdups_lane_f32:
+ cgm.errorNYI(expr->getSourceRange(),
+ std::string("unimplemented AArch64 builtin call: ") +
+ getContext().BuiltinInfo.getName(builtinID));
+ return mlir::Value{};
case NEON::BI__builtin_neon_vgetq_lane_i32:
+ return emitAArch64GetLaneBuiltinExpr(builder, loc, ops[0],
+ emitScalarExpr(expr->getArg(1)));
case NEON::BI__builtin_neon_vdups_laneq_i32:
+ cgm.errorNYI(expr->getSourceRange(),
+ std::string("unimplemented AArch64 builtin call: ") +
+ getContext().BuiltinInfo.getName(builtinID));
+ return mlir::Value{};
case NEON::BI__builtin_neon_vget_lane_i64:
+ return emitAArch64GetLaneBuiltinExpr(builder, loc, ops[0],
+ emitScalarExpr(expr->getArg(1)));
case NEON::BI__builtin_neon_vdupd_lane_i64:
case NEON::BI__builtin_neon_vdupd_lane_f64:
+ cgm.errorNYI(expr->getSourceRange(),
+ std::string("unimplemented AArch64 builtin call: ") +
+ getContext().BuiltinInfo.getName(builtinID));
+ return mlir::Value{};
case NEON::BI__builtin_neon_vgetq_lane_i64:
+ return emitAArch64GetLaneBuiltinExpr(builder, loc, ops[0],
+ emitScalarExpr(expr->getArg(1)));
case NEON::BI__builtin_neon_vdupd_laneq_i64:
+ cgm.errorNYI(expr->getSourceRange(),
+ std::string("unimplemented AArch64 builtin call: ") +
+ getContext().BuiltinInfo.getName(builtinID));
+ return mlir::Value{};
case NEON::BI__builtin_neon_vget_lane_f32:
+ return emitAArch64GetLaneBuiltinExpr(builder, loc, ops[0],
+ emitScalarExpr(expr->getArg(1)));
case NEON::BI__builtin_neon_vget_lane_f64:
+ return emitAArch64GetLaneBuiltinExpr(builder, loc, ops[0],
+ emitScalarExpr(expr->getArg(1)));
case NEON::BI__builtin_neon_vgetq_lane_f32:
+ return emitAArch64GetLaneBuiltinExpr(builder, loc, ops[0],
+ emitScalarExpr(expr->getArg(1)));
case NEON::BI__builtin_neon_vdups_laneq_f32:
+ cgm.errorNYI(expr->getSourceRange(),
+ std::string("unimplemented AArch64 builtin call: ") +
+ getContext().BuiltinInfo.getName(builtinID));
+ return mlir::Value{};
case NEON::BI__builtin_neon_vgetq_lane_f64:
+ return emitAArch64GetLaneBuiltinExpr(builder, loc, ops[0],
+ emitScalarExpr(expr->getArg(1)));
----------------
xiongzile wrote:
Don't have to write your implementation every case branch I think...
https://github.com/llvm/llvm-project/pull/186119
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits