This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SVE2] Add the SVE2.1 dupq and extq instructions
ClosedPublic

Authored by david-arm on Nov 7 2022, 9:38 AM.

Details

Summary

This patch adds the assembly/disassembly for the following instructions:

dupq : Broadcast indexed element within each quadword vector segment (unpredicated)
extq : Extract vector segment from each pair of quadword vector segments

The reference can be found here:
https://developer.arm.com/documentation/ddi0602/2022-09

Diff Detail

Event Timeline

david-arm created this revision.Nov 7 2022, 9:38 AM
Herald added a project: Restricted Project. · View Herald Transcript
david-arm requested review of this revision.Nov 7 2022, 9:38 AM
Herald added a project: Restricted Project. · View Herald TranscriptNov 7 2022, 9:38 AM
paulwalker-arm accepted this revision.Nov 7 2022, 10:47 AM

One request but otherwise looks good.

llvm/lib/Target/AArch64/SVEInstrFormats.td
9296

Please can this be 5-bit to cover 20-16 so there's no hole in the instruction. The current name works for me but if you want to change it then that's fine also.

9303–9304

FYI: This is what prompted my previous comment. I know there's no bug here but it just looks wrong index being 4-bit and yet we only passing in 3 ? to the instruction class.

This revision is now accepted and ready to land.Nov 7 2022, 10:47 AM
david-arm marked 2 inline comments as done.Nov 8 2022, 2:25 AM

Thanks @paulwalker-arm, I addressed your comments before landing the patch!