This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SME]: Generate streaming-compatible code for fp_arith and fp-fma
ClosedPublic

Authored by hassnaa-arm on Nov 18 2022, 5:32 AM.

Details

Summary

1-To generate code compatible to streaming mode:

  • enable custom lowering for FADD, FDIV, FMA, FMUL, FNEG, FSQRT, FSUB, and FABS.

2-Add testing files:

  • fp_arith.ll
  • fp-fma.ll

Diff Detail

Event Timeline

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

remove redundant setOperationAction(ISD::FMUL, VT, Custom); line

sdesmalen accepted this revision.Nov 21 2022, 9:28 AM

How about changing the title to:

[AArch64][SME]: Generate streaming-compatible code for FP arithmetic ops.

nit:

2-Add testing files:

  • fp_arith.ll
  • fp-fma.ll

This patch is not adding these tests, so it may be better to remove the comments from the commit message.

This revision is now accepted and ready to land.Nov 21 2022, 9:28 AM
david-arm added inline comments.Nov 22 2022, 3:02 AM
llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-fma.ll
132

Interestingly this is an improvement over NEON due to SVE having a bigger range of FMLA instructions that allow for better use of registers. Nice!

Matt added a subscriber: Matt.Nov 22 2022, 11:01 AM