[PATCH] D147451: [CodeGen] Enable AArch64 SVE FCMLA/FCADD instruction generation in ComplexDeinterleaving
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 14 09:10:49 PDT 2023
dmgreen accepted this revision.
dmgreen added a comment.
This revision is now accepted and ready to land.
Thanks. I have some minor suggestions but otherwise LGTM.
================
Comment at: llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp:262
+ /// operation:
+ /// * Using two shufflevectors with even indices for /pReal instruciton and
+ /// odd indices for /pImag instructions (only for fixed-width vectors)
----------------
instruciton -> instruction
================
Comment at: llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp:340
- if (!TL->isComplexDeinterleavingSupported()) {
+ if (!TL->isComplexDeinterleavingSupported(true) &&
+ !TL->isComplexDeinterleavingSupported(false)) {
----------------
I don't think this needs to call with a Scalable flag. The AArch64TargetLowering::isComplexDeinterleavingSupported routine can just return true if it has sve or complexnums.
================
Comment at: llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp:924
+ auto *ImagShuffle = dyn_cast<ShuffleVectorInst>(Imag);
+ if (RealShuffle && ImagShuffle) {
+ Value *RealOp1 = RealShuffle->getOperand(1);
----------------
This could be turned into
```
if (!RealShuffle || !ImagShuffle)
return nullptr;
```
LLVM often likes returning early to reduce indentation.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D147451/new/
https://reviews.llvm.org/D147451
More information about the llvm-commits
mailing list