Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

arm_neon.h doesn't support vmull_p64 on aarch32 armv8-a+crypto #37601

Open Quuxplusone opened 6 years ago

Quuxplusone commented 6 years ago
Bugzilla Link PR38628
Status NEW
Importance P normal
Reported by Jonathan Lennox (lennox@cs.columbia.edu)
Reported on 2018-08-18 16:37:44 -0700
Last modified on 2018-08-18 17:02:50 -0700
Version unspecified
Hardware Other All
CC llvm-bugs@lists.llvm.org
Fixed by commit(s)
Attachments
Blocks
Blocked by
See also
According to the ARM C Language Extensions (version 2.1, section 12.3.13,
Crypto Intrinsics):

poly128_t vmull_p64 (poly64_t, poly64_t);
Performs widening polynomial multiplication on double-words low part. Available
on ARMv8 AArch32 and AArch64.

poly128_t vmull_high_p64 (poly64x2_t, poly64x2_t);
Performs widening polynomial multiplication on double-words high part.
Available on ARMv8 AArch32 and AArch64.

However, clang's arm_neon.h incorrectly restricts vmull_p64 support to AArch64
only.  (Additionally, it does *not* restrict it to __ARM_FEATURE_CRYPTO).
Quuxplusone commented 6 years ago

ACLE 2.0 (the version clang claims support for) has the same requirement text; section 12.3.14 of that version of the document.