This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SVE][NFC] Add streaming mode SVE tests
ClosedPublic

Authored by hassnaa-arm on Oct 31 2022, 10:48 AM.

Details

Summary

Add sve-fixed-length testing files and enable streaming mode flag for:
addressing-modes.ll
and-combine.ll
bitcast.ll
reshuffle.ll
rev.ll
sdiv-pow2.ll
splat-vector.ll
int-extends.ll

Diff Detail

Event Timeline

hassnaa-arm created this revision.Oct 31 2022, 10:48 AM
hassnaa-arm requested review of this revision.Oct 31 2022, 10:48 AM
Herald added a project: Restricted Project. · View Herald TranscriptOct 31 2022, 10:48 AM
Matt added a subscriber: Matt.Oct 31 2022, 1:21 PM
sdesmalen added inline comments.Nov 1 2022, 11:02 AM
llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-trunc.ll
611 ↗(On Diff #472070)

Not sure if this has been addressed in one of your other patches, but this instruction doesn't look streaming compatible?

Remove testing files that have invalid instructions and need changes.

hassnaa-arm edited the summary of this revision. (Show Details)Nov 2 2022, 4:31 AM
david-arm added inline comments.Nov 8 2022, 6:26 AM
llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-addressing-modes.ll
14 ↗(On Diff #472573)

These tests contain gathers and scatters that are illegal in streaming mode, but I imagine that D136858 should fix that?

llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-extends.ll
106

This is testing 512-bit vectors, but I think that @sext_v32i8_v32i16 (256-bits) should be enough. Can you remove all tests in this file where we're testing extends from vectors > 256 bits please? I think that should make the file a lot smaller!

139

This is testing 1024-bit vectors, but I think that @sext_v32i8_v32i16 (256-bits) should be enough. Can you remove all tests in this file where we're testing extends from vectors > 256 bits please? I think that should make the file a lot smaller!

270

This is testing 512-bit vectors, but I think that @sext_v32i8_v32i32 (256-bits) should be enough. Can you remove all tests in this file where we're testing extends from vectors > 256 bits please? I think that should make the file a lot smaller!

521

Same here - I think you can remove this, since v32i16 > 256 bits.

554

Same here - I think you can remove this, since v32i16 > 256 bits.

685

Same here - I think you can remove this, since v32i16 > 256 bits.

786

Same here - I think you can remove this, since v16i32 > 256 bits.

819

Same here - I think you can remove this, since v32i32 > 256 bits.

915

Same here - I think you can remove this, since v64i8 > 256 bits.

948

Same here - I think you can remove this, since v128i8 > 256 bits.

1079

Same here - I think you can remove this, since v64i8 > 256 bits.

Sorry @hassnaa-arm, could you change the title of the patch to distinguish it from the other streaming-mode patches, particularly since it doesn't change any code. For example,

[AArch64][SVE][NFC] Add streaming mode SVE tests

I added the [NFC] marker because there are no code changes and that helps reviewers or people looking through git logs.

hassnaa-arm retitled this revision from [AArch64-SVE]: Force generating code compatible to streaming mode to [AArch64][SVE][NFC] Add streaming mode SVE tests.Nov 9 2022, 4:21 AM
hassnaa-arm marked 12 inline comments as done.

Remove unneeded test cases

llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-addressing-modes.ll
14 ↗(On Diff #472573)

Sorry, yes D136858 should fix that.
I will move this testing file to D136858 patch.

david-arm accepted this revision.Nov 9 2022, 6:50 AM

LGTM! Thanks for making the changes @hassnaa-arm.

llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-rev.ll
230

Wow, this code quality is impressively bad! :) I think we'd be better off just scalarising this and marking as EXPAND, but that's not a priority right now.

llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-splat-vector.ll
22

I think it's definitely worth trying to improve the codegen for these tests in a future patch because it's a common pattern and we know we can just use the SVE dup instructions for these.

This revision is now accepted and ready to land.Nov 9 2022, 6:50 AM
This revision was landed with ongoing or failed builds.Nov 10 2022, 5:51 AM
This revision was automatically updated to reflect the committed changes.