Page MenuHomePhabricator

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

Authored by c-rhodes on Tue, May 14, 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.Tue, May 14, 8:14 AM
This revision is now accepted and ready to land.Wed, May 15, 1:09 AM
rovka accepted this revision.Wed, May 15, 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.