This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Add ARMv8.2-A FP16 vector intrinsics
ClosedPublic

Authored by az on Apr 25 2017, 4:37 PM.

Details

Summary

ARMv8.2-A introduces half-precision floating point data processing. This patch adds the fp16 neon vector intrinsics for this architecture as described in the ARM ACLE document.

Only the intrinsic work is done here. We still need more work to add support for an fp16 data type that is not storage-only so that the backend won't promote the instructions generated by these intrinsics. This patch is a first step toward getting some support for fp16 vector arithmetic on ARMv8.2-A.

Diff Detail

Event Timeline

az created this revision.Apr 25 2017, 4:37 PM
SjoerdMeijer edited edge metadata.Apr 27 2017, 9:21 AM

Hi Abderrazek,
This looks very sensible to me. But I will go over it again just to see if we haven't missed anything (it's a big patch). Not sure though how the added f32 intrinsic tests help with the review, but maybe I am missing something...
Cheers,
Sjoerd.

clang/include/clang/Basic/arm_neon.td
1673

Nit pick: use spaces for indentation instead of tabs.

az updated this revision to Diff 99076.May 15 2017, 4:11 PM

Removed unnecessary f32 intrinsic tests; removed tabs

az marked an inline comment as done.May 15 2017, 4:13 PM
SjoerdMeijer accepted this revision.May 30 2017, 2:14 AM

Looks good to me.

This revision is now accepted and ready to land.May 30 2017, 2:14 AM