This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SVE2] Asm: add unpredicated integer multiply instructions
ClosedPublic

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

Details

Summary

Add support for the following instructions:

  • MUL (indexed and unpredicated vectors forms)
  • SQDMULH (indexed and unpredicated vectors forms)
  • SQRDMULH (indexed and unpredicated vectors forms)
  • SMULH (unpredicated, predicated form added in SVE)
  • UMULH (unpredicated, predicated form added in SVE)
  • PMUL (unpredicated)

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 14 2019, 8:14 AM
This revision is now accepted and ready to land.May 15 2019, 1:09 AM
rovka accepted this revision.May 15 2019, 1:40 AM

LGTM with minor nits.

test/MC/AArch64/SVE2/mul-diagnostics.s
57 ↗(On Diff #199449)

Nitpick: Add a test with all registers .b (ditto for sqdmulh and sqrdmulh).

test/MC/AArch64/SVE2/sqdmulh-diagnostics.s
57 ↗(On Diff #199449)

Nitpick: These are all for the indexed form, maybe you should have some for the unindexed version as well (like the ones for e.g. umulh)? Ditto for sqrdmulh.

LGTM with minor nits.

I'll add those tests before merging if that's ok. I can update the patch otherwise

Thanks for review!

A LGTM with minor nits usually means no need for another diff/review but just go for it. ;-)

This revision was automatically updated to reflect the committed changes.