[clang] [CIR][AArch64] Lower NEON vrsra_n intrinsics (PR #191129)
Andrzej WarzyĆski via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 9 04:08:17 PDT 2026
================
@@ -2544,8 +2560,27 @@ CIRGenFunction::emitAArch64BuiltinExpr(unsigned builtinID, const CallExpr *expr,
case NEON::BI__builtin_neon_vsliq_n_v:
case NEON::BI__builtin_neon_vsra_n_v:
case NEON::BI__builtin_neon_vsraq_n_v:
+ cgm.errorNYI(expr->getSourceRange(),
+ std::string("unimplemented AArch64 builtin call: ") +
+ getContext().BuiltinInfo.getName(builtinID));
+ return mlir::Value{};
case NEON::BI__builtin_neon_vrsra_n_v:
- case NEON::BI__builtin_neon_vrsraq_n_v:
+ case NEON::BI__builtin_neon_vrsraq_n_v: {
----------------
banach-space wrote:
In the implementation in the incubator, https://github.com/llvm/clangir/blob/main/clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp#L4857
there are some useful comments regarding the implementation (e.g. "why is the shift amount negated"? "why do use use signed integers?"). Could you provide similar explanation?
https://github.com/llvm/llvm-project/pull/191129
More information about the cfe-commits
mailing list