Skip to content

[DAGCombiner] Add generic DAG combine for ISD::PARTIAL_REDUCE_MLA #127083

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Mar 4, 2025

Conversation

JamesChesterman
Copy link
Contributor

Add generic DAG combine for ISD::PARTIAL_REDUCE_U/SMLA nodes. Transforms the DAG from:
PARTIAL_REDUCE_MLA(Acc, MUL(EXT(MulOpLHS), EXT(MulOpRHS)), Splat(1)) to
PARTIAL_REDUCE_MLA(Acc, MulOpLHS, MulOpRHS).

Add generic DAG combine for ISD::PARTIAL_REDUCE_U/SMLA nodes.
Transforms the DAG from:
PARTIAL_REDUCE_MLA(Acc, MUL(EXT(MulOpLHS), EXT(MulOpRHS)), Splat(1))
to
PARTIAL_REDUCE_MLA(Acc, MulOpLHS, MulOpRHS).
Also make sure the DAG combine is only done when the action for
partial reductions have a type combination which is either Legal
or Custom.
This ensures that the combines are not performed only for the
resulting DAG to be expanded, as this leads to worse Code Gen.
@llvmbot llvmbot added the llvm:SelectionDAG SelectionDAGISel as well label Feb 19, 2025
@llvmbot
Copy link
Member

llvmbot commented Feb 19, 2025

@llvm/pr-subscribers-backend-aarch64

@llvm/pr-subscribers-llvm-selectiondag

Author: James Chesterman (JamesChesterman)

Changes

Add generic DAG combine for ISD::PARTIAL_REDUCE_U/SMLA nodes. Transforms the DAG from:
PARTIAL_REDUCE_MLA(Acc, MUL(EXT(MulOpLHS), EXT(MulOpRHS)), Splat(1)) to
PARTIAL_REDUCE_MLA(Acc, MulOpLHS, MulOpRHS).


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

4 Files Affected:

  • (modified) llvm/include/llvm/CodeGen/TargetLowering.h (+35)
  • (modified) llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (+69)
  • (modified) llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp (+5-2)
  • (modified) llvm/lib/CodeGen/TargetLoweringBase.cpp (+2-3)
diff --git a/llvm/include/llvm/CodeGen/TargetLowering.h b/llvm/include/llvm/CodeGen/TargetLowering.h
index a4c3d042fe3a4..52e57365dceab 100644
--- a/llvm/include/llvm/CodeGen/TargetLowering.h
+++ b/llvm/include/llvm/CodeGen/TargetLowering.h
@@ -1639,6 +1639,25 @@ class TargetLoweringBase {
            getCondCodeAction(CC, VT) == Custom;
   }
 
