Issue 52964
Summary MSVC-like ARM64 intrinsics missing for clang-cl
Labels new issue
Assignees
Reporter DoDoENT
    I'm trying to compile [XNNPack](https://github.com/google/XNNPACK) using clang-cl on Windows on ARM.

It fails with errors like:

```
clang-cl: warning: argument unused during compilation: '/std:c++latest' [-Wunused-command-line-argument]
In file included from Z:/Work/Microblink/core-xnnpack-package/dependencies/XNNPACK/src/init.c:47:
In file included from Z:/Work/Microblink/core-xnnpack-package/dependencies/XNNPACK/src\xnnpack/params-init.h:23:
In file included from Z:/Work/Microblink/core-xnnpack-package/dependencies/FP16/include\fp16.h:5:
In file included from Z:/Work/Microblink/core-xnnpack-package/dependencies/FP16/include\fp16/fp16.h:17:
Z:/Work/Microblink/core-xnnpack-package/dependencies/FP16/include\fp16/bitcasts.h(28,9): error: implicit declaration of function '_CopyFloatFromInt32' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        return _CopyFloatFromInt32((__int32) w);
               ^
Z:/Work/Microblink/core-xnnpack-package/dependencies/FP16/include\fp16/bitcasts.h(46,20): error: implicit declaration of function '_CopyInt32FromFloat' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        return (uint32_t) _CopyInt32FromFloat(f);
                          ^
Z:/Work/Microblink/core-xnnpack-package/dependencies/FP16/include\fp16/bitcasts.h(64,9): error: implicit declaration of function '_CopyDoubleFromInt64' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        return _CopyDoubleFromInt64((__int64) w);
               ^
Z:/Work/Microblink/core-xnnpack-package/dependencies/FP16/include\fp16/bitcasts.h(82,20): error: implicit declaration of function '_CopyInt64FromDouble' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        return (uint64_t) _CopyInt64FromDouble(f);
                          ^
4 errors generated.
ninja: build stopped: subcommand failed.
```

It appears that ARM64 intrinsics, such as `_CopyFloatFromInt32` and similar are MS-specific. ARM64 intrinsics supported by the MSVC are documented [here](https://docs.microsoft.com/en-us/cpp/intrinsics/arm64-intrinsics?view=msvc-170).

Do you have any plans on supporting those intrinsics in `clang-cl` frontend?
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to