This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SME]: Generate streaming-compatible code for ISD::INSERT_VECTOR_ELT
ClosedPublic

Authored by hassnaa-arm on Nov 17 2022, 9:49 AM.

Details

Summary

Enable custom lowering INSERT_VECTOR_ELT to generate code compatible to streaming mode.

Diff Detail

Event Timeline

hassnaa-arm created this revision.Nov 17 2022, 9:49 AM
hassnaa-arm requested review of this revision.Nov 17 2022, 9:49 AM
Herald added a project: Restricted Project. · View Herald TranscriptNov 17 2022, 9:49 AM

LGTM with nit (clang-format) addressed

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
12291–12292

This line looks longer than 80 characters, please use clang-format.

llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-insert-vector-elt.ll
19

This has nothing to do with your change, but I am surprised that this doesn't use the dup (immediate) instruction, such that it can do mov z1.h, #3, it seems some logic is missing somewhere.

Can you also rename the patch to:

[AArch64][SVE]: Generate streaming-compatible code for ISD::INSERT_VECTOR_ELT

hassnaa-arm retitled this revision from [AArch64][SVE]: Force generating valid code for insert-vector-elt.ll test. to [AArch64][SVE]: Generate streaming-compatible code for ISD::INSERT_VECTOR_ELT.Nov 18 2022, 2:58 AM
hassnaa-arm edited the summary of this revision. (Show Details)
hassnaa-arm retitled this revision from [AArch64][SVE]: Generate streaming-compatible code for ISD::INSERT_VECTOR_ELT to [AArch64][SME]: Generate streaming-compatible code for ISD::INSERT_VECTOR_ELT.
sdesmalen accepted this revision.Nov 18 2022, 3:52 AM
This revision is now accepted and ready to land.Nov 18 2022, 3:52 AM