[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