[PATCH] D112994: [AArch64] Sink splat shuffles to lane index intrinsics

Sam Tebbs via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 10 02:39:07 PST 2021


samtebbs added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:11933-11941
+    case Intrinsic::aarch64_neon_sqdmull:
+    case Intrinsic::aarch64_neon_sqdmulh:
+    case Intrinsic::aarch64_neon_sqrdmulh:
+      // Sink splats for index lane variants
+      if (isSplatShuffle(II->getOperand(0)))
+        Ops.push_back(&II->getOperandUse(0));
+      if (isSplatShuffle(II->getOperand(1)))
----------------
dmgreen wrote:
> samtebbs wrote:
> > I don't know much about the sinking test coverage, but would a test for when `Ops` is empty here be beneficial?
> I think that would be a common case, but I'm not sure we have any specific tests for it. I've added a smull_nonsplat tests which should cover it, but won't show any codegen differences.
Thanks! I don't see the smull_nonsplat in the diff though.


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

https://reviews.llvm.org/D112994



More information about the llvm-commits mailing list