+  /// Return how a PARTIAL_REDUCE_U/SMLA node with Acc type AccVT and Input type
+  /// InputVT should be treated. Either it's legal, needs to be promoted to a
+  /// larger size, needs to be expanded to some other code sequence, or the
+  /// target has a custom expander for it.
+  LegalizeAction getPartialReduceMLAAction(EVT AccVT, EVT InputVT) const {
+    unsigned AccI = (unsigned)AccVT.getSimpleVT().SimpleTy;
+    unsigned InputI = (unsigned)InputVT.getSimpleVT().SimpleTy;
+    assert(AccI < MVT::VALUETYPE_SIZE && InputI < MVT::VALUETYPE_SIZE &&
+           "Table isn't big enough!");
+    return PartialReduceMLAActions[AccI][InputI];
+  }
+
+  /// Return true if a PARTIAL_REDUCE_U/SMLA node with the specified types is
+  /// legal or custom for this target.
+  bool isPartialReduceMLALegalOrCustom(EVT AccVT, EVT InputVT) const {
+    return getPartialReduceMLAAction(AccVT, InputVT) == Legal ||
+           getPartialReduceMLAAction(AccVT, InputVT) == Custom;
+  }
+
   /// If the action for this operation is to promote, this method returns the
   /// ValueType to promote to.
   MVT getTypeToPromoteTo(unsigned Op, MVT VT) const {
@@ -2704,6 +2723,16 @@ class TargetLoweringBase {
       setCondCodeAction(CCs, VT, Action);
   }
 
+  /// Indicate how a PARTIAL_REDUCE_U/SMLA node with Acc type AccVT and Input
+  /// type InputVT should be treated by the target. Either it's legal, needs to
+  /// be promoted to a larger size, needs to be expanded to some other code
+  /// sequence, or the target has a custom expander for it.
+  void setPartialReduceMLAAction(MVT AccVT, MVT InputVT,
+                                 LegalizeAction Action) {
+    assert(AccVT.isValid() && InputVT.isValid() && "Table isn't big enough!");
+    PartialReduceMLAActions[AccVT.SimpleTy][InputVT.SimpleTy] = Action;
+  }
+
   /// If Opc/OrigVT is specified as being promoted, the promotion code defaults
   /// to trying a larger integer/fp until it can find one that works. If that
   /// default is insufficient, this method can be used by the target to override
@@ -3650,6 +3679,12 @@ class TargetLoweringBase {
   /// up the MVT::VALUETYPE_SIZE value to the next multiple of 8.
   uint32_t CondCodeActions[ISD::SETCC_INVALID][(MVT::VALUETYPE_SIZE + 7) / 8];
 
+  /// For each result type and input type for the ISD::PARTIAL_REDUCE_U/SMLA
+  /// nodes, keep a LegalizeAction which indicates how instruction selection
+  /// should deal with this operation.
+  LegalizeAction PartialReduceMLAActions[MVT::VALUETYPE_SIZE]
+                                        [MVT::VALUETYPE_SIZE];
+
   ValueTypeActionImpl ValueTypeActions;
 
 private:
diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
index bc7cdf38dbc2a..223260c43a38e 100644
--- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
@@ -545,6 +545,7 @@ namespace {
     SDValue visitMGATHER(SDNode *N);
     SDValue visitMSCATTER(SDNode *N);
     SDValue visitMHISTOGRAM(SDNode *N);
+    SDValue visitPARTIAL_REDUCE_MLA(SDNode *N);
     SDValue visitVPGATHER(SDNode *N);
     SDValue visitVPSCATTER(SDNode *N);
     SDValue visitVP_STRIDED_LOAD(SDNode *N);
@@ -621,6 +622,8 @@ namespace {
     SDValue CombineConsecutiveLoads(SDNode *N, EVT VT);
     SDValue foldBitcastedFPLogic(SDNode *N, SelectionDAG &DAG,
                                  const TargetLowering &TLI);
+    SDValue foldMulPARTIAL_REDUCE_MLA(SDNode *N);
+    SDValue foldExtendPARTIAL_REDUCE_MLA(SDNode *N);
 
     SDValue CombineExtLoad(SDNode *N);
     SDValue CombineZExtLogicopShiftLoad(SDNode *N);
@@ -1972,6 +1975,9 @@ SDValue DAGCombiner::visit(SDNode *N) {
   case ISD::MSCATTER:           return visitMSCATTER(N);
   case ISD::MSTORE:             return visitMSTORE(N);
   case ISD::EXPERIMENTAL_VECTOR_HISTOGRAM: return visitMHISTOGRAM(N);
+  case ISD::PARTIAL_REDUCE_SMLA:
+  case ISD::PARTIAL_REDUCE_UMLA:
+                                return visitPARTIAL_REDUCE_MLA(N);
   case ISD::VECTOR_COMPRESS:    return visitVECTOR_COMPRESS(N);
   case ISD::LIFETIME_END:       return visitLIFETIME_END(N);
   case ISD::FP_TO_FP16:         return visitFP_TO_FP16(N);
@@ -12497,6 +12503,69 @@ SDValue DAGCombiner::visitMHISTOGRAM(SDNode *N) {
   return SDValue();
 }
 
+SDValue DAGCombiner::visitPARTIAL_REDUCE_MLA(SDNode *N) {
+  // Only perform the DAG combine if there is custom lowering provided by the
+  // target.
+  if (!TLI.isPartialReduceMLALegalOrCustom(N->getValueType(0),
+                                           N->getOperand(1).getValueType()))
+    return SDValue();
+
+  if (SDValue Res = foldMulPARTIAL_REDUCE_MLA(N))
+    return Res;
+  if (SDValue Res = foldExtendPARTIAL_REDUCE_MLA(N))
+    return Res;
+  return SDValue();
+}
+
+SDValue DAGCombiner::foldMulPARTIAL_REDUCE_MLA(SDNode *N) {
+  // Makes PARTIAL_REDUCE_*MLA(Acc, MUL(MulOpLHS, MulOpRHS), Splat(1)) into
+  // PARTIAL_REDUCE_*MLA(Acc, MulOpLHS, MulOpRHS)
+  SDLoc DL(N);
+
+  SDValue Op1 = N->getOperand(1);
+  if (Op1->getOpcode() != ISD::MUL)
+    return SDValue();
+
+  APInt ConstantOne;
+  if (!ISD::isConstantSplatVector(N->getOperand(2).getNode(), ConstantOne) ||
+      !ConstantOne.isOne())
+    return SDValue();
+
+  return DAG.getNode(N->getOpcode(), DL, N->getValueType(0), N->getOperand(0),
+                     Op1->getOperand(0), Op1->getOperand(1));
+}
+
+SDValue DAGCombiner::foldExtendPARTIAL_REDUCE_MLA(SDNode *N) {
+  // Makes PARTIAL_REDUCE_*MLA(Acc, ZEXT(MulOpLHS), ZEXT(MulOpRHS)) into
+  // PARTIAL_REDUCE_UMLA(Acc, MulOpLHS, MulOpRHS) and
+  // PARTIAL_REDUCE_*MLA(Acc, SEXT(MulOpLHS), SEXT(MulOpRHS)) into
+  // PARTIAL_REDUCE_SMLA(Acc, MulOpLHS, MulOpRHS)
+  SDLoc DL(N);
+  SDValue ExtMulOpLHS = N->getOperand(1);
+  SDValue ExtMulOpRHS = N->getOperand(2);
+  unsigned ExtMulOpLHSOpcode = ExtMulOpLHS->getOpcode();
+  unsigned ExtMulOpRHSOpcode = ExtMulOpRHS->getOpcode();
+  if (!ISD::isExtOpcode(ExtMulOpLHSOpcode) ||
+      !ISD::isExtOpcode(ExtMulOpRHSOpcode))
+    return SDValue();
+
+  SDValue MulOpLHS = ExtMulOpLHS->getOperand(0);
+  SDValue MulOpRHS = ExtMulOpRHS->getOperand(0);
+  EVT MulOpLHSVT = MulOpLHS.getValueType();
+  if (MulOpLHSVT != MulOpRHS.getValueType())
+    return SDValue();
+
+  bool LHSIsSigned = ExtMulOpLHSOpcode == ISD::SIGN_EXTEND;
+  bool RHSIsSigned = ExtMulOpRHSOpcode == ISD::SIGN_EXTEND;
+  if (LHSIsSigned != RHSIsSigned)
+    return SDValue();
+
+  unsigned NewOpcode =
+      LHSIsSigned ? ISD::PARTIAL_REDUCE_SMLA : ISD::PARTIAL_REDUCE_UMLA;
+  return DAG.getNode(NewOpcode, DL, N->getValueType(0), N->getOperand(0),
+                     MulOpLHS, MulOpRHS);
+}
+
 SDValue DAGCombiner::visitVP_STRIDED_LOAD(SDNode *N) {
   auto *SLD = cast<VPStridedLoadSDNode>(N);
   EVT EltVT = SLD->getValueType(0).getVectorElementType();
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
index de4447fb0cf1a..e43b14a47e565 100644
--- a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
@@ -469,8 +469,6 @@ SDValue VectorLegalizer::LegalizeOp(SDValue Op) {
   case ISD::VECTOR_COMPRESS:
   case ISD::SCMP:
   case ISD::UCMP:
-  case ISD::PARTIAL_REDUCE_UMLA:
-  case ISD::PARTIAL_REDUCE_SMLA:
     Action = TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0));
     break;
   case ISD::SMULFIX:
@@ -524,6 +522,11 @@ SDValue VectorLegalizer::LegalizeOp(SDValue Op) {
       Action = TLI.getOperationAction(Node->getOpcode(), OpVT);
     break;
   }
+  case ISD::PARTIAL_REDUCE_UMLA:
+  case ISD::PARTIAL_REDUCE_SMLA:
+    Action = TLI.getPartialReduceMLAAction(Node->getValueType(0),
+                                           Node->getOperand(1).getValueType());
+    break;
 
 #define BEGIN_REGISTER_VP_SDNODE(VPID, LEGALPOS, ...)                          \
   case ISD::VPID: {                                                            \
diff --git a/llvm/lib/CodeGen/TargetLoweringBase.cpp b/llvm/lib/CodeGen/TargetLoweringBase.cpp
index f5ea3c0b47d6a..af97ce20fdb10 100644
--- a/llvm/lib/CodeGen/TargetLoweringBase.cpp
+++ b/llvm/lib/CodeGen/TargetLoweringBase.cpp
@@ -836,9 +836,8 @@ void TargetLoweringBase::initActions() {
     setOperationAction(ISD::SET_FPENV, VT, Expand);
     setOperationAction(ISD::RESET_FPENV, VT, Expand);
 
-    // PartialReduceMLA operations default to expand.
-    setOperationAction({ISD::PARTIAL_REDUCE_UMLA, ISD::PARTIAL_REDUCE_SMLA}, VT,
-                       Expand);
+    for (MVT InputVT : MVT::all_valuetypes())
+      setPartialReduceMLAAction(VT, InputVT, Expand);
   }
 
   // Most targets ignore the @llvm.prefetch intrinsic.

This is so the MUL fold does not happen unless the extend fold can
be performed.
As otherwise a lot of code would need to be repeated to check that
it can happen.
This makes it so the changes are reflected in the tests, so that we can tell the DAG combine is actually happening.
It has been replaced with a FIXME note saying to potentially add it back in when the rest of the implementation is complete.
Copy link
Member

@MacDue MacDue left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks 👍 I think the regressions should be fixed after the lowering changes.

Copy link
Member

@MacDue MacDue left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This still LGTM, but wait for @sdesmalen-arm

Copy link
Collaborator

@sdesmalen-arm sdesmalen-arm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few more small comments, other than that it looks fine.

; CHECK-NODOT-NEXT: smull2 v2.8h, v2.16b, v3.16b
; CHECK-NODOT-NEXT: sshll v3.4s, v4.4h, #0
; CHECK-NODOT-NEXT: sshll v5.4s, v2.4h, #0
; CHECK-NODOT-NEXT: sshll v4.8h, v3.8b, #0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know these are regressions, but they'll be addressed by follow-up patches that further improve this code-gen.

@JamesChesterman JamesChesterman merged commit 2bef21f into llvm:main Mar 4, 2025
11 checks passed
@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 4, 2025

LLVM Buildbot has detected a new failure on builder llvm-clang-aarch64-darwin running on doug-worker-4 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/190/builds/15664

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod < /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
RUN: at line 3: /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llc -mtriple aarch64 -mattr=+neon < /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llc -mtriple aarch64 -mattr=+neon
�[1m/Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll:55:21: �[0m�[0;1;31merror: �[0m�[1mCHECK-NODOT-NEXT: expected string not found in input
�[0m; CHECK-NODOT-NEXT: ldr q0, [x0, x8]
�[0;1;32m                    ^
�[0m�[1m<stdin>:32:38: �[0m�[0;1;30mnote: �[0m�[1mscanning from here
�[0m // =>This Inner Loop Header: Depth=1
�[0;1;32m                                     ^
�[0m�[1m<stdin>:33:2: �[0m�[0;1;30mnote: �[0m�[1mpossible intended match here
�[0m ldr q0, [x1, x8]
�[0;1;32m ^
�[0m
Input file: <stdin>
Check file: /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
�[1m�[0m�[0;1;30m             1: �[0m�[1m�[0;1;46m .file "<stdin>" �[0m
�[0;1;30m             2: �[0m�[1m�[0;1;46m .text �[0m
�[0;1;30m             3: �[0m�[1m�[0;1;46m .globl udot // -- Begin function udot �[0m
�[0;1;30m             4: �[0m�[1m�[0;1;46m .p2align 2 �[0m
�[0;1;30m             5: �[0m�[1m�[0;1;46m .type udot,@function �[0m
�[0;1;30m             6: �[0m�[1m�[0;1;46m�[0mudot:�[0;1;46m // @udot �[0m
�[0;1;32mlabel:13'0      ^~~~~
�[0m�[0;1;32mlabel:13'1      ^~~~~
�[0m�[0;1;30m             7: �[0m�[1m�[0;1;46m .cfi_startproc �[0m
�[0;1;30m             8: �[0m�[1m�[0;1;46m�[0m// %bb.0:�[0;1;46m �[0m
�[0;1;32mcheck:14        ^~~~~~~~~
�[0m�[0;1;30m             9: �[0m�[1m�[0;1;46m �[0mushll v3.8h, v1.8b, #0�[0;1;46m �[0m
�[0;1;32mnext:15          ^~~~~~~~~~~~~~~~~~~~~~
�[0m�[0;1;30m            10: �[0m�[1m�[0;1;46m �[0mushll v4.8h, v2.8b, #0�[0;1;46m �[0m
�[0;1;32mnext:16          ^~~~~~~~~~~~~~~~~~~~~~
�[0m�[0;1;30m            11: �[0m�[1m�[0;1;46m �[0mushll2 v1.8h, v1.16b, #0�[0;1;46m �[0m
�[0;1;32mnext:17          ^~~~~~~~~~~~~~~~~~~~~~~~
�[0m�[0;1;30m            12: �[0m�[1m�[0;1;46m �[0mushll2 v2.8h, v2.16b, #0�[0;1;46m �[0m
�[0;1;32mnext:18          ^~~~~~~~~~~~~~~~~~~~~~~~
�[0m�[0;1;30m            13: �[0m�[1m�[0;1;46m �[0mumlal v0.4s, v4.4h, v3.4h�[0;1;46m �[0m
�[0;1;32mnext:19          ^~~~~~~~~~~~~~~~~~~~~~~~~
�[0m�[0;1;30m            14: �[0m�[1m�[0;1;46m �[0mumull v5.4s, v2.4h, v1.4h�[0;1;46m �[0m
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 4, 2025

LLVM Buildbot has detected a new failure on builder ml-opt-dev-x86-64 running on ml-opt-dev-x86-64-b1 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/137/builds/14406

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /b/ml-opt-dev-x86-64-b1/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod < /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /b/ml-opt-dev-x86-64-b1/build/bin/FileCheck /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
+ /b/ml-opt-dev-x86-64-b1/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod
+ /b/ml-opt-dev-x86-64-b1/build/bin/FileCheck /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
RUN: at line 3: /b/ml-opt-dev-x86-64-b1/build/bin/llc -mtriple aarch64 -mattr=+neon < /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /b/ml-opt-dev-x86-64-b1/build/bin/FileCheck /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /b/ml-opt-dev-x86-64-b1/build/bin/FileCheck /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /b/ml-opt-dev-x86-64-b1/build/bin/llc -mtriple aarch64 -mattr=+neon
/b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll:55:21: error: CHECK-NODOT-NEXT: expected string not found in input
; CHECK-NODOT-NEXT: ldr q0, [x0, x8]
                    ^
<stdin>:32:38: note: scanning from here
 // =>This Inner Loop Header: Depth=1
                                     ^
<stdin>:33:2: note: possible intended match here
 ldr q0, [x1, x8]
 ^

Input file: <stdin>
Check file: /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          27:  .cfi_startproc 
          28: // %bb.0: // %entry 
          29:  movi v1.2d, #0000000000000000 
          30:  mov x8, xzr 
          31: .LBB1_1: // %vector.body 
          32:  // =>This Inner Loop Header: Depth=1 
next:55'0                                          X error: no match found
          33:  ldr q0, [x1, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
next:55'1      ?                 possible intended match
          34:  ldr q2, [x0, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
          35:  add x8, x8, #16 
next:55'0     ~~~~~~~~~~~~~~~~~
          36:  cmp x8, #16 
next:55'0     ~~~~~~~~~~~~~
          37:  ushll2 v3.8h, v0.16b, #0 
next:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          38:  ushll2 v4.8h, v2.16b, #0 
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 4, 2025

LLVM Buildbot has detected a new failure on builder clang-aarch64-quick running on linaro-clang-aarch64-quick while building llvm at step 5 "ninja check 1".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/65/builds/13161

Here is the relevant piece of the build log for the reference
Step 5 (ninja check 1) failure: stage 1 checked (failure)
******************** TEST 'LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod < /home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/FileCheck /home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
+ /home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod
+ /home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/FileCheck /home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
RUN: at line 3: /home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/llc -mtriple aarch64 -mattr=+neon < /home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/FileCheck /home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/llc -mtriple aarch64 -mattr=+neon
+ /home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/FileCheck /home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
/home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll:55:21: error: CHECK-NODOT-NEXT: expected string not found in input
; CHECK-NODOT-NEXT: ldr q0, [x0, x8]
                    ^
<stdin>:32:38: note: scanning from here
 // =>This Inner Loop Header: Depth=1
                                     ^
<stdin>:33:2: note: possible intended match here
 ldr q0, [x1, x8]
 ^

Input file: <stdin>
Check file: /home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          27:  .cfi_startproc 
          28: // %bb.0: // %entry 
          29:  movi v1.2d, #0000000000000000 
          30:  mov x8, xzr 
          31: .LBB1_1: // %vector.body 
          32:  // =>This Inner Loop Header: Depth=1 
next:55'0                                          X error: no match found
          33:  ldr q0, [x1, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
next:55'1      ?                 possible intended match
          34:  ldr q2, [x0, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
          35:  add x8, x8, #16 
next:55'0     ~~~~~~~~~~~~~~~~~
          36:  cmp x8, #16 
next:55'0     ~~~~~~~~~~~~~
          37:  ushll2 v3.8h, v0.16b, #0 
next:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          38:  ushll2 v4.8h, v2.16b, #0 
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 4, 2025

LLVM Buildbot has detected a new failure on builder ml-opt-rel-x86-64 running on ml-opt-rel-x86-64-b1 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/185/builds/14141

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /b/ml-opt-rel-x86-64-b1/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod < /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /b/ml-opt-rel-x86-64-b1/build/bin/FileCheck /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
+ /b/ml-opt-rel-x86-64-b1/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod
+ /b/ml-opt-rel-x86-64-b1/build/bin/FileCheck /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
RUN: at line 3: /b/ml-opt-rel-x86-64-b1/build/bin/llc -mtriple aarch64 -mattr=+neon < /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /b/ml-opt-rel-x86-64-b1/build/bin/FileCheck /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /b/ml-opt-rel-x86-64-b1/build/bin/FileCheck /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /b/ml-opt-rel-x86-64-b1/build/bin/llc -mtriple aarch64 -mattr=+neon
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll:55:21: error: CHECK-NODOT-NEXT: expected string not found in input
; CHECK-NODOT-NEXT: ldr q0, [x0, x8]
                    ^
<stdin>:32:38: note: scanning from here
 // =>This Inner Loop Header: Depth=1
                                     ^
<stdin>:33:2: note: possible intended match here
 ldr q0, [x1, x8]
 ^

Input file: <stdin>
Check file: /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          27:  .cfi_startproc 
          28: // %bb.0: // %entry 
          29:  movi v1.2d, #0000000000000000 
          30:  mov x8, xzr 
          31: .LBB1_1: // %vector.body 
          32:  // =>This Inner Loop Header: Depth=1 
next:55'0                                          X error: no match found
          33:  ldr q0, [x1, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
next:55'1      ?                 possible intended match
          34:  ldr q2, [x0, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
          35:  add x8, x8, #16 
next:55'0     ~~~~~~~~~~~~~~~~~
          36:  cmp x8, #16 
next:55'0     ~~~~~~~~~~~~~
          37:  ushll2 v3.8h, v0.16b, #0 
next:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          38:  ushll2 v4.8h, v2.16b, #0 
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 4, 2025

LLVM Buildbot has detected a new failure on builder ml-opt-devrel-x86-64 running on ml-opt-devrel-x86-64-b1 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/175/builds/14217

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /b/ml-opt-devrel-x86-64-b1/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod < /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /b/ml-opt-devrel-x86-64-b1/build/bin/FileCheck /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
+ /b/ml-opt-devrel-x86-64-b1/build/bin/FileCheck /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
+ /b/ml-opt-devrel-x86-64-b1/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod
RUN: at line 3: /b/ml-opt-devrel-x86-64-b1/build/bin/llc -mtriple aarch64 -mattr=+neon < /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /b/ml-opt-devrel-x86-64-b1/build/bin/FileCheck /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /b/ml-opt-devrel-x86-64-b1/build/bin/FileCheck /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /b/ml-opt-devrel-x86-64-b1/build/bin/llc -mtriple aarch64 -mattr=+neon
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll:55:21: error: CHECK-NODOT-NEXT: expected string not found in input
; CHECK-NODOT-NEXT: ldr q0, [x0, x8]
                    ^
<stdin>:32:38: note: scanning from here
 // =>This Inner Loop Header: Depth=1
                                     ^
<stdin>:33:2: note: possible intended match here
 ldr q0, [x1, x8]
 ^

Input file: <stdin>
Check file: /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          27:  .cfi_startproc 
          28: // %bb.0: // %entry 
          29:  movi v1.2d, #0000000000000000 
          30:  mov x8, xzr 
          31: .LBB1_1: // %vector.body 
          32:  // =>This Inner Loop Header: Depth=1 
next:55'0                                          X error: no match found
          33:  ldr q0, [x1, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
next:55'1      ?                 possible intended match
          34:  ldr q2, [x0, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
          35:  add x8, x8, #16 
next:55'0     ~~~~~~~~~~~~~~~~~
          36:  cmp x8, #16 
next:55'0     ~~~~~~~~~~~~~
          37:  ushll2 v3.8h, v0.16b, #0 
next:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          38:  ushll2 v4.8h, v2.16b, #0 
...

kazutakahirata added a commit that referenced this pull request Mar 4, 2025
…_MLA (#127083)"

This reverts commit 2bef21f.

Multiple builtbot failures have been reported:
#127083
@kazutakahirata
Copy link
Contributor

@JamesChesterman I've reverted this PR due to a failure in check-llvm. I am happy to try your revised patch. Thanks!

llvm-sync bot pushed a commit to arm/arm-toolchain that referenced this pull request Mar 4, 2025
…TIAL_REDUCE_MLA (#127083)"

This reverts commit 2bef21f.

Multiple builtbot failures have been reported:
llvm/llvm-project#127083
@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 4, 2025

LLVM Buildbot has detected a new failure on builder clang-ppc64le-linux-multistage running on ppc64le-clang-multistage-test while building llvm at step 5 "ninja check 1".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/76/builds/7459

Here is the relevant piece of the build log for the reference
Step 5 (ninja check 1) failure: stage 1 checked (failure)
******************** TEST 'LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage1/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod < /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage1/bin/FileCheck /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
+ /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage1/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod
+ /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage1/bin/FileCheck /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
RUN: at line 3: /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage1/bin/llc -mtriple aarch64 -mattr=+neon < /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage1/bin/FileCheck /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage1/bin/llc -mtriple aarch64 -mattr=+neon
+ /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage1/bin/FileCheck /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll:55:21: error: CHECK-NODOT-NEXT: expected string not found in input
; CHECK-NODOT-NEXT: ldr q0, [x0, x8]
                    ^
<stdin>:32:38: note: scanning from here
 // =>This Inner Loop Header: Depth=1
                                     ^
<stdin>:33:2: note: possible intended match here
 ldr q0, [x1, x8]
 ^

Input file: <stdin>
Check file: /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          27:  .cfi_startproc 
          28: // %bb.0: // %entry 
          29:  movi v1.2d, #0000000000000000 
          30:  mov x8, xzr 
          31: .LBB1_1: // %vector.body 
          32:  // =>This Inner Loop Header: Depth=1 
next:55'0                                          X error: no match found
          33:  ldr q0, [x1, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
next:55'1      ?                 possible intended match
          34:  ldr q2, [x0, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
          35:  add x8, x8, #16 
next:55'0     ~~~~~~~~~~~~~~~~~
          36:  cmp x8, #16 
next:55'0     ~~~~~~~~~~~~~
          37:  ushll2 v3.8h, v0.16b, #0 
next:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          38:  ushll2 v4.8h, v2.16b, #0 
...
Step 11 (ninja check 2) failure: stage 2 checked (failure)
******************** TEST 'LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage2/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod < /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage2/bin/FileCheck /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
+ /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage2/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod
+ /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage2/bin/FileCheck /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
RUN: at line 3: /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage2/bin/llc -mtriple aarch64 -mattr=+neon < /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage2/bin/FileCheck /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage2/bin/llc -mtriple aarch64 -mattr=+neon
+ /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage2/bin/FileCheck /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll:55:21: error: CHECK-NODOT-NEXT: expected string not found in input
; CHECK-NODOT-NEXT: ldr q0, [x0, x8]
                    ^
<stdin>:32:38: note: scanning from here
 // =>This Inner Loop Header: Depth=1
                                     ^
<stdin>:33:2: note: possible intended match here
 ldr q0, [x1, x8]
 ^

Input file: <stdin>
Check file: /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          27:  .cfi_startproc 
          28: // %bb.0: // %entry 
          29:  movi v1.2d, #0000000000000000 
          30:  mov x8, xzr 
          31: .LBB1_1: // %vector.body 
          32:  // =>This Inner Loop Header: Depth=1 
next:55'0                                          X error: no match found
          33:  ldr q0, [x1, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
next:55'1      ?                 possible intended match
          34:  ldr q2, [x0, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
          35:  add x8, x8, #16 
next:55'0     ~~~~~~~~~~~~~~~~~
          36:  cmp x8, #16 
next:55'0     ~~~~~~~~~~~~~
          37:  ushll2 v3.8h, v0.16b, #0 
next:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          38:  ushll2 v4.8h, v2.16b, #0 
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 4, 2025

LLVM Buildbot has detected a new failure on builder clang-x64-windows-msvc running on windows-gcebot2 while building llvm at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/63/builds/4415

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: 'python ../llvm-zorg/zorg/buildbot/builders/annotated/clang-windows.py ...' (failure)
...
  Passed           : 46198 (99.20%)
  Expectedly Failed:    37 (0.08%)
[95/96] Running the LLVM regression tests
llvm-lit.py: C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\utils\lit\lit\llvm\config.py:57: note: using lit tools: C:\Program Files\Git\usr\bin
llvm-lit.py: C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\utils\lit\lit\llvm\config.py:512: note: using ld.lld: c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\ld.lld.exe
llvm-lit.py: C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\utils\lit\lit\llvm\config.py:512: note: using lld-link: c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\lld-link.exe
llvm-lit.py: C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\utils\lit\lit\llvm\config.py:512: note: using ld64.lld: c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\ld64.lld.exe
llvm-lit.py: C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\utils\lit\lit\llvm\config.py:512: note: using wasm-ld: c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\wasm-ld.exe
-- Testing: 57693 tests, 32 workers --
Testing:  0.. 10.. 20.. 30.. 40
FAIL: LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll (4438 of 57693)
******************** TEST 'LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\llc.exe -mtriple aarch64 -mattr=+neon,+dotprod < C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll | c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\filecheck.exe C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
# executed command: 'c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\llc.exe' -mtriple aarch64 -mattr=+neon,+dotprod
# executed command: 'c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\filecheck.exe' 'C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll' --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
# RUN: at line 3
c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\llc.exe -mtriple aarch64 -mattr=+neon < C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll | c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\filecheck.exe C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
# executed command: 'c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\llc.exe' -mtriple aarch64 -mattr=+neon
# executed command: 'c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\filecheck.exe' 'C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll' --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
# .---command stderr------------
# | C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll:55:21: error: CHECK-NODOT-NEXT: expected string not found in input
# | ; CHECK-NODOT-NEXT: ldr q0, [x0, x8]
# |                     ^
# | <stdin>:32:38: note: scanning from here
# |  // =>This Inner Loop Header: Depth=1
# |                                      ^
# | <stdin>:33:2: note: possible intended match here
# |  ldr q0, [x1, x8]
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           27:  .cfi_startproc 
# |           28: // %bb.0: // %entry 
# |           29:  movi v1.2d, #0000000000000000 
# |           30:  mov x8, xzr 
Step 8 (stage 1 check) failure: stage 1 check (failure)
...
  Passed           : 46198 (99.20%)
  Expectedly Failed:    37 (0.08%)
[95/96] Running the LLVM regression tests
llvm-lit.py: C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\utils\lit\lit\llvm\config.py:57: note: using lit tools: C:\Program Files\Git\usr\bin
llvm-lit.py: C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\utils\lit\lit\llvm\config.py:512: note: using ld.lld: c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\ld.lld.exe
llvm-lit.py: C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\utils\lit\lit\llvm\config.py:512: note: using lld-link: c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\lld-link.exe
llvm-lit.py: C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\utils\lit\lit\llvm\config.py:512: note: using ld64.lld: c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\ld64.lld.exe
llvm-lit.py: C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\utils\lit\lit\llvm\config.py:512: note: using wasm-ld: c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\wasm-ld.exe
-- Testing: 57693 tests, 32 workers --
Testing:  0.. 10.. 20.. 30.. 40
FAIL: LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll (4438 of 57693)
******************** TEST 'LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\llc.exe -mtriple aarch64 -mattr=+neon,+dotprod < C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll | c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\filecheck.exe C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
# executed command: 'c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\llc.exe' -mtriple aarch64 -mattr=+neon,+dotprod
# executed command: 'c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\filecheck.exe' 'C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll' --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
# RUN: at line 3
c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\llc.exe -mtriple aarch64 -mattr=+neon < C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll | c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\filecheck.exe C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
# executed command: 'c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\llc.exe' -mtriple aarch64 -mattr=+neon
# executed command: 'c:\b\slave\clang-x64-windows-msvc\build\stage1\bin\filecheck.exe' 'C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll' --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
# .---command stderr------------
# | C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll:55:21: error: CHECK-NODOT-NEXT: expected string not found in input
# | ; CHECK-NODOT-NEXT: ldr q0, [x0, x8]
# |                     ^
# | <stdin>:32:38: note: scanning from here
# |  // =>This Inner Loop Header: Depth=1
# |                                      ^
# | <stdin>:33:2: note: possible intended match here
# |  ldr q0, [x1, x8]
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\b\slave\clang-x64-windows-msvc\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           27:  .cfi_startproc 
# |           28: // %bb.0: // %entry 
# |           29:  movi v1.2d, #0000000000000000 
# |           30:  mov x8, xzr 

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 4, 2025

LLVM Buildbot has detected a new failure on builder lld-x86_64-ubuntu-fast running on as-builder-4 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/33/builds/12363

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod < /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
+ /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod
+ /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
RUN: at line 3: /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/llc -mtriple aarch64 -mattr=+neon < /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/llc -mtriple aarch64 -mattr=+neon
+ /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll:55:21: error: CHECK-NODOT-NEXT: expected string not found in input
; CHECK-NODOT-NEXT: ldr q0, [x0, x8]
                    ^
<stdin>:32:38: note: scanning from here
 // =>This Inner Loop Header: Depth=1
                                     ^
<stdin>:33:2: note: possible intended match here
 ldr q0, [x1, x8]
 ^

Input file: <stdin>
Check file: /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          27:  .cfi_startproc 
          28: // %bb.0: // %entry 
          29:  movi v1.2d, #0000000000000000 
          30:  mov x8, xzr 
          31: .LBB1_1: // %vector.body 
          32:  // =>This Inner Loop Header: Depth=1 
next:55'0                                          X error: no match found
          33:  ldr q0, [x1, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
next:55'1      ?                 possible intended match
          34:  ldr q2, [x0, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
          35:  add x8, x8, #16 
next:55'0     ~~~~~~~~~~~~~~~~~
          36:  cmp x8, #16 
next:55'0     ~~~~~~~~~~~~~
          37:  ushll2 v3.8h, v0.16b, #0 
next:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          38:  ushll2 v4.8h, v2.16b, #0 
...

JamesChesterman added a commit that referenced this pull request Mar 4, 2025
@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 4, 2025

LLVM Buildbot has detected a new failure on builder clang-ppc64le-rhel running on ppc64le-clang-rhel-test while building llvm at step 7 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/145/builds/5417

Here is the relevant piece of the build log for the reference
Step 7 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod < /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/build/bin/FileCheck /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
+ /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod
+ /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/build/bin/FileCheck /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
RUN: at line 3: /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/build/bin/llc -mtriple aarch64 -mattr=+neon < /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/build/bin/FileCheck /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/build/bin/llc -mtriple aarch64 -mattr=+neon
+ /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/build/bin/FileCheck /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll:55:21: error: CHECK-NODOT-NEXT: expected string not found in input
; CHECK-NODOT-NEXT: ldr q0, [x0, x8]
                    ^
<stdin>:32:38: note: scanning from here
 // =>This Inner Loop Header: Depth=1
                                     ^
<stdin>:33:2: note: possible intended match here
 ldr q0, [x1, x8]
 ^

Input file: <stdin>
Check file: /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          27:  .cfi_startproc 
          28: // %bb.0: // %entry 
          29:  movi v1.2d, #0000000000000000 
          30:  mov x8, xzr 
          31: .LBB1_1: // %vector.body 
          32:  // =>This Inner Loop Header: Depth=1 
next:55'0                                          X error: no match found
          33:  ldr q0, [x1, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
next:55'1      ?                 possible intended match
          34:  ldr q2, [x0, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
          35:  add x8, x8, #16 
next:55'0     ~~~~~~~~~~~~~~~~~
          36:  cmp x8, #16 
next:55'0     ~~~~~~~~~~~~~
          37:  ushll2 v3.8h, v0.16b, #0 
next:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          38:  ushll2 v4.8h, v2.16b, #0 
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 4, 2025

LLVM Buildbot has detected a new failure on builder premerge-monolithic-linux running on premerge-linux-1 while building llvm at step 7 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/153/builds/24591

Here is the relevant piece of the build log for the reference
Step 7 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /build/buildbot/premerge-monolithic-linux/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod < /build/buildbot/premerge-monolithic-linux/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /build/buildbot/premerge-monolithic-linux/build/bin/FileCheck /build/buildbot/premerge-monolithic-linux/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
+ /build/buildbot/premerge-monolithic-linux/build/bin/FileCheck /build/buildbot/premerge-monolithic-linux/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
+ /build/buildbot/premerge-monolithic-linux/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod
RUN: at line 3: /build/buildbot/premerge-monolithic-linux/build/bin/llc -mtriple aarch64 -mattr=+neon < /build/buildbot/premerge-monolithic-linux/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /build/buildbot/premerge-monolithic-linux/build/bin/FileCheck /build/buildbot/premerge-monolithic-linux/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /build/buildbot/premerge-monolithic-linux/build/bin/llc -mtriple aarch64 -mattr=+neon
+ /build/buildbot/premerge-monolithic-linux/build/bin/FileCheck /build/buildbot/premerge-monolithic-linux/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll:55:21: error: CHECK-NODOT-NEXT: expected string not found in input
; CHECK-NODOT-NEXT: ldr q0, [x0, x8]
                    ^
<stdin>:32:38: note: scanning from here
 // =>This Inner Loop Header: Depth=1
                                     ^
<stdin>:33:2: note: possible intended match here
 ldr q0, [x1, x8]
 ^

Input file: <stdin>
Check file: /build/buildbot/premerge-monolithic-linux/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          27:  .cfi_startproc 
          28: // %bb.0: // %entry 
          29:  movi v1.2d, #0000000000000000 
          30:  mov x8, xzr 
          31: .LBB1_1: // %vector.body 
          32:  // =>This Inner Loop Header: Depth=1 
next:55'0                                          X error: no match found
          33:  ldr q0, [x1, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
next:55'1      ?                 possible intended match
          34:  ldr q2, [x0, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
          35:  add x8, x8, #16 
next:55'0     ~~~~~~~~~~~~~~~~~
          36:  cmp x8, #16 
next:55'0     ~~~~~~~~~~~~~
          37:  ushll2 v3.8h, v0.16b, #0 
next:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          38:  ushll2 v4.8h, v2.16b, #0 
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 4, 2025

LLVM Buildbot has detected a new failure on builder lld-x86_64-win running on as-worker-93 while building llvm at step 7 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/146/builds/2407

Here is the relevant piece of the build log for the reference
Step 7 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\a\lld-x86_64-win\build\bin\llc.exe -mtriple aarch64 -mattr=+neon,+dotprod < C:\a\lld-x86_64-win\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll | c:\a\lld-x86_64-win\build\bin\filecheck.exe C:\a\lld-x86_64-win\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
# executed command: 'c:\a\lld-x86_64-win\build\bin\llc.exe' -mtriple aarch64 -mattr=+neon,+dotprod
# executed command: 'c:\a\lld-x86_64-win\build\bin\filecheck.exe' 'C:\a\lld-x86_64-win\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll' --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
# RUN: at line 3
c:\a\lld-x86_64-win\build\bin\llc.exe -mtriple aarch64 -mattr=+neon < C:\a\lld-x86_64-win\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll | c:\a\lld-x86_64-win\build\bin\filecheck.exe C:\a\lld-x86_64-win\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
# executed command: 'c:\a\lld-x86_64-win\build\bin\llc.exe' -mtriple aarch64 -mattr=+neon
# executed command: 'c:\a\lld-x86_64-win\build\bin\filecheck.exe' 'C:\a\lld-x86_64-win\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll' --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
# .---command stderr------------
# | C:\a\lld-x86_64-win\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll:55:21: error: CHECK-NODOT-NEXT: expected string not found in input
# | ; CHECK-NODOT-NEXT: ldr q0, [x0, x8]
# |                     ^
# | <stdin>:32:38: note: scanning from here
# |  // =>This Inner Loop Header: Depth=1
# |                                      ^
# | <stdin>:33:2: note: possible intended match here
# |  ldr q0, [x1, x8]
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\a\lld-x86_64-win\llvm-project\llvm\test\CodeGen\AArch64\neon-partial-reduce-dot-product.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           27:  .cfi_startproc 
# |           28: // %bb.0: // %entry 
# |           29:  movi v1.2d, #0000000000000000 
# |           30:  mov x8, xzr 
# |           31: .LBB1_1: // %vector.body 
# |           32:  // =>This Inner Loop Header: Depth=1 
# | next:55'0                                          X error: no match found
# |           33:  ldr q0, [x1, x8] 
# | next:55'0     ~~~~~~~~~~~~~~~~~~
# | next:55'1      ?                 possible intended match
# |           34:  ldr q2, [x0, x8] 
# | next:55'0     ~~~~~~~~~~~~~~~~~~
# |           35:  add x8, x8, #16 
# | next:55'0     ~~~~~~~~~~~~~~~~~
# |           36:  cmp x8, #16 
# | next:55'0     ~~~~~~~~~~~~~
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 4, 2025

LLVM Buildbot has detected a new failure on builder llvm-x86_64-debian-dylib running on gribozavr4 while building llvm at step 7 "test-build-unified-tree-check-llvm".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/60/builds/21027

Here is the relevant piece of the build log for the reference
Step 7 (test-build-unified-tree-check-llvm) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/AArch64/neon-partial-reduce-dot-product.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /b/1/llvm-x86_64-debian-dylib/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod < /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /b/1/llvm-x86_64-debian-dylib/build/bin/FileCheck /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
+ /b/1/llvm-x86_64-debian-dylib/build/bin/llc -mtriple aarch64 -mattr=+neon,+dotprod
+ /b/1/llvm-x86_64-debian-dylib/build/bin/FileCheck /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-DOT,CHECK-NOI8MM
RUN: at line 3: /b/1/llvm-x86_64-debian-dylib/build/bin/llc -mtriple aarch64 -mattr=+neon < /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll | /b/1/llvm-x86_64-debian-dylib/build/bin/FileCheck /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
+ /b/1/llvm-x86_64-debian-dylib/build/bin/llc -mtriple aarch64 -mattr=+neon
+ /b/1/llvm-x86_64-debian-dylib/build/bin/FileCheck /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll --check-prefixes=CHECK,CHECK-NOI8MM,CHECK-NODOT
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll:55:21: error: CHECK-NODOT-NEXT: expected string not found in input
; CHECK-NODOT-NEXT: ldr q0, [x0, x8]
                    ^
<stdin>:32:38: note: scanning from here
 // =>This Inner Loop Header: Depth=1
                                     ^
<stdin>:33:2: note: possible intended match here
 ldr q0, [x1, x8]
 ^

Input file: <stdin>
Check file: /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
          27:  .cfi_startproc 
          28: // %bb.0: // %entry 
          29:  movi v1.2d, #0000000000000000 
          30:  mov x8, xzr 
          31: .LBB1_1: // %vector.body 
          32:  // =>This Inner Loop Header: Depth=1 
next:55'0                                          X error: no match found
          33:  ldr q0, [x1, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
next:55'1      ?                 possible intended match
          34:  ldr q2, [x0, x8] 
next:55'0     ~~~~~~~~~~~~~~~~~~
          35:  add x8, x8, #16 
next:55'0     ~~~~~~~~~~~~~~~~~
          36:  cmp x8, #16 
next:55'0     ~~~~~~~~~~~~~
          37:  ushll2 v3.8h, v0.16b, #0 
next:55'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          38:  ushll2 v4.8h, v2.16b, #0 
...

@JamesChesterman
Copy link
Contributor Author

JamesChesterman commented Mar 4, 2025

Relanded this PR successfully: e3c8e17

@kazutakahirata
Copy link
Contributor

@JamesChesterman Thank you for fixing this!

jph-13 pushed a commit to jph-13/llvm-project that referenced this pull request Mar 21, 2025
…vm#127083)

Add generic DAG combine for ISD::PARTIAL_REDUCE_U/SMLA nodes. Transforms
the DAG from:
PARTIAL_REDUCE_MLA(Acc, MUL(EXT(MulOpLHS), EXT(MulOpRHS)), Splat(1)) to
PARTIAL_REDUCE_MLA(Acc, MulOpLHS, MulOpRHS).
jph-13 pushed a commit to jph-13/llvm-project that referenced this pull request Mar 21, 2025
…_MLA (llvm#127083)"

This reverts commit 2bef21f.

Multiple builtbot failures have been reported:
llvm#127083
jph-13 pushed a commit to jph-13/llvm-project that referenced this pull request Mar 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:AArch64 llvm:SelectionDAG SelectionDAGISel as well
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants