This is an archive of the discontinued LLVM Phabricator instance.

[ARM] v8.3-a complex number support
ClosedPublic

Authored by samparker on Aug 16 2017, 6:29 AM.

Details

Summary

New instructions are added to AArch32 and AArch64 to aid floating-point multiplication and addition of complex numbers, where the complex numbers are packed in a vector register as a
pair of elements. The Imaginary part of the number is placed in the more significant element, and the Real part of the number is placed in the less significant element.

Diff Detail

Repository
rL LLVM

Event Timeline

samparker created this revision.Aug 16 2017, 6:29 AM
samparker updated this revision to Diff 113852.Sep 5 2017, 7:13 AM

Refactored the complex rotation operands.

SjoerdMeijer added inline comments.
test/MC/ARM/neon-complex.s
12 ↗(On Diff #113852)

I think we also want to have negative tests for -neon

21 ↗(On Diff #113852)

I think we want to have the full error message here, i.e. which extension is missing.

samparker updated this revision to Diff 117126.Sep 29 2017, 5:16 AM

Hi Sjoerd,

Thanks for taking a look at this. I've now added a couple of negative test lines for neon and I've also updated the error message to print the required architecture.

cheers,
sam

SjoerdMeijer accepted this revision.Sep 29 2017, 5:36 AM

Looks good to me. Thanks.

This revision is now accepted and ready to land.Sep 29 2017, 5:36 AM
This revision was automatically updated to reflect the committed changes.