[llvm] [AArch64] Sign-extend promoted extracts feeding wider DUPs (PR #221186)

via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 8 00:05:34 PDT 2026


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp -- llvm/lib/Target/AArch64/AArch64ISelLowering.cpp --diff_from_common_commit
``````````

:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
index a835ac49d..7c8484d30 100644
--- a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
@@ -17298,9 +17298,8 @@ SDValue AArch64TargetLowering::LowerBUILD_VECTOR(SDValue Op,
   // SCALAR_TO_VECTOR, except for when we have a single-element constant vector
   // as SimplifyDemandedBits will just turn that back into BUILD_VECTOR.
   if (isOnlyLowElement && !(NumElts == 1 && isIntOrFPConstant(Value))) {
-    LLVM_DEBUG(
-        dbgs() << "LowerBUILD_VECTOR: only low element used, creating 1 "
-                  "SCALAR_TO_VECTOR node\n");
+    LLVM_DEBUG(dbgs() << "LowerBUILD_VECTOR: only low element used, creating 1 "
+                         "SCALAR_TO_VECTOR node\n");
     return DAG.getNode(ISD::SCALAR_TO_VECTOR, DL, VT, Value);
   }
 
@@ -17386,18 +17385,19 @@ SDValue AArch64TargetLowering::LowerBUILD_VECTOR(SDValue Op,
       if (Value.getOpcode() != ISD::EXTRACT_VECTOR_ELT ||
           Value.getValueType() != VT) {
         if (!isPromotedExtractForWiderVectorElement(Value, VT)) {
-          LLVM_DEBUG(
-              dbgs() << "LowerBUILD_VECTOR: use DUP for non-constant splats\n");
+          LLVM_DEBUG(dbgs()
+                     << "LowerBUILD_VECTOR: use DUP for non-constant splats\n");
           return DAG.getNode(AArch64ISD::DUP, DL, VT, Value);
         }
       } else {
-        // This is actually a DUPLANExx operation, which keeps everything vectory.
+        // This is actually a DUPLANExx operation, which keeps everything
+        // vectory.
 
         SDValue Lane = Value.getOperand(1);
         Value = Value.getOperand(0);
         if (Value.getValueSizeInBits() == 64) {
-          LLVM_DEBUG(
-              dbgs() << "LowerBUILD_VECTOR: DUPLANE works on 128-bit vectors, "
+          LLVM_DEBUG(dbgs()
+                     << "LowerBUILD_VECTOR: DUPLANE works on 128-bit vectors, "
                         "widening it\n");
           Value = WidenVector(Value, DAG);
         }

``````````

</details>


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


More information about the llvm-commits mailing list