This is an archive of the discontinued LLVM Phabricator instance.

[Clang] Add vcmla and rotated variants for Arm ACLE.
ClosedPublic

Authored by fhahn on Dec 9 2020, 3:48 AM.

Details

Summary

This patch adds vcmla and the rotated variants as defined in
"Arm Neon Intrinsics Reference for ACLE Q3 2020" [1]

The *_lane_* are still missing, but they can be added separately.

This patch only adds the builtin mapping for AArch64.

[1] https://developer.arm.com/documentation/ihi0073/latest

Diff Detail

Event Timeline

fhahn created this revision.Dec 9 2020, 3:48 AM
fhahn requested review of this revision.Dec 9 2020, 3:48 AM
Herald added a project: Restricted Project. · View Herald TranscriptDec 9 2020, 3:48 AM
Herald added a subscriber: cfe-commits. · View Herald Transcript

Looks fine to me except for one weird quirk that I don't think should be there.

clang/lib/CodeGen/CGBuiltin.cpp
5237

This line looks identical to the one above.

fhahn updated this revision to Diff 310632.Dec 9 2020, 1:17 PM

Updated to use new VCMLA_ROTS multiclass to define rotated variants.

fhahn added inline comments.Dec 9 2020, 1:19 PM
clang/lib/CodeGen/CGBuiltin.cpp
5237

Yes I accidentally copied this line. It's gone now.

fhahn updated this revision to Diff 310799.Dec 10 2020, 1:37 AM

Loop over rotation variants.

t.p.northover accepted this revision.Dec 10 2020, 8:29 AM

That's a nice improvement. Still LGTM.

This revision is now accepted and ready to land.Dec 10 2020, 8:29 AM
This revision was landed with ongoing or failed builds.Dec 10 2020, 8:54 AM
This revision was automatically updated to reflect the committed changes.