[clang] [CIR][AArch64] Upstream Neon vget_lane/vgetq_lane builtins (PR #186119)

Andy Kaylor via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 23 10:53:09 PDT 2026


================
@@ -2724,33 +2724,111 @@ 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:
+    ops[0] = builder.createBitcast(ops[0], cir::VectorType::get(uInt8Ty, 8));
----------------
andykaylor wrote:

I don't understand why the definition is casting this to signed, but given that it is I would expect that cast to have already been handled in when we visit the cast expression. Are we intentionally undoing that cast in our codegen of the builtin?

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


More information about the cfe-commits mailing list