[clang] [CIR] max-across-vector (vmaxv_*) intrinsics (PR #194401)

Andrzej WarzyƄski via cfe-commits cfe-commits at lists.llvm.org
Tue May 5 03:59:02 PDT 2026


================
@@ -2732,10 +2725,18 @@ CIRGenFunction::emitAArch64BuiltinExpr(unsigned builtinID, const CallExpr *expr,
   case NEON::BI__builtin_neon_vsqrtq_v:
     assert(!cir::MissingFeatures::emitConstrainedFPCall());
     return emitNeonCall(cgm, builder, {ty}, ops, "sqrt", ty, loc);
+  case NEON::BI__builtin_neon_vmaxv_f16: {
+    cir::VectorType vecTy = cir::VectorType::get(fP16Ty, 4);
+    return emitNeonCall(cgm, builder, {vecTy}, ops, "aarch64.neon.fmaxv",
+                        fP16Ty, loc);
+  }
+  case NEON::BI__builtin_neon_vmaxvq_f16: {
+    cir::VectorType vecTy = cir::VectorType::get(fP16Ty, 8);
+    return emitNeonCall(cgm, builder, {vecTy}, ops, "aarch64.neon.fmaxv",
+                        fP16Ty, loc);
+  }
----------------
banach-space wrote:

Please move these cases back to their original location - we want to preserve consistency with https://github.com/llvm/llvm-project/blob/main/clang/lib/CodeGen/TargetBuiltins/ARM.cpp

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


More information about the cfe-commits mailing list