https://github.com/Ko496-glitch created https://github.com/llvm/llvm-project/pull/198216
Part of #185382 Added the vqshrn* variants. Moved the test cases to [intrinsics.c](https://github.com/llvm/llvmproject/pull/clang/test/CodeGen/AArch64/neon/intrinsics.c) Removed the test cases from [neon-intrinsics.c](https://github.com/llvm/llvmproject/pull/clang/test/CodeGen/AArch64/neon/intrinsics.c) >From 096eb4de42c9f8adb5251f1347bb275872d480d7 Mon Sep 17 00:00:00 2001 From: Kartik Ohlan <[email protected]> Date: Sun, 17 May 2026 18:02:51 -0400 Subject: [PATCH] Implemented _n_s and _n_u --- clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp b/clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp index 294e87168b0e5..45c6c67d6b330 100644 --- a/clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp +++ b/clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp @@ -2553,8 +2553,6 @@ CIRGenFunction::emitAArch64BuiltinExpr(unsigned builtinID, const CallExpr *expr, case NEON::BI__builtin_neon_vrecpsd_f64: case NEON::BI__builtin_neon_vrecpsh_f16: case NEON::BI__builtin_neon_vqshrun_n_v: - case NEON::BI__builtin_neon_vqrshrun_n_v: - case NEON::BI__builtin_neon_vqshrn_n_v: case NEON::BI__builtin_neon_vrshrn_n_v: case NEON::BI__builtin_neon_vqrshrn_n_v: case NEON::BI__builtin_neon_vrndah_f16: @@ -2597,6 +2595,20 @@ CIRGenFunction::emitAArch64BuiltinExpr(unsigned builtinID, const CallExpr *expr, std::string("unimplemented AArch64 builtin call: ") + getContext().BuiltinInfo.getName(builtinID)); return mlir::Value{}; + case NEON::BI__builtin_neon_vqrshrun_n_v: { + cir::VectorType argTy = builder.getExtendedOrTruncatedElementVectorType( + ty, true, true); + return emitNeonCall(cgm, builder, {argTy, sInt32Ty}, ops, + "aarch64.neon.sqrshrun", ty, loc); + } + case NEON::BI__builtin_neon_vqshrn_n_v: { + cir::VectorType argTy = + builder.getExtendedOrTruncatedElementVectorType(ty, true, !usgn); + llvm::StringRef intrName = + usgn ? "aarch64.neon.uqrshrn" : "aarch64.neon.sqrshrn"; + return emitNeonCall(cgm, builder, {argTy, sInt32Ty}, ops, intrName, ty, + loc); + } case NEON::BI__builtin_neon_vcvt_f64_v: case NEON::BI__builtin_neon_vcvtq_f64_v: ops[0] = builder.createBitcast(ops[0], ty); _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
