[Openmp-commits] [openmp] [openmp] Add support for arm64ec to libomp (PR #176151)

David Truby via Openmp-commits openmp-commits at lists.llvm.org
Thu Jan 15 07:29:40 PST 2026


================
@@ -134,7 +135,7 @@ kmp_uint64 __kmp_test_then_and64(volatile kmp_uint64 *p, kmp_uint64 d) {
   return old_value;
 }
 
-#if KMP_ARCH_AARCH64 && KMP_COMPILER_MSVC
+#if (KMP_ARCH_AARCH64 && KMP_COMPILER_MSVC) || KMP_ARCH_ARM64EC
----------------
DavidTruby wrote:

Having dug a bit deeper; I think the functions passed into here are cast to `microtask_t` from non-variadic functions, so we can't just assume they're variadic. So just using the C here is probably wrong as you said. 

However, I believe they're _always_ cast from non-variadic functions to microtask_t. So in an asm implementation, we can just assume they're following the standard non-variadic ABI. I can have a go at implementing that to fix this issue.

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


More information about the Openmp-commits mailing list