Skip to content

[clang-cl] arm_neon.h: cannot mangle built-in type __mfp8 #124907

@tycho

Description

@tycho

On the release/20.x and main branches, when targeting ARM64 on clang-cl (--target=aarch64-pc-windows-msvc --driver-mode=cl):

https://gcc.godbolt.org/z/Mx1Y8hze4

In file included from <source>:1:
/opt/compiler-explorer/clang-trunk-20250129/lib/clang/20/include/arm_neon.h(41124,1): error: cannot mangle this built-in type:  __mfp8 yet
 41124 | __ai __attribute__((target("fp8,neon"))) bfloat16x8_t vcvt1_bf16_mf8_fpm(mfloat8x8_t __p0, fpm_t __p1) {
       | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 41125 |   bfloat16x8_t __ret;
       |   ~~~~~~~~~~~~~~~~~~~
 41126 |   __ret = (bfloat16x8_t) __builtin_neon_vcvt1_bf16_mf8_fpm(__p0, __p1);
       |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 41127 |   return __ret;
       |   ~~~~~~~~~~~~~
 41128 | }
       | ~
/opt/compiler-explorer/clang-trunk-20250129/lib/clang/20/include/arm_neon.h(124,14): note: expanded from macro '__ai'
  124 | #define __ai static __inline__ __attribute__((__always_inline__, __nodebug__))
      |              ^
1 error generated.

Just including <arm_neon.h> causes a compile error, due to the __mfp8 type. This prevents compiling any Windows ARM64 code that includes the intrinsics header.

Can someone get this fixed before LLVM 20 release please?

Metadata

Metadata

Labels

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions