This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SME]: Generate streaming-compatible code for int/fp select/vselect
ClosedPublic

Authored by hassnaa-arm on Nov 22 2022, 12:43 PM.

Details

Summary

To generate code compatible to streaming mode:

  • enable custom lowering for VSETCC, needed for (fp-vselect.ll, int-vselect.ll).

Diff Detail

Event Timeline

hassnaa-arm created this revision.Nov 22 2022, 12:43 PM
Herald added a project: Restricted Project. · View Herald TranscriptNov 22 2022, 12:43 PM
hassnaa-arm requested review of this revision.Nov 22 2022, 12:43 PM
Herald added a project: Restricted Project. · View Herald TranscriptNov 22 2022, 12:43 PM
david-arm added inline comments.Nov 23 2022, 5:57 AM
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
12904–12905

nit: This looks like it's breaking the 80-character line limit. Can you reformat this please?

llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-vselect.ll
114–115

Hmm, I don't think there is any value in adding tests for sizes > 256 bits, right? @select_v16f16 is already testing that we legalise larger types (> 128-bits) correctly. Perhaps you can just remove all tests >256 bits? For example, @select_v32f16, @select_v64f16, etc.

191–192

Same comment as above.

265–266

Same comment as above.

llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-vselect.ll
104–105

Again, I think it's worth deleting all tests > 256 bits.

204–205

Same comment as above.

281–282

Same comment as above.

355–356

Same comment as above.

hassnaa-arm marked 8 inline comments as done.

Remove not needed test cases

Add/remove test cases in the precursory patch.

david-arm accepted this revision.Nov 24 2022, 3:59 AM

LGTM! Thanks for removing the tests. :)

This revision is now accepted and ready to land.Nov 24 2022, 3:59 AM