This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SVE2] Asm: add PMULLB/PMULLT instructions
ClosedPublic

Authored by c-rhodes on May 20 2019, 8:14 AM.

Details

Summary

This patch adds support for the polynomial multiplication instructions
PMULLB/PMULLT. The 64-bit source and 128-bit destination element
variants are enabled with crypto extensions (+sve2-aes), similar to the
NEON PMULL2 instruction. All other variants are enabled with +sve2.

The specification can be found here:
https://developer.arm.com/docs/ddi0602/latest

Diff Detail

Repository
rL LLVM

Event Timeline

c-rhodes created this revision.May 20 2019, 8:14 AM
SjoerdMeijer accepted this revision.May 21 2019, 1:28 AM

LGTM

test/MC/AArch64/SVE2/pmullb-128.s
3 ↗(On Diff #200290)

More explicit would be to add -mattr=-sve2-aes here.
But I guess it doesn't matter much, and to be consistent other tests would need updating too, e.g. -mattr=-sve2 would need to be added to CHECK-ERROR tests in other files.

This revision is now accepted and ready to land.May 21 2019, 1:28 AM
c-rhodes added inline comments.May 21 2019, 1:37 AM
test/MC/AArch64/SVE2/pmullb-128.s
3 ↗(On Diff #200290)

That's a good point, I followed the approach taken for SVE in writing these tests and the feature isn't explicitly disabled there either. As you say, the other tests will also need updating and that is quite a large change, how about I create a patch for that and put it up once all the instructions are merged?

SjoerdMeijer added inline comments.May 21 2019, 1:45 AM
test/MC/AArch64/SVE2/pmullb-128.s
3 ↗(On Diff #200290)

Yep, that sounds like a plan. But it's definitely a nitpick, and as it's a large change, leaving it as is would be okay I think. But if you don't mind changing it, that's fine too of course.

This revision was automatically updated to reflect the committed changes.