Skip to content

Conversation

@medhatiwari
Copy link
Contributor

Summary

Add computeKnownBitsForTargetNode handling for ARMISD::VMOVIMM and ARMISD::VMVNIMM, following the pattern from #149494 (VORRIMM/VBICIMM).

Also adds isTargetCanonicalConstantNode override to mark these nodes as canonical (similar to AArch64 in #148634), preventing infinite loops in SimplifyDemandedBits.

Includes unit test coverage in ARMSelectionDAGTest.cpp.

Regression

fcopysign.ll generates vand + vorr instead of vbif/vbsl. The code is functionally correct but slightly less optimal. This occurs because KnownBits analysis enables earlier optimizations that transform the VBSP pattern before it can be matched.

Fixes #149276

@llvmbot
Copy link
Member

llvmbot commented Dec 9, 2025

@llvm/pr-subscribers-backend-arm

Author: Medha Tiwari (medhatiwari)

Changes

Summary

Add computeKnownBitsForTargetNode handling for ARMISD::VMOVIMM and ARMISD::VMVNIMM, following the pattern from #149494 (VORRIMM/VBICIMM).

Also adds isTargetCanonicalConstantNode override to mark these nodes as canonical (similar to AArch64 in #148634), preventing infinite loops in SimplifyDemandedBits.

Includes unit test coverage in ARMSelectionDAGTest.cpp.

Regression

fcopysign.ll generates vand + vorr instead of vbif/vbsl. The code is functionally correct but slightly less optimal. This occurs because KnownBits analysis enables earlier optimizations that transform the VBSP pattern before it can be matched.

Fixes #149276


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

3 Files Affected:

  • (modified) llvm/lib/Target/ARM/ARMISelLowering.cpp (+30)
  • (modified) llvm/lib/Target/ARM/ARMISelLowering.h (+2)
  • (modified) llvm/unittests/Target/ARM/ARMSelectionDAGTest.cpp (+89)
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp
index 2d26c67a8077a..d5d6cd132068a 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.cpp
+++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp
@@ -19863,9 +19863,39 @@ void ARMTargetLowering::computeKnownBitsForTargetNode(const SDValue Op,
     Known.Zero = IsVORR ? (KnownLHS.Zero & ~Imm) : (KnownLHS.Zero | Imm);
     break;
   }
+  case ARMISD::VMOVIMM:
+  case ARMISD::VMVNIMM: {
+    unsigned Encoded = Op.getConstantOperandVal(0);
+    unsigned DecEltBits = 0;
+    uint64_t DecodedVal = ARM_AM::decodeVMOVModImm(Encoded, DecEltBits);
+    
+    unsigned EltBits = Op.getScalarValueSizeInBits();
+    if (EltBits != DecEltBits)
+      break;
+    
+    // Create APInt with the decoded value
+    APInt Imm(DecEltBits, DecodedVal);
+    
+    // For VMVNIMM, apply bitwise NOT
+    if (Op.getOpcode() == ARMISD::VMVNIMM)
+      Imm.flipAllBits();
+    
+    Known = KnownBits::makeConstant(Imm);
+    break;
+  }
   }
 }
 
+
+bool ARMTargetLowering::isTargetCanonicalConstantNode(SDValue Op) const {
+  // VMOVIMM/VMVNIMM are the canonical form for ARM vector constants.
+  // Prevent folding them into generic constants to avoid infinite loops
+  // in SimplifyDemandedBits.
+  return Op.getOpcode() == ARMISD::VMOVIMM ||
+         Op.getOpcode() == ARMISD::VMVNIMM ||
+         TargetLowering::isTargetCanonicalConstantNode(Op);
+}
+
 bool ARMTargetLowering::targetShrinkDemandedConstant(
     SDValue Op, const APInt &DemandedBits, const APInt &DemandedElts,
     TargetLoweringOpt &TLO) const {
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.h b/llvm/lib/Target/ARM/ARMISelLowering.h
index d0fb58c764edd..4c1fc6fdfac90 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.h
+++ b/llvm/lib/Target/ARM/ARMISelLowering.h
@@ -221,6 +221,8 @@ class VectorType;
                                        const SelectionDAG &DAG,
                                        unsigned Depth) const override;
 
+    bool isTargetCanonicalConstantNode(SDValue Op) const override;
+
     bool targetShrinkDemandedConstant(SDValue Op, const APInt &DemandedBits,
                                       const APInt &DemandedElts,
                                       TargetLoweringOpt &TLO) const override;
diff --git a/llvm/unittests/Target/ARM/ARMSelectionDAGTest.cpp b/llvm/unittests/Target/ARM/ARMSelectionDAGTest.cpp
index c763da95fa455..c7ce0e12be037 100644
--- a/llvm/unittests/Target/ARM/ARMSelectionDAGTest.cpp
+++ b/llvm/unittests/Target/ARM/ARMSelectionDAGTest.cpp
@@ -194,4 +194,93 @@ TEST_F(ARMSelectionDAGTest, computeKnownBits_VBICIMM_cmode2_lhs_ones) {
   EXPECT_EQ(Known.Zero, APInt(32, 0x0000AA00));
 }
 
