This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SME]: Add missing Ops that need custom-lowering in streaming mode.
ClosedPublic

Authored by hassnaa-arm on Jan 12 2023, 3:54 AM.

Details

Summary

Add missing Ops and update related testing files.

Diff Detail

Event Timeline

hassnaa-arm created this revision.Jan 12 2023, 3:54 AM
Herald added a project: Restricted Project. · View Herald TranscriptJan 12 2023, 3:54 AM
hassnaa-arm requested review of this revision.Jan 12 2023, 3:54 AM
Herald added a project: Restricted Project. · View Herald TranscriptJan 12 2023, 3:54 AM

Code format

Matt added a subscriber: Matt.Jan 25 2023, 8:57 AM

Hi @hassnaa-arm, it seems there is some missing test coverage for some of the operations, which wasn't that easy to spot because this patch is quite big. It might help to split up this patch into smaller patches so that at least the sign-extend-inreg changes are in a separate patch, since it touches a number of test files.

It might also help to split out some of the others changes:

  1. selects (since there are code changes to the LowerSELECT)
  2. fp extends (since there are code changes to the LowerFP_EXTEND)

You could choose to keep this patch for the bitreverse/bswap/vecreduce/splice/cttz (with added tests)

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
1759

There are tests missing for bitreverse.

1765

There are tests missing for CTTZ

1815

There are tests missing in this patch for the vecreduce_* operations.

1827

there are tests missing for vector_splice.

llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-mulh.ll
19 ↗(On Diff #488593)

I guess this change is caused by the sign-extend-inreg, maybe it's worth pulling that out into a separate patch?

hassnaa-arm added inline comments.Feb 2 2023, 4:32 AM
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
1759

about this comment and other similar comments, do you mean that some test cases are missing ?
I want to clarify that, some operations are already custom-lowered in other places, so it's expected that custom-lowering them in this function won't affect their related testing files.

Split out custom-lowering sign-extend-inreg and related testing files to another patch

Split out custom-lower select/fp_extend and related testing files into a new patch

The affected testing files are related to custom-lowering ISD::VSELECT and ISD::BITREVERSE

Update by main branch.

Rerun testing files after updating the patch by main branch.

sdesmalen accepted this revision.Feb 13 2023, 3:50 AM
This revision is now accepted and ready to land.Feb 13 2023, 3:50 AM