Commit 5d221d9cd63 for nodejs
commit 5d221d9cd633f9968853509f07d7a9fc0b248f46
Author: Joyee Cheung <joyeec9h3@gmail.com>
Date: Fri Sep 18 15:02:28 2026 +0200
deps: V8: cherry-pick 820f3d72a638
Original commit message:
[simd] Disable SVE implementation of array search for older ClangCL
The Microsoft C++ ABI mangler in older ClangCL cannot mangle
these built-ins. Disable SVE in this case.
Refs: https://github.com/llvm/llvm-project/issues/196170
Refs: https://github.com/nodejs/node/pull/65161
Change-Id: I35e49dd4bfc0617bfa31cb7e3af1a475b4fb1bef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8420284
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/main@{#109945}
Refs: https://github.com/v8/v8/commit/820f3d72a638359ebc81afff385d3de6f0180778
Signed-off-by: Joyee Cheung <joyeec9h3@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/65161
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
diff --git a/common.gypi b/common.gypi
index 58d2d288f7f..162e549e980 100644
--- a/common.gypi
+++ b/common.gypi
@@ -44,7 +44,7 @@
# Reset this number to 0 on major V8 upgrades.
# Increment by one for each non-official patch applied to deps/v8.
- 'v8_embedder_string': '-node.16',
+ 'v8_embedder_string': '-node.17',
##### V8 defaults for Node.js #####
diff --git a/deps/v8/src/objects/simd.cc b/deps/v8/src/objects/simd.cc
index be351a7b80c..64f76803f17 100644
--- a/deps/v8/src/objects/simd.cc
+++ b/deps/v8/src/objects/simd.cc
@@ -349,8 +349,11 @@ uintptr_t fast_search_avx(T* array, uintptr_t array_len, uintptr_t index,
#endif // ifdef __SSE3__
// When built with other toolchains, do not count on it to expose
-// __builtin_sve_* on a per-function basis. Fallback to Neon.
-#if defined(NEON64) && defined(__clang__)
+// __builtin_sve_* on a per-function basis. Clang only supports
+// mangling SVE types with the Microsoft C++ ABI since version 21.
+// Fallback to Neon in cases where SVE is not supported.
+#if defined(NEON64) && defined(__clang__) && \
+ (!defined(V8_TARGET_OS_WIN) || __clang_major__ >= 21)
#define V8_ENABLE_SIMD_SVE 1
template <typename ScalarType>
@@ -631,7 +634,8 @@ TARGET_SVE inline uintptr_t fast_search_sve(T* array, uintptr_t array_len,
return no_match;
}
-#endif // defined(NEON64) && defined(__clang__)
+#endif // defined(NEON64) && defined(__clang__) &&
+ // (!defined(V8_TARGET_OS_WIN) || __clang_major__ >= 21)
#undef IS_CLANG_WIN
#undef VECTORIZED_LOOP_Neon