+
+/// VMOVIMM: Move immediate to vector register.
+/// cmode=0x0 puts imm8 in byte0 => per-lane constant = 0x000000AA.
+/// All bits are known since this creates a pure constant.
+TEST_F(ARMSelectionDAGTest, computeKnownBits_VMOVIMM) {
+  SDLoc DL;
+  EVT VT = MVT::v4i32;
+
+  // Encoded immediate: cmode=0x0, imm8=0xAA => per-lane = 0x000000AA
+  SDValue EncSD =
+      DAG->getTargetConstant(ARM_AM::createVMOVModImm(0x0, 0xAA), DL, MVT::i32);
+  SDValue Op = DAG->getNode(ARMISD::VMOVIMM, DL, VT, EncSD);
+
+  // VMOVIMM creates a constant, so all bits are known
+  // Encoded (per-lane) = 00000000 00000000 00000000 10101010  (0x000000AA)
+  //  =>
+  // Known.One  = 00000000 00000000 00000000 10101010  (0x000000AA)
+  // Known.Zero = 11111111 11111111 11111111 01010101  (0xFFFFFF55)
+  APInt DemandedElts = APInt::getAllOnes(4);
+  KnownBits Known = DAG->computeKnownBits(Op, DemandedElts);
+  EXPECT_EQ(Known.One, APInt(32, 0x000000AA));
+  EXPECT_EQ(Known.Zero, APInt(32, 0xFFFFFF55));
+}
+
+/// VMOVIMM with cmode=0x2 (shifted 32-bit elements).
+/// imm8=0xAB, cmode=0x2 => per-lane = 0x0000AB00.
+TEST_F(ARMSelectionDAGTest, computeKnownBits_VMOVIMM_cmode2) {
+  SDLoc DL;
+  EVT VT = MVT::v4i32;
+
+  // Encoded immediate: cmode=0x2, imm8=0xAB => per-lane = 0x0000AB00
+  SDValue EncSD =
+      DAG->getTargetConstant(ARM_AM::createVMOVModImm(0x2, 0xAB), DL, MVT::i32);
+  SDValue Op = DAG->getNode(ARMISD::VMOVIMM, DL, VT, EncSD);
+
+  APInt DemandedElts = APInt::getAllOnes(4);
+  KnownBits Known = DAG->computeKnownBits(Op, DemandedElts);
+  EXPECT_EQ(Known.One, APInt(32, 0x0000AB00));
+  EXPECT_EQ(Known.Zero, APInt(32, 0xFFFF54FF));
+}
+
+/// VMVNIMM: Move NOT immediate to vector register.
+/// cmode=0x0 puts imm8 in byte0 => decoded = 0x000000AA, result = ~0x000000AA.
+/// All bits are known since this creates a pure constant (inverted).
+TEST_F(ARMSelectionDAGTest, computeKnownBits_VMVNIMM) {
+  SDLoc DL;
+  EVT VT = MVT::v4i32;
+
+  // Encoded immediate: cmode=0x0, imm8=0xAA => decoded = 0x000000AA
+  // VMVNIMM inverts it => result = 0xFFFFFF55
+  SDValue EncSD =
+      DAG->getTargetConstant(ARM_AM::createVMOVModImm(0x0, 0xAA), DL, MVT::i32);
+  SDValue Op = DAG->getNode(ARMISD::VMVNIMM, DL, VT, EncSD);
+
+  // VMVNIMM creates ~constant, so all bits are known
+  // Decoded (per-lane)  = 00000000 00000000 00000000 10101010  (0x000000AA)
+  // Inverted (per-lane) = 11111111 11111111 11111111 01010101  (0xFFFFFF55)
+  //  =>
+  // Known.One  = 11111111 11111111 11111111 01010101  (0xFFFFFF55)
+  // Known.Zero = 00000000 00000000 00000000 10101010  (0x000000AA)
+  APInt DemandedElts = APInt::getAllOnes(4);
+  KnownBits Known = DAG->computeKnownBits(Op, DemandedElts);
+  EXPECT_EQ(Known.One, APInt(32, 0xFFFFFF55));
+  EXPECT_EQ(Known.Zero, APInt(32, 0x000000AA));
+}
+
+/// VMVNIMM with cmode=0x2 (16-bit shifted elements).
+/// imm8=0xAA, cmode=0x2 => decoded = 0x0000AA00, result = ~0x0000AA00.
+TEST_F(ARMSelectionDAGTest, computeKnownBits_VMVNIMM_cmode2) {
+  SDLoc DL;
+  EVT VT = MVT::v4i32;
+
+  // Encoded immediate: cmode=0x2, imm8=0xAA => decoded = 0x0000AA00
+  // VMVNIMM inverts it => result = 0xFFFF55FF
+  SDValue EncSD =
+      DAG->getTargetConstant(ARM_AM::createVMOVModImm(0x2, 0xAA), DL, MVT::i32);
+  SDValue Op = DAG->getNode(ARMISD::VMVNIMM, DL, VT, EncSD);
+
+  // Decoded (per-lane)  = 00000000 00000000 10101010 00000000  (0x0000AA00)
+  // Inverted (per-lane) = 11111111 11111111 01010101 11111111  (0xFFFF55FF)
+  //  =>
+  // Known.One  = 11111111 11111111 01010101 11111111  (0xFFFF55FF)
+  // Known.Zero = 00000000 00000000 10101010 00000000  (0x0000AA00)
+  APInt DemandedElts = APInt::getAllOnes(4);
+  KnownBits Known = DAG->computeKnownBits(Op, DemandedElts);
+  EXPECT_EQ(Known.One, APInt(32, 0xFFFF55FF));
+  EXPECT_EQ(Known.Zero, APInt(32, 0x0000AA00));
+}
+
 } // end namespace llvm

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

✅ With the latest revision this PR passed the C/C++ code formatter.

@medhatiwari medhatiwari force-pushed the arm-vmov-vmvn branch 2 times, most recently from 001f970 to ff3f366 Compare December 9, 2025 13:08
@github-actions
Copy link

github-actions bot commented Dec 9, 2025

🪟 Windows x64 Test Results

  • 128475 tests passed
  • 2793 tests skipped
  • 5 tests failed

Failed Tests

(click on a test name to see its output)

LLVM

