[llvm] [AArch64][InstCombine] Tidy [su]adalp combine (NFC) (PR #207219)

via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 2 09:21:49 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-aarch64

Author: Gaƫtan Bossu (gbossu)

<details>
<summary>Changes</summary>

I missed some comments in the #<!-- -->204796 PR.

---
Full diff: https://github.com/llvm/llvm-project/pull/207219.diff


1 Files Affected:

- (modified) llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp (+4-3) 


``````````diff
diff --git a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
index a00fb1ddbd65c..edd95625e13ea 100644
--- a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+++ b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
@@ -2604,11 +2604,12 @@ instCombineSVEPairwiseAddLong(InstCombiner &IC, IntrinsicInst &II) {
           II.getIntrinsicID() == Intrinsic::aarch64_sve_uadalp) &&
          "Expected SADALP or UADALP intrinsic");
 
-  // We are looking for add(adalp(%pred, zeroinitializer, %in), %acc)
-  if (!II.hasOneUse() || !match(II.getArgOperand(1), m_Zero()))
+  // Simplify add(adalp(pg, zeroinitializer, in), wide_acc)
+  //       -> adalp(pg, wide_acc, in)
+  auto *User = dyn_cast_or_null<Instruction>(II.getUniqueUndroppableUser());
+  if (!User || !match(II.getArgOperand(1), m_Zero()))
     return std::nullopt;
 
-  auto *User = cast<Instruction>(*II.user_begin());
   Value *Acc;
   if (!match(User, m_c_Add(m_Specific(&II), m_Value(Acc))))
     return std::nullopt;

``````````

</details>


https://github.com/llvm/llvm-project/pull/207219


More information about the llvm-commits mailing list