]> granicus.if.org Git - clang/commit
[AArch64] Implement __jcvt intrinsic from Armv8.3-A
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 16 Jul 2019 09:27:39 +0000 (09:27 +0000)
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 16 Jul 2019 09:27:39 +0000 (09:27 +0000)
commit7bb8f7b06a98fc389c17267b9dc028b11bffbf92
tree10d45099739f394d2febc42f1e723d17045786f8
parentf9002194bb0f7ba2f6b3d9715d8083a78cbd1e8f
[AArch64] Implement __jcvt intrinsic from Armv8.3-A

The jcvt intrinsic defined in ACLE [1] is available when ARM_FEATURE_JCVT is defined.

This change introduces the AArch64 intrinsic, wires it up to the instruction and a new clang builtin function.
The __ARM_FEATURE_JCVT macro is now defined when an Armv8.3-A or higher target is used.
I've implemented the target detection logic in Clang so that this feature is enabled for architectures from armv8.3-a onwards (so -march=armv8.4-a also enables this, for example).

make check-all didn't show any new failures.

[1] https://developer.arm.com/docs/101028/latest/data-processing-intrinsics

Differential Revision: https://reviews.llvm.org/D64495

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@366197 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/BuiltinsAArch64.def
lib/Basic/Targets/AArch64.cpp
lib/Basic/Targets/AArch64.h
lib/CodeGen/CGBuiltin.cpp
lib/Headers/arm_acle.h
test/CodeGen/arm_acle.c
test/CodeGen/builtins-arm64.c