[PATCH] D139628: [ARM][CodeGen] Add integer support for complex deinterleaving

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 12 00:55:23 PST 2022


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

Sounds like a nice addition. LGTM



================
Comment at: llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp:638
   ComplexDeinterleavingRotation Rotation;
-  if (Real->getOpcode() == Instruction::FSub &&
-      Imag->getOpcode() == Instruction::FAdd)
-    Rotation = ComplexDeinterleavingRotation::Rotation_90;
-  else if (Real->getOpcode() == Instruction::FAdd &&
-           Imag->getOpcode() == Instruction::FSub)
-    Rotation = ComplexDeinterleavingRotation::Rotation_270;
-  else {
-    LLVM_DEBUG(dbgs() << " - Unhandled case, rotation is not assigned.\n");
+    if ((Real->getOpcode() == Instruction::FSub && Imag->getOpcode() == Instruction::FAdd) ||
+        (Real->getOpcode() == Instruction::Sub && Imag->getOpcode() == Instruction::Add))
----------------
These lines look pretty long


================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.cpp:21838
 bool ARMTargetLowering::isComplexDeinterleavingSupported() const {
-  return Subtarget->hasMVEFloatOps();
+  return Subtarget->hasMVEFloatOps() || Subtarget->hasMVEIntegerOps();
 }
----------------
hasMVEFloatOps requires hasMVEIntegerOps, so this only need check for hasMVEIntegerOps


================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.cpp:21858
+
+  if(Operation != ComplexDeinterleavingOperation::CAdd)
+    return false;
----------------
Formatting


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D139628



More information about the llvm-commits mailing list