[PATCH] D146988: [CodeGen] Enable processing of interconnected complex number operations
Nicholas Guy via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 4 07:12:11 PDT 2023
NickGuy accepted this revision.
NickGuy added a comment.
This revision is now accepted and ready to land.
LGTM
In D146988#4227451 <https://reviews.llvm.org/D146988#4227451>, @igor.kirillov wrote:
> As FCMLA/FCADD are vector instructions, our focus is mainly on vector loops. Therefore, I think it is more beneficial to perform this check on a BasicBlock level rather then a Function level. Alternatively, we could apply this pass per Loop, but this would result in losing support for some Neon cases that can be generated by the autovectorizer outside of a loop.
That makes sense in this case, but keep in mind that scalar loops (or in the case of neon & complex doubles, even non-looping operations) can be lowered to use xcmla/xcadd, I'm not sure we should rely on the concept of a loop for this.
The scalar loops and co. are something that we can look into in the future though, trying to do so now will only complicate things and bloat the patch.
================
Comment at: llvm/test/CodeGen/AArch64/complex-deinterleaving-multiuses.ll:2
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s --mattr=+complxnum,+neon,+fullfp16 -o - | FileCheck %s
+
----------------
Nit: Probably don't need `+fullfp16` in this test, as `half` isn't being used.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D146988/new/
https://reviews.llvm.org/D146988
More information about the llvm-commits
mailing list