LLVM.CodeGen/ARM/fcopysign.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\fcopysign.ll -disable-post-ra -mtriple=armv7-apple-darwin -mcpu=cortex-a8 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\fcopysign.ll -check-prefix=SOFT
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -disable-post-ra -mtriple=armv7-apple-darwin -mcpu=cortex-a8
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\fcopysign.ll' -check-prefix=SOFT
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\fcopysign.ll:81:14: error: SOFT-NEXT: expected string not found in input
# | ; SOFT-NEXT: vmov.i32 d17, #0x80000000
# |              ^
# | <stdin>:44:22: note: scanning from here
# |  vcvt.f32.f64 s0, d16
# |                      ^
# | <stdin>:47:2: note: possible intended match here
# |  vmov.i32 d19, #0x80000000
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\fcopysign.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           39: _test4: @ @test4 
# |           40: @ %bb.0: @ %entry 
# |           41:  push {lr} 
# |           42:  bl _bar 
# |           43:  vmov d16, r0, r1 
# |           44:  vcvt.f32.f64 s0, d16 
# | next:81'0                          X error: no match found
# |           45:  vmvn.i32 d17, #0x80000000 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           46:  vmov.f32 d18, #5.000000e-01 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           47:  vmov.i32 d19, #0x80000000 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:81'1      ?                          possible intended match
# |           48:  vshr.u64 d16, d16, #32 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# |           49:  vand d17, d18, d17 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~
# |           50:  vand d16, d16, d19 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~
# |           51:  vorr d16, d16, d17 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~
# |           52:  vadd.f32 d0, d0, d16 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/Thumb2/float-intrinsics-float.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll -mtriple=thumbv7-none-eabi   -mcpu=cortex-m3                    | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=SOFT -check-prefix=NONE
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=thumbv7-none-eabi -mcpu=cortex-m3
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll' -check-prefix=CHECK -check-prefix=SOFT -check-prefix=NONE
# note: command had no output on stdout or stderr
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll -mtriple=thumbv7-none-eabihf -mcpu=cortex-m4                    | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=SP -check-prefix=NO-VMLA
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=thumbv7-none-eabihf -mcpu=cortex-m4
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll' -check-prefix=CHECK -check-prefix=HARD -check-prefix=SP -check-prefix=NO-VMLA
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll -mtriple=thumbv7-none-eabihf -mcpu=cortex-m33                   | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=SP -check-prefix=NO-VMLA
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=thumbv7-none-eabihf -mcpu=cortex-m33
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll' -check-prefix=CHECK -check-prefix=HARD -check-prefix=SP -check-prefix=NO-VMLA
# note: command had no output on stdout or stderr
# RUN: at line 4
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll -mtriple=thumbv7-none-eabihf -mcpu=cortex-m7                    | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=VFP  -check-prefix=FP-ARMv8  -check-prefix=VMLA
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=thumbv7-none-eabihf -mcpu=cortex-m7
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll' -check-prefix=CHECK -check-prefix=HARD -check-prefix=VFP -check-prefix=FP-ARMv8 -check-prefix=VMLA
# note: command had no output on stdout or stderr
# RUN: at line 5
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll -mtriple=thumbv7-none-eabihf -mcpu=cortex-m7 -mattr=-fp64 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=SP -check-prefix=FP-ARMv8 -check-prefix=VMLA
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=thumbv7-none-eabihf -mcpu=cortex-m7 -mattr=-fp64
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll' -check-prefix=CHECK -check-prefix=HARD -check-prefix=SP -check-prefix=FP-ARMv8 -check-prefix=VMLA
# note: command had no output on stdout or stderr
# RUN: at line 6
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll -mtriple=thumbv7-none-eabihf -mcpu=cortex-a7                    | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=NEON-A7 -check-prefix=VFP4 -check-prefix=NO-VMLA
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=thumbv7-none-eabihf -mcpu=cortex-a7
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll' -check-prefix=CHECK -check-prefix=HARD -check-prefix=NEON-A7 -check-prefix=VFP4 -check-prefix=NO-VMLA
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll:138:17: error: NEON-A7-NEXT: expected string not found in input
# | ; NEON-A7-NEXT: vmov.i32 d16, #0x80000000
# |                 ^
# | <stdin>:207:36: note: scanning from here
# |  @ kill: def $s0 killed $s0 def $d0
# |                                    ^
# | <stdin>:209:2: note: possible intended match here
# |  vmov.i32 d17, #0x80000000
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\float-intrinsics-float.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           202:  .thumb_func 
# |           203: copysign_f: @ @copysign_f 
# |           204:  .fnstart 
# |           205: @ %bb.0: 
# |           206:  vmov.f32 s2, s1 
# |           207:  @ kill: def $s0 killed $s0 def $d0 
# | next:138'0                                        X error: no match found
# |           208:  vmvn.i32 d16, #0x80000000 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           209:  vmov.i32 d17, #0x80000000 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:138'1      ?                          possible intended match
# |           210:  vand d16, d0, d16 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~
# |           211:  vand d17, d1, d17 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~
# |           212:  vorr d0, d17, d16 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~
# |           213:  @ kill: def $s0 killed $s0 killed $d0 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           214:  bx lr 
# | next:138'0     ~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/Thumb2/mve-vecreduce-add.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve -verify-machineinstrs C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-add.ll -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-add.ll --check-prefix=CHECK
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve -verify-machineinstrs 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-add.ll' -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-add.ll' --check-prefix=CHECK
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-add.ll:129:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmov q2[2], q2[0], r1, r0
# |               ^
# | <stdin>:181:20: note: scanning from here
# |  vmov.u16 r1, q0[0]
# |                    ^
# | <stdin>:200:2: note: possible intended match here
# |  vmov q0[2], q0[0], r3, r2
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-add.ll:396:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmov q2[2], q2[0], r1, r0
# |               ^
# | <stdin>:493:19: note: scanning from here
# |  vmov.u8 r1, q0[0]
# |                   ^
# | <stdin>:512:2: note: possible intended match here
# |  vmov q2[2], q2[0], r3, r2
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-add.ll:537:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmov.i64 q1, #0xffff
# |               ^
# | <stdin>:633:18: note: scanning from here
# |  vmovlb.u8 q0, q0
# |                  ^
# | <stdin>:634:2: note: possible intended match here
# |  vmov.i64 q2, #0xffff
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-add.ll:830:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .save {r7, lr}
# |               ^
# | <stdin>:963:18: note: scanning from here
# | @ %bb.0: @ %entry
# |                  ^
# | <stdin>:964:2: note: possible intended match here
# |  .save {r4, lr}
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-add.ll:1126:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .save {r7, lr}
# |               ^
# | <stdin>:1287:18: note: scanning from here
# | @ %bb.0: @ %entry
# |                  ^
# | <stdin>:1288:2: note: possible intended match here
# |  .save {r4, lr}
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-add.ll:1278:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .save {r7, lr}
# |               ^
# | <stdin>:1436:18: note: scanning from here
# | @ %bb.0: @ %entry
# |                  ^
# | <stdin>:1437:2: note: possible intended match here
# |  .save {r4, lr}
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-add.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            176:  .thumb_func 
# |            177: add_v8i16_v8i64_zext: @ @add_v8i16_v8i64_zext 
# |            178:  .fnstart 
# |            179: @ %bb.0: @ %entry 
# |            180:  vmov.u16 r0, q0[1] 
# |            181:  vmov.u16 r1, q0[0] 
# | next:129'0                         X error: no match found
# |            182:  add r0, r1 
# | next:129'0      ~~~~~~~~~~~~
# |            183:  vmov.u16 r1, q0[2] 
# | next:129'0      ~~~~~~~~~~~~~~~~~~~~
# |            184:  add r0, r1 
# | next:129'0      ~~~~~~~~~~~~
# |            185:  vmov.u16 r1, q0[3] 
# | next:129'0      ~~~~~~~~~~~~~~~~~~~~
# |            186:  add r0, r1 
# | next:129'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            195:  vmov r3, s5 
# | next:129'0      ~~~~~~~~~~~~~
# |            196:  adds r0, r0, r1 
# | next:129'0      ~~~~~~~~~~~~~~~~~
# |            197:  adc.w r1, r3, r2 
# | next:129'0      ~~~~~~~~~~~~~~~~~~
# |            198:  vmov.u16 r2, q0[7] 
# | next:129'0      ~~~~~~~~~~~~~~~~~~~~
# |            199:  vmov.u16 r3, q0[6] 
# | next:129'0      ~~~~~~~~~~~~~~~~~~~~
# |            200:  vmov q0[2], q0[0], r3, r2 
# | next:129'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:129'1       ?                          possible intended match
# |            201:  vand q0, q0, q2 
# | next:129'0      ~~~~~~~~~~~~~~~~~
# |            202:  vmov r2, r3, d0 
# | next:129'0      ~~~~~~~~~~~~~~~~~
# |            203:  adds r0, r0, r2 
# | next:129'0      ~~~~~~~~~~~~~~~~~
# |            204:  adcs r1, r3 
# | next:129'0      ~~~~~~~~~~~~~
# |            205:  vmov r2, r3, d1 
# | next:129'0      ~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            488:  .thumb_func 
# |            489: add_v16i8_v16i64_zext: @ @add_v16i8_v16i64_zext 
# |            490:  .fnstart 
# |            491: @ %bb.0: @ %entry 
# |            492:  vmov.u8 r0, q0[1] 
# |            493:  vmov.u8 r1, q0[0] 
# | next:396'0                        X error: no match found
# |            494:  add r0, r1 
# | next:396'0      ~~~~~~~~~~~~
# |            495:  vmov.u8 r1, q0[2] 
# | next:396'0      ~~~~~~~~~~~~~~~~~~~
# |            496:  add r0, r1 
# | next:396'0      ~~~~~~~~~~~~
# |            497:  vmov.u8 r1, q0[3] 
# | next:396'0      ~~~~~~~~~~~~~~~~~~~
# |            498:  add r0, r1 
# | next:396'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            507:  vmov r3, s9 
# | next:396'0      ~~~~~~~~~~~~~
# |            508:  adds r0, r0, r1 
# | next:396'0      ~~~~~~~~~~~~~~~~~
# |            509:  adc.w r1, r3, r2 
# | next:396'0      ~~~~~~~~~~~~~~~~~~
# |            510:  vmov.u8 r2, q0[7] 
# | next:396'0      ~~~~~~~~~~~~~~~~~~~
# |            511:  vmov.u8 r3, q0[6] 
# | next:396'0      ~~~~~~~~~~~~~~~~~~~
# |            512:  vmov q2[2], q2[0], r3, r2 
# | next:396'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:396'1       ?                          possible intended match
# |            513:  vand q2, q2, q1 
# | next:396'0      ~~~~~~~~~~~~~~~~~
# |            514:  vmov r2, r3, d4 
# | next:396'0      ~~~~~~~~~~~~~~~~~
# |            515:  adds r0, r0, r2 
# | next:396'0      ~~~~~~~~~~~~~~~~~
# |            516:  adcs r1, r3 
# | next:396'0      ~~~~~~~~~~~~~
# |            517:  vmov r2, r3, d5 
# | next:396'0      ~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            628:  .code 16 
# |            629:  .thumb_func 
# |            630: add_v8i8_v8i64_zext: @ @add_v8i8_v8i64_zext 
# |            631:  .fnstart 
# |            632: @ %bb.0: @ %entry 
# |            633:  vmovlb.u8 q0, q0 
# | next:537'0                       X error: no match found
# |            634:  vmov.i64 q2, #0xffff 
# | next:537'0      ~~~~~~~~~~~~~~~~~~~~~~
# | next:537'1       ?                     possible intended match
# |            635:  vmov.u16 r0, q0[1] 
# | next:537'0      ~~~~~~~~~~~~~~~~~~~~
# |            636:  vmov.u16 r1, q0[0] 
# | next:537'0      ~~~~~~~~~~~~~~~~~~~~
# |            637:  add r0, r1 
# | next:537'0      ~~~~~~~~~~~~
# |            638:  vmov.u16 r1, q0[2] 
# | next:537'0      ~~~~~~~~~~~~~~~~~~~~
# |            639:  add r0, r1 
# | next:537'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            958:  .type add_v8i16_v8i64_acc_zext,%function 
# |            959:  .code 16 
# |            960:  .thumb_func 
# |            961: add_v8i16_v8i64_acc_zext: @ @add_v8i16_v8i64_acc_zext 
# |            962:  .fnstart 
# |            963: @ %bb.0: @ %entry 
# | next:830'0                       X error: no match found
# |            964:  .save {r4, lr} 
# | next:830'0      ~~~~~~~~~~~~~~~~
# | next:830'1       ?               possible intended match
# |            965:  push {r4, lr} 
# | next:830'0      ~~~~~~~~~~~~~~~
# |            966:  vmov.u16 r2, q0[1] 
# | next:830'0      ~~~~~~~~~~~~~~~~~~~~
# |            967:  vmov.u16 r3, q0[0] 
# | next:830'0      ~~~~~~~~~~~~~~~~~~~~
# |            968:  add r2, r3 
# | next:830'0      ~~~~~~~~~~~~
# |            969:  vmov.u16 r3, q0[2] 
# | next:830'0      ~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1282:  .type add_v16i8_v16i64_acc_zext,%function 
# |           1283:  .code 16 
# |           1284:  .thumb_func 
# |           1285: add_v16i8_v16i64_acc_zext: @ @add_v16i8_v16i64_acc_zext 
# |           1286:  .fnstart 
# |           1287: @ %bb.0: @ %entry 
# | next:1126'0                      X error: no match found
# |           1288:  .save {r4, lr} 
# | next:1126'0     ~~~~~~~~~~~~~~~~
# | next:1126'1      ?               possible intended match
# |           1289:  push {r4, lr} 
# | next:1126'0     ~~~~~~~~~~~~~~~
# |           1290:  vmov.u8 r2, q0[1] 
# | next:1126'0     ~~~~~~~~~~~~~~~~~~~
# |           1291:  vmov.u8 r3, q0[0] 
# | next:1126'0     ~~~~~~~~~~~~~~~~~~~
# |           1292:  add r2, r3 
# | next:1126'0     ~~~~~~~~~~~~
# |           1293:  vmov.u8 r3, q0[2] 
# | next:1126'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1431:  .type add_v8i8_v8i64_acc_zext,%function 
# |           1432:  .code 16 
# |           1433:  .thumb_func 
# |           1434: add_v8i8_v8i64_acc_zext: @ @add_v8i8_v8i64_acc_zext 
# |           1435:  .fnstart 
# |           1436: @ %bb.0: @ %entry 
# | next:1278'0                      X error: no match found
# |           1437:  .save {r4, lr} 
# | next:1278'0     ~~~~~~~~~~~~~~~~
# | next:1278'1      ?               possible intended match
# |           1438:  push {r4, lr} 
# | next:1278'0     ~~~~~~~~~~~~~~~
# |           1439:  vmovlb.u8 q0, q0 
# | next:1278'0     ~~~~~~~~~~~~~~~~~~
# |           1440:  vmov.i64 q2, #0xffff 
# | next:1278'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           1441:  vmov.u16 r2, q0[1] 
# | next:1278'0     ~~~~~~~~~~~~~~~~~~~~
# |           1442:  vmov.u16 r3, q0[0] 
# | next:1278'0     ~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/Thumb2/mve-vecreduce-mla.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve -verify-machineinstrs C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-mla.ll -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-mla.ll --check-prefix=CHECK
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve -verify-machineinstrs 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-mla.ll' -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-mla.ll' --check-prefix=CHECK
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-mla.ll:820:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: orrs r1, r3
# |               ^
# | <stdin>:887:12: note: scanning from here
# |  add r0, r2
# |            ^
# | <stdin>:888:2: note: possible intended match here
# |  add r1, r3
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-mla.ll:1455:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: orr.w r3, r3, lr
# |               ^
# | <stdin>:1525:13: note: scanning from here
# |  add r2, r12
# |             ^
# | <stdin>:1526:2: note: possible intended match here
# |  add r3, lr
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vecreduce-mla.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            882:  vmov r1, s2 
# |            883:  vmov r2, s4 
# |            884:  vmov r3, s0 
# |            885:  umull r0, r1, r1, r0 
# |            886:  umull r2, r3, r3, r2 
# |            887:  add r0, r2 
# | next:820'0                 X error: no match found
# |            888:  add r1, r3 
# | next:820'0      ~~~~~~~~~~~~
# | next:820'1       ?           possible intended match
# |            889:  bx lr 
# | next:820'0      ~~~~~~~
# |            890: .Lfunc_end51: 
# | next:820'0      ~~~~~~~~~~~~~~
# |            891:  .size add_v2i8_v2i64_zext, .Lfunc_end51-add_v2i8_v2i64_zext 
# | next:820'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            892:  .fnend 
# | next:820'0      ~~~~~~~~
# |            893:  @ -- End function 
# | next:820'0      ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1520:  vmov r3, s2 
# |           1521:  umull r12, lr, r3, r2 
# |           1522:  vmov r2, s4 
# |           1523:  vmov r3, s0 
# |           1524:  umull r2, r3, r3, r2 
# |           1525:  add r2, r12 
# | next:1455'0                 X error: no match found
# |           1526:  add r3, lr 
# | next:1455'0     ~~~~~~~~~~~~
# | next:1455'1      ?           possible intended match
# |           1527:  adds r0, r0, r2 
# | next:1455'0     ~~~~~~~~~~~~~~~~~
# |           1528:  adcs r1, r3 
# | next:1455'0     ~~~~~~~~~~~~~
# |           1529:  pop {r7, pc} 
# | next:1455'0     ~~~~~~~~~~~~~~
# |           1530: .Lfunc_end87: 
# | next:1455'0     ~~~~~~~~~~~~~~
# |           1531:  .size add_v2i8_v2i64_acc_zext, .Lfunc_end87-add_v2i8_v2i64_acc_zext 
# | next:1455'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/Thumb2/mve-vqmovn-combine.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve -verify-machineinstrs C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vqmovn-combine.ll -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vqmovn-combine.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve -verify-machineinstrs 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vqmovn-combine.ll' -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vqmovn-combine.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vqmovn-combine.ll:73:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vqmovnb.u32 q0, q0
# |               ^
# | <stdin>:88:18: note: scanning from here
# | @ %bb.0: @ %entry
# |                  ^
# | <stdin>:89:2: note: possible intended match here
# |  vqmovnt.u32 q1, q0
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vqmovn-combine.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           83:  .type vqmovni32_uminmax_t1,%function 
# |           84:  .code 16 
# |           85:  .thumb_func 
# |           86: vqmovni32_uminmax_t1: @ @vqmovni32_uminmax_t1 
# |           87:  .fnstart 
# |           88: @ %bb.0: @ %entry 
# | next:73'0                      X error: no match found
# |           89:  vqmovnt.u32 q1, q0 
# | next:73'0     ~~~~~~~~~~~~~~~~~~~~
# | next:73'1      ?                   possible intended match
# |           90:  vmov q0, q1 
# | next:73'0     ~~~~~~~~~~~~~
# |           91:  bx lr 
# | next:73'0     ~~~~~~~
# |           92: .Lfunc_end4: 
# | next:73'0     ~~~~~~~~~~~~~
# |           93:  .size vqmovni32_uminmax_t1, .Lfunc_end4-vqmovni32_uminmax_t1 
# | next:73'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           94:  .fnend 
# | next:73'0     ~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the infrastructure label.

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

