[PATCH] D125308: [AArch64] Add missing HasNEON predicates to int->float patterns

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 12 02:06:33 PDT 2022


dmgreen accepted this revision.
dmgreen added a comment.
This revision is now accepted and ready to land.

> I noticed that for signed conversions, some non-NEON instruction sequences are shorter. I don't know if the longer one is still faster on current architectures (the patterns date back to the initial backend import)

Yeah I believe the general idea was that going GRP->FPR is slower than keeping everything inside FPR registers. I was recently informed that those patterns should probably be guarded using the UseAlternateSExtLoadCVTF32 in the same way as other related patterns are.

This change LGTM though, in terms of NEON support. Thanks.



================
Comment at: llvm/lib/Target/AArch64/AArch64InstrInfo.td:5028-5030
 }
 
+let Predicates = [HasNEON] in {
----------------
Perhaps just extend the previous HasNeon block? I'm not sure that's clearer though.


================
Comment at: llvm/lib/Target/AArch64/AArch64InstrInfo.td:5117
 // performIntToFpCombine.
+}
 
----------------
Having a comment, `// Predicates = [HasNEON]` might be useful.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D125308/new/

https://reviews.llvm.org/D125308



More information about the llvm-commits mailing list