This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SVE2] Asm: support Floating Point Widening Multiply-Add
ClosedPublic

Authored by c-rhodes on May 24 2019, 6:12 AM.

Details

Summary

Patch adds support for the indexed and unpredicated vectors forms of the
FMLALB, FMLALT, FMLSLB and FMLSLT instructions.

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 24 2019, 6:12 AM
chill added inline comments.May 24 2019, 8:04 AM
test/MC/AArch64/SVE/movprfx-diagnostics.s
114 ↗(On Diff #201218)

Stray patch?

c-rhodes added inline comments.May 24 2019, 8:44 AM
test/MC/AArch64/SVE/movprfx-diagnostics.s
114 ↗(On Diff #201218)

This is just testing indexed + movprfxable gives a diagnostic. I understand it appears to be a rogue patch given the instruction is unrelated but the reason for adding it here was we noticed there were no tests for this instruction form in movprfx-diagnostics, initially thinking indexed + movprfxable was new to SVE2 until realising the SVE SDOT instruction is similar, so a test was added for that.

chill added inline comments.May 24 2019, 9:29 AM
test/MC/AArch64/SVE2/fmlalb-diagnostics.s
42 ↗(On Diff #201218)

Missing invalid width tests for vectors (non-indexed) version, e.g.:

fmlalb z0.s, z1.d, z2.d
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: fmlalb z0.s, z1.d, z2.d
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

Likewise for fmlslb, fmlslt, and fmlalt.

chill accepted this revision.May 28 2019, 1:54 AM

LGTM. But, please, consider the extra tests.

This revision is now accepted and ready to land.May 28 2019, 1:54 AM
This revision was automatically updated to reflect the committed changes.
c-rhodes marked an inline comment as done.May 29 2019, 1:52 AM