🐧 Linux x64 Test Results

  • 166949 tests passed
  • 2919 tests skipped
  • 5 tests failed

Failed Tests

(click on a test name to see its output)

LLVM

LLVM.CodeGen/ARM/fcopysign.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/ARM/fcopysign.ll -disable-post-ra -mtriple=armv7-apple-darwin -mcpu=cortex-a8 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/ARM/fcopysign.ll -check-prefix=SOFT
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -disable-post-ra -mtriple=armv7-apple-darwin -mcpu=cortex-a8
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/ARM/fcopysign.ll -check-prefix=SOFT
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/ARM/fcopysign.ll:81:14: error: SOFT-NEXT: expected string not found in input
# | ; SOFT-NEXT: vmov.i32 d17, #0x80000000
# |              ^
# | <stdin>:44:22: note: scanning from here
# |  vcvt.f32.f64 s0, d16
# |                      ^
# | <stdin>:47:2: note: possible intended match here
# |  vmov.i32 d19, #0x80000000
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/ARM/fcopysign.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           39: _test4: @ @test4 
# |           40: @ %bb.0: @ %entry 
# |           41:  push {lr} 
# |           42:  bl _bar 
# |           43:  vmov d16, r0, r1 
# |           44:  vcvt.f32.f64 s0, d16 
# | next:81'0                          X error: no match found
# |           45:  vmvn.i32 d17, #0x80000000 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           46:  vmov.f32 d18, #5.000000e-01 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           47:  vmov.i32 d19, #0x80000000 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:81'1      ?                          possible intended match
# |           48:  vshr.u64 d16, d16, #32 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# |           49:  vand d17, d18, d17 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~
# |           50:  vand d16, d16, d19 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~
# |           51:  vorr d16, d16, d17 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~
# |           52:  vadd.f32 d0, d0, d16 
# | next:81'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/Thumb2/float-intrinsics-float.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -mtriple=thumbv7-none-eabi   -mcpu=cortex-m3                    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=SOFT -check-prefix=NONE
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=thumbv7-none-eabi -mcpu=cortex-m3
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=SOFT -check-prefix=NONE
# note: command had no output on stdout or stderr
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -mtriple=thumbv7-none-eabihf -mcpu=cortex-m4                    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=SP -check-prefix=NO-VMLA
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=thumbv7-none-eabihf -mcpu=cortex-m4
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=SP -check-prefix=NO-VMLA
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -mtriple=thumbv7-none-eabihf -mcpu=cortex-m33                   | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=SP -check-prefix=NO-VMLA
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=thumbv7-none-eabihf -mcpu=cortex-m33
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=SP -check-prefix=NO-VMLA
# note: command had no output on stdout or stderr
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -mtriple=thumbv7-none-eabihf -mcpu=cortex-m7                    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=VFP  -check-prefix=FP-ARMv8  -check-prefix=VMLA
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=thumbv7-none-eabihf -mcpu=cortex-m7
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=VFP -check-prefix=FP-ARMv8 -check-prefix=VMLA
# note: command had no output on stdout or stderr
# RUN: at line 5
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -mtriple=thumbv7-none-eabihf -mcpu=cortex-m7 -mattr=-fp64 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=SP -check-prefix=FP-ARMv8 -check-prefix=VMLA
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=thumbv7-none-eabihf -mcpu=cortex-m7 -mattr=-fp64
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=SP -check-prefix=FP-ARMv8 -check-prefix=VMLA
# note: command had no output on stdout or stderr
# RUN: at line 6
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -mtriple=thumbv7-none-eabihf -mcpu=cortex-a7                    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=NEON-A7 -check-prefix=VFP4 -check-prefix=NO-VMLA
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=thumbv7-none-eabihf -mcpu=cortex-a7
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll -check-prefix=CHECK -check-prefix=HARD -check-prefix=NEON-A7 -check-prefix=VFP4 -check-prefix=NO-VMLA
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll:138:17: error: NEON-A7-NEXT: expected string not found in input
# | ; NEON-A7-NEXT: vmov.i32 d16, #0x80000000
# |                 ^
# | <stdin>:207:36: note: scanning from here
# |  @ kill: def $s0 killed $s0 def $d0
# |                                    ^
# | <stdin>:209:2: note: possible intended match here
# |  vmov.i32 d17, #0x80000000
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           202:  .thumb_func 
# |           203: copysign_f: @ @copysign_f 
# |           204:  .fnstart 
# |           205: @ %bb.0: 
# |           206:  vmov.f32 s2, s1 
# |           207:  @ kill: def $s0 killed $s0 def $d0 
# | next:138'0                                        X error: no match found
# |           208:  vmvn.i32 d16, #0x80000000 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           209:  vmov.i32 d17, #0x80000000 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:138'1      ?                          possible intended match
# |           210:  vand d16, d0, d16 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~
# |           211:  vand d17, d1, d17 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~
# |           212:  vorr d0, d17, d16 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~
# |           213:  @ kill: def $s0 killed $s0 killed $d0 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           214:  bx lr 
# | next:138'0     ~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/Thumb2/mve-vecreduce-add.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve -verify-machineinstrs /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-add.ll -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-add.ll --check-prefix=CHECK
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve -verify-machineinstrs /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-add.ll -o -
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-add.ll --check-prefix=CHECK
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-add.ll:129:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmov q2[2], q2[0], r1, r0
# |               ^
# | <stdin>:181:20: note: scanning from here
# |  vmov.u16 r1, q0[0]
# |                    ^
# | <stdin>:200:2: note: possible intended match here
# |  vmov q0[2], q0[0], r3, r2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-add.ll:396:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmov q2[2], q2[0], r1, r0
# |               ^
# | <stdin>:493:19: note: scanning from here
# |  vmov.u8 r1, q0[0]
# |                   ^
# | <stdin>:512:2: note: possible intended match here
# |  vmov q2[2], q2[0], r3, r2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-add.ll:537:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmov.i64 q1, #0xffff
# |               ^
# | <stdin>:633:18: note: scanning from here
# |  vmovlb.u8 q0, q0
# |                  ^
# | <stdin>:634:2: note: possible intended match here
# |  vmov.i64 q2, #0xffff
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-add.ll:830:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .save {r7, lr}
# |               ^
# | <stdin>:963:18: note: scanning from here
# | @ %bb.0: @ %entry
# |                  ^
# | <stdin>:964:2: note: possible intended match here
# |  .save {r4, lr}
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-add.ll:1126:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .save {r7, lr}
# |               ^
# | <stdin>:1287:18: note: scanning from here
# | @ %bb.0: @ %entry
# |                  ^
# | <stdin>:1288:2: note: possible intended match here
# |  .save {r4, lr}
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-add.ll:1278:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .save {r7, lr}
# |               ^
# | <stdin>:1436:18: note: scanning from here
# | @ %bb.0: @ %entry
# |                  ^
# | <stdin>:1437:2: note: possible intended match here
# |  .save {r4, lr}
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-add.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            176:  .thumb_func 
# |            177: add_v8i16_v8i64_zext: @ @add_v8i16_v8i64_zext 
# |            178:  .fnstart 
# |            179: @ %bb.0: @ %entry 
# |            180:  vmov.u16 r0, q0[1] 
# |            181:  vmov.u16 r1, q0[0] 
# | next:129'0                         X error: no match found
# |            182:  add r0, r1 
# | next:129'0      ~~~~~~~~~~~~
# |            183:  vmov.u16 r1, q0[2] 
# | next:129'0      ~~~~~~~~~~~~~~~~~~~~
# |            184:  add r0, r1 
# | next:129'0      ~~~~~~~~~~~~
# |            185:  vmov.u16 r1, q0[3] 
# | next:129'0      ~~~~~~~~~~~~~~~~~~~~
# |            186:  add r0, r1 
# | next:129'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            195:  vmov r3, s5 
# | next:129'0      ~~~~~~~~~~~~~
# |            196:  adds r0, r0, r1 
# | next:129'0      ~~~~~~~~~~~~~~~~~
# |            197:  adc.w r1, r3, r2 
# | next:129'0      ~~~~~~~~~~~~~~~~~~
# |            198:  vmov.u16 r2, q0[7] 
# | next:129'0      ~~~~~~~~~~~~~~~~~~~~
# |            199:  vmov.u16 r3, q0[6] 
# | next:129'0      ~~~~~~~~~~~~~~~~~~~~
# |            200:  vmov q0[2], q0[0], r3, r2 
# | next:129'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:129'1       ?                          possible intended match
# |            201:  vand q0, q0, q2 
# | next:129'0      ~~~~~~~~~~~~~~~~~
# |            202:  vmov r2, r3, d0 
# | next:129'0      ~~~~~~~~~~~~~~~~~
# |            203:  adds r0, r0, r2 
# | next:129'0      ~~~~~~~~~~~~~~~~~
# |            204:  adcs r1, r3 
# | next:129'0      ~~~~~~~~~~~~~
# |            205:  vmov r2, r3, d1 
# | next:129'0      ~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            488:  .thumb_func 
# |            489: add_v16i8_v16i64_zext: @ @add_v16i8_v16i64_zext 
# |            490:  .fnstart 
# |            491: @ %bb.0: @ %entry 
# |            492:  vmov.u8 r0, q0[1] 
# |            493:  vmov.u8 r1, q0[0] 
# | next:396'0                        X error: no match found
# |            494:  add r0, r1 
# | next:396'0      ~~~~~~~~~~~~
# |            495:  vmov.u8 r1, q0[2] 
# | next:396'0      ~~~~~~~~~~~~~~~~~~~
# |            496:  add r0, r1 
# | next:396'0      ~~~~~~~~~~~~
# |            497:  vmov.u8 r1, q0[3] 
# | next:396'0      ~~~~~~~~~~~~~~~~~~~
# |            498:  add r0, r1 
# | next:396'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            507:  vmov r3, s9 
# | next:396'0      ~~~~~~~~~~~~~
# |            508:  adds r0, r0, r1 
# | next:396'0      ~~~~~~~~~~~~~~~~~
# |            509:  adc.w r1, r3, r2 
# | next:396'0      ~~~~~~~~~~~~~~~~~~
# |            510:  vmov.u8 r2, q0[7] 
# | next:396'0      ~~~~~~~~~~~~~~~~~~~
# |            511:  vmov.u8 r3, q0[6] 
# | next:396'0      ~~~~~~~~~~~~~~~~~~~
# |            512:  vmov q2[2], q2[0], r3, r2 
# | next:396'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:396'1       ?                          possible intended match
# |            513:  vand q2, q2, q1 
# | next:396'0      ~~~~~~~~~~~~~~~~~
# |            514:  vmov r2, r3, d4 
# | next:396'0      ~~~~~~~~~~~~~~~~~
# |            515:  adds r0, r0, r2 
# | next:396'0      ~~~~~~~~~~~~~~~~~
# |            516:  adcs r1, r3 
# | next:396'0      ~~~~~~~~~~~~~
# |            517:  vmov r2, r3, d5 
# | next:396'0      ~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            628:  .code 16 
# |            629:  .thumb_func 
# |            630: add_v8i8_v8i64_zext: @ @add_v8i8_v8i64_zext 
# |            631:  .fnstart 
# |            632: @ %bb.0: @ %entry 
# |            633:  vmovlb.u8 q0, q0 
# | next:537'0                       X error: no match found
# |            634:  vmov.i64 q2, #0xffff 
# | next:537'0      ~~~~~~~~~~~~~~~~~~~~~~
# | next:537'1       ?                     possible intended match
# |            635:  vmov.u16 r0, q0[1] 
# | next:537'0      ~~~~~~~~~~~~~~~~~~~~
# |            636:  vmov.u16 r1, q0[0] 
# | next:537'0      ~~~~~~~~~~~~~~~~~~~~
# |            637:  add r0, r1 
# | next:537'0      ~~~~~~~~~~~~
# |            638:  vmov.u16 r1, q0[2] 
# | next:537'0      ~~~~~~~~~~~~~~~~~~~~
# |            639:  add r0, r1 
# | next:537'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            958:  .type add_v8i16_v8i64_acc_zext,%function 
# |            959:  .code 16 
# |            960:  .thumb_func 
# |            961: add_v8i16_v8i64_acc_zext: @ @add_v8i16_v8i64_acc_zext 
# |            962:  .fnstart 
# |            963: @ %bb.0: @ %entry 
# | next:830'0                       X error: no match found
# |            964:  .save {r4, lr} 
# | next:830'0      ~~~~~~~~~~~~~~~~
# | next:830'1       ?               possible intended match
# |            965:  push {r4, lr} 
# | next:830'0      ~~~~~~~~~~~~~~~
# |            966:  vmov.u16 r2, q0[1] 
# | next:830'0      ~~~~~~~~~~~~~~~~~~~~
# |            967:  vmov.u16 r3, q0[0] 
# | next:830'0      ~~~~~~~~~~~~~~~~~~~~
# |            968:  add r2, r3 
# | next:830'0      ~~~~~~~~~~~~
# |            969:  vmov.u16 r3, q0[2] 
# | next:830'0      ~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1282:  .type add_v16i8_v16i64_acc_zext,%function 
# |           1283:  .code 16 
# |           1284:  .thumb_func 
# |           1285: add_v16i8_v16i64_acc_zext: @ @add_v16i8_v16i64_acc_zext 
# |           1286:  .fnstart 
# |           1287: @ %bb.0: @ %entry 
# | next:1126'0                      X error: no match found
# |           1288:  .save {r4, lr} 
# | next:1126'0     ~~~~~~~~~~~~~~~~
# | next:1126'1      ?               possible intended match
# |           1289:  push {r4, lr} 
# | next:1126'0     ~~~~~~~~~~~~~~~
# |           1290:  vmov.u8 r2, q0[1] 
# | next:1126'0     ~~~~~~~~~~~~~~~~~~~
# |           1291:  vmov.u8 r3, q0[0] 
# | next:1126'0     ~~~~~~~~~~~~~~~~~~~
# |           1292:  add r2, r3 
# | next:1126'0     ~~~~~~~~~~~~
# |           1293:  vmov.u8 r3, q0[2] 
# | next:1126'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1431:  .type add_v8i8_v8i64_acc_zext,%function 
# |           1432:  .code 16 
# |           1433:  .thumb_func 
# |           1434: add_v8i8_v8i64_acc_zext: @ @add_v8i8_v8i64_acc_zext 
# |           1435:  .fnstart 
# |           1436: @ %bb.0: @ %entry 
# | next:1278'0                      X error: no match found
# |           1437:  .save {r4, lr} 
# | next:1278'0     ~~~~~~~~~~~~~~~~
# | next:1278'1      ?               possible intended match
# |           1438:  push {r4, lr} 
# | next:1278'0     ~~~~~~~~~~~~~~~
# |           1439:  vmovlb.u8 q0, q0 
# | next:1278'0     ~~~~~~~~~~~~~~~~~~
# |           1440:  vmov.i64 q2, #0xffff 
# | next:1278'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           1441:  vmov.u16 r2, q0[1] 
# | next:1278'0     ~~~~~~~~~~~~~~~~~~~~
# |           1442:  vmov.u16 r3, q0[0] 
# | next:1278'0     ~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/Thumb2/mve-vecreduce-mla.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve -verify-machineinstrs /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-mla.ll -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-mla.ll --check-prefix=CHECK
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve -verify-machineinstrs /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-mla.ll -o -
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-mla.ll --check-prefix=CHECK
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-mla.ll:820:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: orrs r1, r3
# |               ^
# | <stdin>:887:12: note: scanning from here
# |  add r0, r2
# |            ^
# | <stdin>:888:2: note: possible intended match here
# |  add r1, r3
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-mla.ll:1455:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: orr.w r3, r3, lr
# |               ^
# | <stdin>:1525:13: note: scanning from here
# |  add r2, r12
# |             ^
# | <stdin>:1526:2: note: possible intended match here
# |  add r3, lr
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vecreduce-mla.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            882:  vmov r1, s2 
# |            883:  vmov r2, s4 
# |            884:  vmov r3, s0 
# |            885:  umull r0, r1, r1, r0 
# |            886:  umull r2, r3, r3, r2 
# |            887:  add r0, r2 
# | next:820'0                 X error: no match found
# |            888:  add r1, r3 
# | next:820'0      ~~~~~~~~~~~~
# | next:820'1       ?           possible intended match
# |            889:  bx lr 
# | next:820'0      ~~~~~~~
# |            890: .Lfunc_end51: 
# | next:820'0      ~~~~~~~~~~~~~~
# |            891:  .size add_v2i8_v2i64_zext, .Lfunc_end51-add_v2i8_v2i64_zext 
# | next:820'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            892:  .fnend 
# | next:820'0      ~~~~~~~~
# |            893:  @ -- End function 
# | next:820'0      ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1520:  vmov r3, s2 
# |           1521:  umull r12, lr, r3, r2 
# |           1522:  vmov r2, s4 
# |           1523:  vmov r3, s0 
# |           1524:  umull r2, r3, r3, r2 
# |           1525:  add r2, r12 
# | next:1455'0                 X error: no match found
# |           1526:  add r3, lr 
# | next:1455'0     ~~~~~~~~~~~~
# | next:1455'1      ?           possible intended match
# |           1527:  adds r0, r0, r2 
# | next:1455'0     ~~~~~~~~~~~~~~~~~
# |           1528:  adcs r1, r3 
# | next:1455'0     ~~~~~~~~~~~~~
# |           1529:  pop {r7, pc} 
# | next:1455'0     ~~~~~~~~~~~~~~
# |           1530: .Lfunc_end87: 
# | next:1455'0     ~~~~~~~~~~~~~~
# |           1531:  .size add_v2i8_v2i64_acc_zext, .Lfunc_end87-add_v2i8_v2i64_acc_zext 
# | next:1455'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/Thumb2/mve-vqmovn-combine.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve -verify-machineinstrs /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vqmovn-combine.ll -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vqmovn-combine.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve -verify-machineinstrs /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vqmovn-combine.ll -o -
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vqmovn-combine.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vqmovn-combine.ll:73:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vqmovnb.u32 q0, q0
# |               ^
# | <stdin>:88:18: note: scanning from here
# | @ %bb.0: @ %entry
# |                  ^
# | <stdin>:89:2: note: possible intended match here
# |  vqmovnt.u32 q1, q0
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb2/mve-vqmovn-combine.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           83:  .type vqmovni32_uminmax_t1,%function 
# |           84:  .code 16 
# |           85:  .thumb_func 
# |           86: vqmovni32_uminmax_t1: @ @vqmovni32_uminmax_t1 
# |           87:  .fnstart 
# |           88: @ %bb.0: @ %entry 
# | next:73'0                      X error: no match found
# |           89:  vqmovnt.u32 q1, q0 
# | next:73'0     ~~~~~~~~~~~~~~~~~~~~
# | next:73'1      ?                   possible intended match
# |           90:  vmov q0, q1 
# | next:73'0     ~~~~~~~~~~~~~
# |           91:  bx lr 
# | next:73'0     ~~~~~~~
# |           92: .Lfunc_end4: 
# | next:73'0     ~~~~~~~~~~~~~
# |           93:  .size vqmovni32_uminmax_t1, .Lfunc_end4-vqmovni32_uminmax_t1 
# | next:73'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           94:  .fnend 
# | next:73'0     ~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the infrastructure label.

@davemgreen
Copy link
Collaborator

Can you remove all the formatting changes and update the tests that require it, so we can see the differences. This might take quite a bit of work to work through the issues.

@medhatiwari
Copy link
Contributor Author

Can you remove all the formatting changes and update the tests that require it, so we can see the differences. This might take quite a bit of work to work through the issues.

I've cleaned up here, now it shows only the actual code changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ARM] computeKnownBitsForTargetNode - add handling for ARMISD::VMOVIMM\VMVNIMM

3 participants