[llvm] [ARM] preferIncOfAddToSubOfNot to handle hasMVEIntegerOps (PR #196316)

via llvm-commits llvm-commits at lists.llvm.org
Thu May 7 09:05:58 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

* 134426 tests passed
* 3241 tests skipped
* 4 tests failed

## Failed Tests
(click on a test name to see its output)

### LLVM
<details>
<summary>LLVM.CodeGen/ARM/inc-of-add.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=armv6 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\inc-of-add.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\inc-of-add.ll --check-prefixes=ARM,ARM6
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=armv6
# 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\inc-of-add.ll' --check-prefixes=ARM,ARM6
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=armv7 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\inc-of-add.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\inc-of-add.ll --check-prefixes=ARM,ARM78
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=armv7
# 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\inc-of-add.ll' --check-prefixes=ARM,ARM78
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\inc-of-add.ll:199:15: error: ARM78-NEXT: is not on the line after the previous match
# | ; ARM78-NEXT: vmov d16, r0, r1
# |               ^
# | <stdin>:91:2: note: 'next' match was here
# |  vmov d16, r0, r1
# |  ^
# | <stdin>:89:18: note: previous match ended here
# |  vmov d17, r2, r3
# |                  ^
# | <stdin>:90:1: note: non-matching line after previous match is here
# |  mov r12, sp
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\inc-of-add.ll:353:15: error: ARM78-NEXT: is not on the line after the previous match
# | ; ARM78-NEXT: vmov d16, r0, r1
# |               ^
# | <stdin>:113:2: note: 'next' match was here
# |  vmov d16, r0, r1
# |  ^
# | <stdin>:111:18: note: previous match ended here
# |  vmov d17, r2, r3
# |                  ^
# | <stdin>:112:1: note: non-matching line after previous match is here
# |  mov r12, sp
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\inc-of-add.ll:441:15: error: ARM78-NEXT: is not on the line after the previous match
# | ; ARM78-NEXT: vmov d16, r0, r1
# |               ^
# | <stdin>:135:2: note: 'next' match was here
# |  vmov d16, r0, r1
# |  ^
# | <stdin>:133:18: note: previous match ended here
# |  vmov d17, r2, r3
# |                  ^
# | <stdin>:134:1: note: non-matching line after previous match is here
# |  mov r12, sp
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\inc-of-add.ll:506:15: error: ARM78-NEXT: expected string not found in input
# | ; ARM78-NEXT: vmvn q8, q8
# |               ^
# | <stdin>:157:12: note: scanning from here
# |  mov r0, sp
# |            ^
# | <stdin>:160:6: note: possible intended match here
# |  vadd.i64 q8, q8, q9
# |      ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\inc-of-add.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            86: vector_i128_i8: @ @vector_i128_i8 
# |            87:  .fnstart 
# |            88: @ %bb.0: 
# |            89:  vmov d17, r2, r3 
# |            90:  mov r12, sp 
# |            91:  vmov d16, r0, r1 
# | next:199        !~~~~~~~~~~~~~~~  error: match on wrong line
# |            92:  vld1.64 {d18, d19}, [r12] 
# |            93:  vmov.i8 q10, #0x1 
# |            94:  vadd.i8 q8, q8, q9 
# |            95:  vadd.i8 q8, q8, q10 
# |            96:  vmov r0, r1, d16 
# |             .
# |             .
# |             .
# |           108: vector_i128_i16: @ @vector_i128_i16 
# |           109:  .fnstart 
# |           110: @ %bb.0: 
# |           111:  vmov d17, r2, r3 
# |           112:  mov r12, sp 
# |           113:  vmov d16, r0, r1 
# | next:353        !~~~~~~~~~~~~~~~  error: match on wrong line
# |           114:  vld1.64 {d18, d19}, [r12] 
# |           115:  vmov.i16 q10, #0x1 
# |           116:  vadd.i16 q8, q8, q9 
# |           117:  vadd.i16 q8, q8, q10 
# |           118:  vmov r0, r1, d16 
# |             .
# |             .
# |             .
# |           130: vector_i128_i32: @ @vector_i128_i32 
# |           131:  .fnstart 
# |           132: @ %bb.0: 
# |           133:  vmov d17, r2, r3 
# |           134:  mov r12, sp 
# |           135:  vmov d16, r0, r1 
# | next:441        !~~~~~~~~~~~~~~~  error: match on wrong line
# |           136:  vld1.64 {d18, d19}, [r12] 
# |           137:  vmov.i32 q10, #0x1 
# |           138:  vadd.i32 q8, q8, q9 
# |           139:  vadd.i32 q8, q8, q10 
# |           140:  vmov r0, r1, d16 
# |             .
# |             .
# |             .
# |           152: vector_i128_i64: @ @vector_i128_i64 
# |           153:  .fnstart 
# |           154: @ %bb.0: 
# |           155:  vmov d17, r2, r3 
# |           156:  vmov d16, r0, r1 
# |           157:  mov r0, sp 
# | next:506'0                X error: no match found
# |           158:  vld1.64 {d18, d19}, [r0] 
# | next:506'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           159:  adr r0, .LCPI7_0 
# | next:506'0     ~~~~~~~~~~~~~~~~~~
# |           160:  vadd.i64 q8, q8, q9 
# | next:506'0     ~~~~~~~~~~~~~~~~~~~~~
# | next:506'1          ?                possible intended match
# |           161:  vld1.64 {d18, d19}, [r0:128] 
# | next:506'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           162:  vadd.i64 q8, q8, q9 
# | next:506'0     ~~~~~~~~~~~~~~~~~~~~~
# |           163:  vmov r0, r1, d16 
# | next:506'0     ~~~~~~~~~~~~~~~~~~
# |           164:  vmov r2, r3, d17 
# | next:506'0     ~~~~~~~~~~~~~~~~~~
# |           165:  bx lr 
# | next:506'0     ~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.CodeGen/ARM/sub-of-not.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=armv6 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\sub-of-not.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\sub-of-not.ll --check-prefixes=ARM,ARM6
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=armv6
# 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\sub-of-not.ll' --check-prefixes=ARM,ARM6
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=armv7 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\sub-of-not.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\sub-of-not.ll --check-prefixes=ARM,ARM78
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=armv7
# 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\sub-of-not.ll' --check-prefixes=ARM,ARM78
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\sub-of-not.ll:199:15: error: ARM78-NEXT: is not on the line after the previous match
# | ; ARM78-NEXT: vmov d16, r0, r1
# |               ^
# | <stdin>:91:2: note: 'next' match was here
# |  vmov d16, r0, r1
# |  ^
# | <stdin>:89:18: note: previous match ended here
# |  vmov d17, r2, r3
# |                  ^
# | <stdin>:90:1: note: non-matching line after previous match is here
# |  mov r12, sp
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\sub-of-not.ll:353:15: error: ARM78-NEXT: is not on the line after the previous match
# | ; ARM78-NEXT: vmov d16, r0, r1
# |               ^
# | <stdin>:113:2: note: 'next' match was here
# |  vmov d16, r0, r1
# |  ^
# | <stdin>:111:18: note: previous match ended here
# |  vmov d17, r2, r3
# |                  ^
# | <stdin>:112:1: note: non-matching line after previous match is here
# |  mov r12, sp
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\sub-of-not.ll:441:15: error: ARM78-NEXT: is not on the line after the previous match
# | ; ARM78-NEXT: vmov d16, r0, r1
# |               ^
# | <stdin>:135:2: note: 'next' match was here
# |  vmov d16, r0, r1
# |  ^
# | <stdin>:133:18: note: previous match ended here
# |  vmov d17, r2, r3
# |                  ^
# | <stdin>:134:1: note: non-matching line after previous match is here
# |  mov r12, sp
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\sub-of-not.ll:506:15: error: ARM78-NEXT: expected string not found in input
# | ; ARM78-NEXT: vmvn q8, q8
# |               ^
# | <stdin>:157:12: note: scanning from here
# |  mov r0, sp
# |            ^
# | <stdin>:162:6: note: possible intended match here
# |  vadd.i64 q8, q8, q9
# |      ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\ARM\sub-of-not.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            86: vector_i128_i8: @ @vector_i128_i8 
# |            87:  .fnstart 
# |            88: @ %bb.0: 
# |            89:  vmov d17, r2, r3 
# |            90:  mov r12, sp 
# |            91:  vmov d16, r0, r1 
# | next:199        !~~~~~~~~~~~~~~~  error: match on wrong line
# |            92:  vld1.64 {d18, d19}, [r12] 
# |            93:  vmov.i8 q10, #0x1 
# |            94:  vadd.i8 q8, q9, q8 
# |            95:  vadd.i8 q8, q8, q10 
# |            96:  vmov r0, r1, d16 
# |             .
# |             .
# |             .
# |           108: vector_i128_i16: @ @vector_i128_i16 
# |           109:  .fnstart 
# |           110: @ %bb.0: 
# |           111:  vmov d17, r2, r3 
# |           112:  mov r12, sp 
# |           113:  vmov d16, r0, r1 
# | next:353        !~~~~~~~~~~~~~~~  error: match on wrong line
# |           114:  vld1.64 {d18, d19}, [r12] 
# |           115:  vmov.i16 q10, #0x1 
# |           116:  vadd.i16 q8, q9, q8 
# |           117:  vadd.i16 q8, q8, q10 
# |           118:  vmov r0, r1, d16 
# |             .
# |             .
# |             .
# |           130: vector_i128_i32: @ @vector_i128_i32 
# |           131:  .fnstart 
# |           132: @ %bb.0: 
# |           133:  vmov d17, r2, r3 
# |           134:  mov r12, sp 
# |           135:  vmov d16, r0, r1 
# | next:441        !~~~~~~~~~~~~~~~  error: match on wrong line
# |           136:  vld1.64 {d18, d19}, [r12] 
# |           137:  vmov.i32 q10, #0x1 
# |           138:  vadd.i32 q8, q9, q8 
# |           139:  vadd.i32 q8, q8, q10 
# |           140:  vmov r0, r1, d16 
# |             .
# |             .
# |             .
# |           152: vector_i128_i64: @ @vector_i128_i64 
# |           153:  .fnstart 
# |           154: @ %bb.0: 
# |           155:  vmov d17, r2, r3 
# |           156:  vmov d16, r0, r1 
# |           157:  mov r0, sp 
# | next:506'0                X error: no match found
# |           158:  vld1.64 {d18, d19}, [r0] 
# | next:506'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           159:  adr r0, .LCPI7_0 
# | next:506'0     ~~~~~~~~~~~~~~~~~~
# |           160:  vadd.i64 q8, q9, q8 
# | next:506'0     ~~~~~~~~~~~~~~~~~~~~~
# |           161:  vld1.64 {d18, d19}, [r0:128] 
# | next:506'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           162:  vadd.i64 q8, q8, q9 
# | next:506'0     ~~~~~~~~~~~~~~~~~~~~~
# | next:506'1          ?                possible intended match
# |           163:  vmov r0, r1, d16 
# | next:506'0     ~~~~~~~~~~~~~~~~~~
# |           164:  vmov r2, r3, d17 
# | next:506'0     ~~~~~~~~~~~~~~~~~~
# |           165:  bx lr 
# | next:506'0     ~~~~~~~
# |           166:  .p2align 4 
# | next:506'0     ~~~~~~~~~~~~
# |           167: @ %bb.1: 
# | next:506'0     ~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.CodeGen/Thumb2/mve-halving.ll</summary>

```
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-halving.ll -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-halving.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-halving.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-halving.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-halving.ll:236:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmvn q0, q0
# |               ^
# | <stdin>:376:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:377:5: note: possible intended match here
# |  vadd.i8 q0, q0, q1
# |     ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-halving.ll:248:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmvn q0, q0
# |               ^
# | <stdin>:393:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:394:5: note: possible intended match here
# |  vadd.i8 q0, q0, q1
# |     ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-halving.ll:260:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmvn q0, q0
# |               ^
# | <stdin>:410:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:411:6: note: possible intended match here
# |  vadd.i16 q0, q0, q1
# |      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-halving.ll:272:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmvn q0, q0
# |               ^
# | <stdin>:427:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:428:6: note: possible intended match here
# |  vadd.i16 q0, q0, q1
# |      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-halving.ll:284:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmvn q0, q0
# |               ^
# | <stdin>:444:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:445:6: note: possible intended match here
# |  vadd.i32 q0, q0, q1
# |      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-halving.ll:296:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmvn q0, q0
# |               ^
# | <stdin>:461:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:462:6: note: possible intended match here
# |  vadd.i32 q0, q0, q1
# |      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-halving.ll:308:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmvn q0, q0
# |               ^
# | <stdin>:478:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:479:5: note: possible intended match here
# |  vadd.i8 q0, q0, q1
# |     ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-halving.ll:320:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmvn q0, q0
# |               ^
# | <stdin>:495:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:496:5: note: possible intended match here
# |  vadd.i8 q0, q0, q1
# |     ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-halving.ll:332:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmvn q0, q0
# |               ^
# | <stdin>:512:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:513:6: note: possible intended match here
# |  vadd.i16 q0, q0, q1
# |      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-halving.ll:344:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmvn q0, q0
# |               ^
# | <stdin>:529:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:530:6: note: possible intended match here
# |  vadd.i16 q0, q0, q1
# |      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-halving.ll:356:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmvn q0, q0
# |               ^
# | <stdin>:546:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:547:6: note: possible intended match here
# |  vadd.i32 q0, q0, q1
# |      ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-halving.ll:368:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmvn q0, q0
# |               ^
# | <stdin>:563:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:564:6: note: possible intended match here
# |  vadd.i32 q0, q0, q1
# |      ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-halving.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           371:  .type vrhadds_v16i8,%function 
# |           372:  .code 16 
# |           373:  .thumb_func 
# |           374: vrhadds_v16i8: @ @vrhadds_v16i8 
# |           375:  .fnstart 
# |           376: @ %bb.0: 
# | next:236'0             X error: no match found
# |           377:  vadd.i8 q0, q0, q1 
# | next:236'0     ~~~~~~~~~~~~~~~~~~~~
# | next:236'1         ?                possible intended match
# |           378:  movs r0, #1 
# | next:236'0     ~~~~~~~~~~~~~
# |           379:  vadd.i8 q0, q0, r0 
# | next:236'0     ~~~~~~~~~~~~~~~~~~~~
# |           380:  vshr.s8 q0, q0, #1 
# | next:236'0     ~~~~~~~~~~~~~~~~~~~~
# |           381:  bx lr 
# | next:236'0     ~~~~~~~
# |           382: .Lfunc_end24: 
# | next:236'0     ~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           388:  .type vrhaddu_v16i8,%function 
# | next:236'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           389:  .code 16 
# | next:236'0     ~~~~~~~~~~
# |           390:  .thumb_func 
# | next:236'0     ~~~~~~~~~~~~~
# |           391: vrhaddu_v16i8: @ @vrhaddu_v16i8 
# | next:236'0     ~~~~~~~~~~~~~~
# |           392:  .fnstart 
# |           393: @ %bb.0: 
# | next:248'0             X error: no match found
# |           394:  vadd.i8 q0, q0, q1 
# | next:248'0     ~~~~~~~~~~~~~~~~~~~~
# | next:248'1         ?                possible intended match
# |           395:  movs r0, #1 
# | next:248'0     ~~~~~~~~~~~~~
# |           396:  vadd.i8 q0, q0, r0 
# | next:248'0     ~~~~~~~~~~~~~~~~~~~~
# |           397:  vshr.u8 q0, q0, #1 
# | next:248'0     ~~~~~~~~~~~~~~~~~~~~
# |           398:  bx lr 
# | next:248'0     ~~~~~~~
# |           399: .Lfunc_end25: 
# | next:248'0     ~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           405:  .type vrhadds_v8i16,%function 
# | next:248'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           406:  .code 16 
# | next:248'0     ~~~~~~~~~~
# |           407:  .thumb_func 
# | next:248'0     ~~~~~~~~~~~~~
# |           408: vrhadds_v8i16: @ @vrhadds_v8i16 
# | next:248'0     ~~~~~~~~~~~~~~
# |           409:  .fnstart 
# |           410: @ %bb.0: 
# | next:260'0             X error: no match found
# |           411:  vadd.i16 q0, q0, q1 
# | next:260'0     ~~~~~~~~~~~~~~~~~~~~~
# | next:260'1          ?                possible intended match
# |           412:  movs r0, #1 
# | next:260'0     ~~~~~~~~~~~~~
# |           413:  vadd.i16 q0, q0, r0 
# | next:260'0     ~~~~~~~~~~~~~~~~~~~~~
# |           414:  vshr.s16 q0, q0, #1 
# | next:260'0     ~~~~~~~~~~~~~~~~~~~~~
# |           415:  bx lr 
# | next:260'0     ~~~~~~~
# |           416: .Lfunc_end26: 
# | next:260'0     ~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           422:  .type vrhaddu_v8i16,%function 
# | next:260'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           423:  .code 16 
# | next:260'0     ~~~~~~~~~~
# |           424:  .thumb_func 
# | next:260'0     ~~~~~~~~~~~~~
# |           425: vrhaddu_v8i16: @ @vrhaddu_v8i16 
# | next:260'0     ~~~~~~~~~~~~~~
# |           426:  .fnstart 
# |           427: @ %bb.0: 
# | next:272'0             X error: no match found
# |           428:  vadd.i16 q0, q0, q1 
# | next:272'0     ~~~~~~~~~~~~~~~~~~~~~
# | next:272'1          ?                possible intended match
# |           429:  movs r0, #1 
# | next:272'0     ~~~~~~~~~~~~~
# |           430:  vadd.i16 q0, q0, r0 
# | next:272'0     ~~~~~~~~~~~~~~~~~~~~~
# |           431:  vshr.u16 q0, q0, #1 
# | next:272'0     ~~~~~~~~~~~~~~~~~~~~~
# |           432:  bx lr 
# | next:272'0     ~~~~~~~
# |           433: .Lfunc_end27: 
# | next:272'0     ~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           439:  .type vrhadds_v4i32,%function 
# | next:272'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           440:  .code 16 
# | next:272'0     ~~~~~~~~~~
# |           441:  .thumb_func 
# | next:272'0     ~~~~~~~~~~~~~
# |           442: vrhadds_v4i32: @ @vrhadds_v4i32 
# | next:272'0     ~~~~~~~~~~~~~~
# |           443:  .fnstart 
# |           444: @ %bb.0: 
# | next:284'0             X error: no match found
# |           445:  vadd.i32 q0, q0, q1 
# | next:284'0     ~~~~~~~~~~~~~~~~~~~~~
# | next:284'1          ?                possible intended match
# |           446:  movs r0, #1 
# | next:284'0     ~~~~~~~~~~~~~
# |           447:  vadd.i32 q0, q0, r0 
# | next:284'0     ~~~~~~~~~~~~~~~~~~~~~
# |           448:  vshr.s32 q0, q0, #1 
# | next:284'0     ~~~~~~~~~~~~~~~~~~~~~
# |           449:  bx lr 
# | next:284'0     ~~~~~~~
# |           450: .Lfunc_end28: 
# | next:284'0     ~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           456:  .type vrhaddu_v4i32,%function 
# | next:284'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           457:  .code 16 
# | next:284'0     ~~~~~~~~~~
# |           458:  .thumb_func 
# | next:284'0     ~~~~~~~~~~~~~
# |           459: vrhaddu_v4i32: @ @vrhaddu_v4i32 
# | next:284'0     ~~~~~~~~~~~~~~
# |           460:  .fnstart 
# |           461: @ %bb.0: 
# | next:296'0             X error: no match found
# |           462:  vadd.i32 q0, q0, q1 
# | next:296'0     ~~~~~~~~~~~~~~~~~~~~~
# | next:296'1          ?                possible intended match
# |           463:  movs r0, #1 
# | next:296'0     ~~~~~~~~~~~~~
# |           464:  vadd.i32 q0, q0, r0 
# | next:296'0     ~~~~~~~~~~~~~~~~~~~~~
# |           465:  vshr.u32 q0, q0, #1 
# | next:296'0     ~~~~~~~~~~~~~~~~~~~~~
# |           466:  bx lr 
# | next:296'0     ~~~~~~~
# |           467: .Lfunc_end29: 
# | next:296'0     ~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           473:  .type vrhadds_v16i8_nwop,%function 
# | next:296'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           474:  .code 16 
# | next:296'0     ~~~~~~~~~~
# |           475:  .thumb_func 
# | next:296'0     ~~~~~~~~~~~~~
# |           476: vrhadds_v16i8_nwop: @ @vrhadds_v16i8_nwop 
# | next:296'0     ~~~~~~~~~~~~~~~~~~~
# |           477:  .fnstart 
# |           478: @ %bb.0: 
# | next:308'0             X error: no match found
# |           479:  vadd.i8 q0, q0, q1 
# | next:308'0     ~~~~~~~~~~~~~~~~~~~~
# | next:308'1         ?                possible intended match
# |           480:  movs r0, #1 
# | next:308'0     ~~~~~~~~~~~~~
# |           481:  vadd.i8 q0, q0, r0 
# | next:308'0     ~~~~~~~~~~~~~~~~~~~~
# |           482:  vshr.s8 q0, q0, #1 
# | next:308'0     ~~~~~~~~~~~~~~~~~~~~
# |           483:  bx lr 
# | next:308'0     ~~~~~~~
# |           484: .Lfunc_end30: 
# | next:308'0     ~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           490:  .type vrhaddu_v16i8_nwop,%function 
# | next:308'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           491:  .code 16 
# | next:308'0     ~~~~~~~~~~
# |           492:  .thumb_func 
# | next:308'0     ~~~~~~~~~~~~~
# |           493: vrhaddu_v16i8_nwop: @ @vrhaddu_v16i8_nwop 
# | next:308'0     ~~~~~~~~~~~~~~~~~~~
# |           494:  .fnstart 
# |           495: @ %bb.0: 
# | next:320'0             X error: no match found
# |           496:  vadd.i8 q0, q0, q1 
# | next:320'0     ~~~~~~~~~~~~~~~~~~~~
# | next:320'1         ?                possible intended match
# |           497:  movs r0, #1 
# | next:320'0     ~~~~~~~~~~~~~
# |           498:  vadd.i8 q0, q0, r0 
# | next:320'0     ~~~~~~~~~~~~~~~~~~~~
# |           499:  vshr.u8 q0, q0, #1 
# | next:320'0     ~~~~~~~~~~~~~~~~~~~~
# |           500:  bx lr 
# | next:320'0     ~~~~~~~
# |           501: .Lfunc_end31: 
# | next:320'0     ~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           507:  .type vrhadds_v8i16_nwop,%function 
# | next:320'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           508:  .code 16 
# | next:320'0     ~~~~~~~~~~
# |           509:  .thumb_func 
# | next:320'0     ~~~~~~~~~~~~~
# |           510: vrhadds_v8i16_nwop: @ @vrhadds_v8i16_nwop 
# | next:320'0     ~~~~~~~~~~~~~~~~~~~
# |           511:  .fnstart 
# |           512: @ %bb.0: 
# | next:332'0             X error: no match found
# |           513:  vadd.i16 q0, q0, q1 
# | next:332'0     ~~~~~~~~~~~~~~~~~~~~~
# | next:332'1          ?                possible intended match
# |           514:  movs r0, #1 
# | next:332'0     ~~~~~~~~~~~~~
# |           515:  vadd.i16 q0, q0, r0 
# | next:332'0     ~~~~~~~~~~~~~~~~~~~~~
# |           516:  vshr.s16 q0, q0, #1 
# | next:332'0     ~~~~~~~~~~~~~~~~~~~~~
# |           517:  bx lr 
# | next:332'0     ~~~~~~~
# |           518: .Lfunc_end32: 
# | next:332'0     ~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           524:  .type vrhaddu_v8i16_nwop,%function 
# | next:332'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           525:  .code 16 
# | next:332'0     ~~~~~~~~~~
# |           526:  .thumb_func 
# | next:332'0     ~~~~~~~~~~~~~
# |           527: vrhaddu_v8i16_nwop: @ @vrhaddu_v8i16_nwop 
# | next:332'0     ~~~~~~~~~~~~~~~~~~~
# |           528:  .fnstart 
# |           529: @ %bb.0: 
# | next:344'0             X error: no match found
# |           530:  vadd.i16 q0, q0, q1 
# | next:344'0     ~~~~~~~~~~~~~~~~~~~~~
# | next:344'1          ?                possible intended match
# |           531:  movs r0, #1 
# | next:344'0     ~~~~~~~~~~~~~
# |           532:  vadd.i16 q0, q0, r0 
# | next:344'0     ~~~~~~~~~~~~~~~~~~~~~
# |           533:  vshr.u16 q0, q0, #1 
# | next:344'0     ~~~~~~~~~~~~~~~~~~~~~
# |           534:  bx lr 
# | next:344'0     ~~~~~~~
# |           535: .Lfunc_end33: 
# | next:344'0     ~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           541:  .type vrhadds_v4i32_nwop,%function 
# | next:344'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           542:  .code 16 
# | next:344'0     ~~~~~~~~~~
# |           543:  .thumb_func 
# | next:344'0     ~~~~~~~~~~~~~
# |           544: vrhadds_v4i32_nwop: @ @vrhadds_v4i32_nwop 
# | next:344'0     ~~~~~~~~~~~~~~~~~~~
# |           545:  .fnstart 
# |           546: @ %bb.0: 
# | next:356'0             X error: no match found
# |           547:  vadd.i32 q0, q0, q1 
# | next:356'0     ~~~~~~~~~~~~~~~~~~~~~
# | next:356'1          ?                possible intended match
# |           548:  movs r0, #1 
# | next:356'0     ~~~~~~~~~~~~~
# |           549:  vadd.i32 q0, q0, r0 
# | next:356'0     ~~~~~~~~~~~~~~~~~~~~~
# |           550:  vshr.s32 q0, q0, #1 
# | next:356'0     ~~~~~~~~~~~~~~~~~~~~~
# |           551:  bx lr 
# | next:356'0     ~~~~~~~
# |           552: .Lfunc_end34: 
# | next:356'0     ~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           558:  .type vrhaddu_v4i32_nwop,%function 
# | next:356'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           559:  .code 16 
# | next:356'0     ~~~~~~~~~~
# |           560:  .thumb_func 
# | next:356'0     ~~~~~~~~~~~~~
# |           561: vrhaddu_v4i32_nwop: @ @vrhaddu_v4i32_nwop 
# | next:356'0     ~~~~~~~~~~~~~~~~~~~
# |           562:  .fnstart 
# |           563: @ %bb.0: 
# | next:368'0             X error: no match found
# |           564:  vadd.i32 q0, q0, q1 
# | next:368'0     ~~~~~~~~~~~~~~~~~~~~~
# | next:368'1          ?                possible intended match
# |           565:  movs r0, #1 
# | next:368'0     ~~~~~~~~~~~~~
# |           566:  vadd.i32 q0, q0, r0 
# | next:368'0     ~~~~~~~~~~~~~~~~~~~~~
# |           567:  vshr.u32 q0, q0, #1 
# | next:368'0     ~~~~~~~~~~~~~~~~~~~~~
# |           568:  bx lr 
# | next:368'0     ~~~~~~~
# |           569: .Lfunc_end35: 
# | next:368'0     ~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.CodeGen/Thumb2/mve-vhadd.ll</summary>

```
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-vhadd.ll -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vhadd.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-vhadd.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-vhadd.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vhadd.ll:224:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: vmovlb.s16 q0, q0
# |               ^
# | <stdin>:245:2: note: 'next' match was here
# |  vmovlb.s16 q0, q0
# |  ^
# | <stdin>:243:18: note: previous match ended here
# | @ %bb.0: @ %entry
# |                  ^
# | <stdin>:244:1: note: non-matching line after previous match is here
# |  vmovlb.s16 q1, q1
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vhadd.ll:290:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: vmovlb.s8 q0, q0
# |               ^
# | <stdin>:308:2: note: 'next' match was here
# |  vmovlb.s8 q0, q0
# |  ^
# | <stdin>:306:18: note: previous match ended here
# | @ %bb.0: @ %entry
# |                  ^
# | <stdin>:307:1: note: non-matching line after previous match is here
# |  vmovlb.s8 q1, q1
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vhadd.ll:330:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: vmovlb.s8 q0, q0
# |               ^
# | <stdin>:347:2: note: 'next' match was here
# |  vmovlb.s8 q0, q0
# |  ^
# | <stdin>:345:18: note: previous match ended here
# | @ %bb.0: @ %entry
# |                  ^
# | <stdin>:346:1: note: non-matching line after previous match is here
# |  vmovlb.s8 q1, q1
# | ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\Thumb2\mve-vhadd.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |           .
# |           .
# |           .
# |         240:  .thumb_func 
# |         241: vrhadds_v4i16: @ @vrhadds_v4i16 
# |         242:  .fnstart 
# |         243: @ %bb.0: @ %entry 
# |         244:  vmovlb.s16 q1, q1 
# |         245:  vmovlb.s16 q0, q0 
# | next:224      !~~~~~~~~~~~~~~~~  error: match on wrong line
# |         246:  vadd.i32 q0, q0, q1 
# |         247:  movs r0, #1 
# |         248:  vadd.i32 q0, q0, r0 
# |         249:  vshr.u32 q0, q0, #1 
# |         250:  bx lr 
# |           .
# |           .
# |           .
# |         303:  .thumb_func 
# |         304: vrhadds_v4i8: @ @vrhadds_v4i8 
# |         305:  .fnstart 
# |         306: @ %bb.0: @ %entry 
# |         307:  vmovlb.s8 q1, q1 
# |         308:  vmovlb.s8 q0, q0 
# | next:290      !~~~~~~~~~~~~~~~  error: match on wrong line
# |         309:  vmovlb.s16 q1, q1 
# |         310:  vmovlb.s16 q0, q0 
# |         311:  vadd.i32 q0, q0, q1 
# |         312:  movs r0, #1 
# |         313:  vadd.i32 q0, q0, r0 
# |           .
# |           .
# |           .
# |         342:  .thumb_func 
# |         343: vrhadds_v8i8: @ @vrhadds_v8i8 
# |         344:  .fnstart 
# |         345: @ %bb.0: @ %entry 
# |         346:  vmovlb.s8 q1, q1 
# |         347:  vmovlb.s8 q0, q0 
# | next:330      !~~~~~~~~~~~~~~~  error: match on wrong line
# |         348:  vadd.i16 q0, q0, q1 
# |         349:  movs r0, #1 
# |         350:  vadd.i16 q0, q0, r0 
# |         351:  vshr.u16 q0, q0, #1 
# |         352:  bx lr 
# |           .
# |           .
# |           .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

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.

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


More information about the llvm-commits mailing list