[llvm] [AArch64] Add USDOT to the instruction we perform performAddDotCombine. (PR #171864)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 11 09:03:42 PST 2025
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 128570 tests passed
* 2805 tests skipped
* 1 test failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.CodeGen/AArch64/neon-dotreduce.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple aarch64-linux-gnu -mattr=+dotprod,+i8mm < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\neon-dotreduce.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\neon-dotreduce.ll --check-prefixes=CHECK,CHECK-SD
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple aarch64-linux-gnu -mattr=+dotprod,+i8mm
# 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\AArch64\neon-dotreduce.ll' --check-prefixes=CHECK,CHECK-SD
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\neon-dotreduce.ll:1378:18: error: CHECK-SD-NEXT: expected string not found in input
# | ; CHECK-SD-NEXT: movi v5.2d, #0000000000000000
# | ^
# | <stdin>:601:31: note: scanning from here
# | movi v4.2d, #0000000000000000
# | ^
# | <stdin>:603:4: note: possible intended match here
# | usdot v4.2s, v0.8b, v1.8b
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\neon-dotreduce.ll:1419:18: error: CHECK-SD-NEXT: expected string not found in input
# | ; CHECK-SD-NEXT: movi v5.2d, #0000000000000000
# | ^
# | <stdin>:617:31: note: scanning from here
# | movi v4.2d, #0000000000000000
# | ^
# | <stdin>:619:4: note: possible intended match here
# | usdot v4.2s, v1.8b, v0.8b
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\neon-dotreduce.ll:1460:18: error: CHECK-SD-NEXT: expected string not found in input
# | ; CHECK-SD-NEXT: movi v5.2d, #0000000000000000
# | ^
# | <stdin>:633:31: note: scanning from here
# | movi v4.2d, #0000000000000000
# | ^
# | <stdin>:635:4: note: possible intended match here
# | usdot v4.4s, v0.16b, v1.16b
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\neon-dotreduce.ll:1512:18: error: CHECK-SD-NEXT: expected string not found in input
# | ; CHECK-SD-NEXT: movi v5.2d, #0000000000000000
# | ^
# | <stdin>:649:31: note: scanning from here
# | movi v4.2d, #0000000000000000
# | ^
# | <stdin>:651:4: note: possible intended match here
# | usdot v4.4s, v1.16b, v0.16b
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\neon-dotreduce.ll:4387:18: error: CHECK-SD-NEXT: expected string not found in input
# | ; CHECK-SD-NEXT: movi v1.2d, #0000000000000000
# | ^
# | <stdin>:1603:31: note: scanning from here
# | movi v0.2d, #0000000000000000
# | ^
# | <stdin>:1609:3: note: possible intended match here
# | fmov w8, s0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\neon-dotreduce.ll:4441:18: error: CHECK-SD-NEXT: expected string not found in input
# | ; CHECK-SD-NEXT: movi v18.2d, #0000000000000000
# | ^
# | <stdin>:1623:32: note: scanning from here
# | movi v17.2d, #0000000000000000
# | ^
# | <stdin>:1626:4: note: possible intended match here
# | usdot v17.4s, v0.16b, v2.16b
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\neon-dotreduce.ll:8784:18: error: CHECK-SD-NEXT: expected string not found in input
# | ; CHECK-SD-NEXT: movi v3.2d, #0000000000000000
# | ^
# | <stdin>:2995:31: note: scanning from here
# | movi v0.2d, #0000000000000000
# | ^
# | <stdin>:2996:2: note: possible intended match here
# | movi v1.2d, #0000000000000000
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\neon-dotreduce.ll:8866:18: error: CHECK-SD-NEXT: is not on the line after the previous match
# | ; CHECK-SD-NEXT: movi v18.2d, #0000000000000000
# | ^
# | <stdin>:3022:2: note: 'next' match was here
# | movi v18.2d, #0000000000000000
# | ^
# | <stdin>:3019:20: note: previous match ended here
# | // %bb.0: // %entry
# | ^
# | <stdin>:3020:1: note: non-matching line after previous match is here
# | movi v16.2d, #0000000000000000
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\neon-dotreduce.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 596: .p2align 2
# | 597: .type test_usdot_v8i8_double, at function
# | 598: test_usdot_v8i8_double: // @test_usdot_v8i8_double
# | 599: .cfi_startproc
# | 600: // %bb.0: // %entry
# | 601: movi v4.2d, #0000000000000000
# | next:1378'0 X error: no match found
# | 602: usdot v4.2s, v2.8b, v3.8b
# | next:1378'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 603: usdot v4.2s, v0.8b, v1.8b
# | next:1378'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1378'1 ? possible intended match
# | 604: addp v0.2s, v4.2s, v4.2s
# | next:1378'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 605: fmov w0, s0
# | next:1378'0 ~~~~~~~~~~~~~
# | 606: ret
# | next:1378'0 ~~~~~
# | 607: .Lfunc_end32:
# | next:1378'0 ~~~~~~~~~~~~~~
# | 608: .size test_usdot_v8i8_double, .Lfunc_end32-test_usdot_v8i8_double
# | next:1378'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 612: .p2align 2
# | next:1378'0 ~~~~~~~~~~~~
# | 613: .type test_usdot_swapped_operands_v8i8_double, at function
# | next:1378'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 614: test_usdot_swapped_operands_v8i8_double: // @test_usdot_swapped_operands_v8i8_double
# | next:1378'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 615: .cfi_startproc
# | 616: // %bb.0: // %entry
# | 617: movi v4.2d, #0000000000000000
# | next:1419'0 X error: no match found
# | 618: usdot v4.2s, v3.8b, v2.8b
# | next:1419'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 619: usdot v4.2s, v1.8b, v0.8b
# | next:1419'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1419'1 ? possible intended match
# | 620: addp v0.2s, v4.2s, v4.2s
# | next:1419'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 621: fmov w0, s0
# | next:1419'0 ~~~~~~~~~~~~~
# | 622: ret
# | next:1419'0 ~~~~~
# | 623: .Lfunc_end33:
# | next:1419'0 ~~~~~~~~~~~~~~
# | 624: .size test_usdot_swapped_operands_v8i8_double, .Lfunc_end33-test_usdot_swapped_operands_v8i8_double
# | next:1419'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 628: .p2align 2
# | next:1419'0 ~~~~~~~~~~~~
# | 629: .type test_usdot_v16i8_double, at function
# | next:1419'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 630: test_usdot_v16i8_double: // @test_usdot_v16i8_double
# | next:1419'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 631: .cfi_startproc
# | 632: // %bb.0: // %entry
# | 633: movi v4.2d, #0000000000000000
# | next:1460'0 X error: no match found
# | 634: usdot v4.4s, v2.16b, v3.16b
# | next:1460'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 635: usdot v4.4s, v0.16b, v1.16b
# | next:1460'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1460'1 ? possible intended match
# | 636: addv s0, v4.4s
# | next:1460'0 ~~~~~~~~~~~~~~~~
# | 637: fmov w0, s0
# | next:1460'0 ~~~~~~~~~~~~~
# | 638: ret
# | next:1460'0 ~~~~~
# | 639: .Lfunc_end34:
# | next:1460'0 ~~~~~~~~~~~~~~
# | 640: .size test_usdot_v16i8_double, .Lfunc_end34-test_usdot_v16i8_double
# | next:1460'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 644: .p2align 2
# | next:1460'0 ~~~~~~~~~~~~
# | 645: .type test_usdot_swapped_operands_v16i8_double, at function
# | next:1460'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 646: test_usdot_swapped_operands_v16i8_double: // @test_usdot_swapped_operands_v16i8_double
# | next:1460'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 647: .cfi_startproc
# | 648: // %bb.0: // %entry
# | 649: movi v4.2d, #0000000000000000
# | next:1512'0 X error: no match found
# | 650: usdot v4.4s, v3.16b, v2.16b
# | next:1512'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 651: usdot v4.4s, v1.16b, v0.16b
# | next:1512'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1512'1 ? possible intended match
# | 652: addv s0, v4.4s
# | next:1512'0 ~~~~~~~~~~~~~~~~
# | 653: fmov w0, s0
# | next:1512'0 ~~~~~~~~~~~~~
# | 654: ret
# | next:1512'0 ~~~~~
# | 655: .Lfunc_end35:
# | next:1512'0 ~~~~~~~~~~~~~~
# | 656: .size test_usdot_swapped_operands_v16i8_double, .Lfunc_end35-test_usdot_swapped_operands_v16i8_double
# | next:1512'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 1598: .p2align 2
# | 1599: .type test_usdot_v32i8, at function
# | 1600: test_usdot_v32i8: // @test_usdot_v32i8
# | 1601: .cfi_startproc
# | 1602: // %bb.0: // %entry
# | 1603: movi v0.2d, #0000000000000000
# | next:4387'0 X error: no match found
# | 1604: ldp q1, q3, [x0]
# | next:4387'0 ~~~~~~~~~~~~~~~~~~
# | 1605: ldp q2, q4, [x1]
# | next:4387'0 ~~~~~~~~~~~~~~~~~~
# | 1606: usdot v0.4s, v3.16b, v4.16b
# | next:4387'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1607: usdot v0.4s, v1.16b, v2.16b
# | next:4387'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1608: addv s0, v0.4s
# | next:4387'0 ~~~~~~~~~~~~~~~~
# | 1609: fmov w8, s0
# | next:4387'0 ~~~~~~~~~~~~~
# | next:4387'1 ? possible intended match
# | 1610: add w0, w8, w2
# | next:4387'0 ~~~~~~~~~~~~~~~~
# | 1611: ret
# | next:4387'0 ~~~~~
# | 1612: .Lfunc_end51:
# | next:4387'0 ~~~~~~~~~~~~~~
# | 1613: .size test_usdot_v32i8, .Lfunc_end51-test_usdot_v32i8
# | next:4387'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1614: .cfi_endproc
# | next:4387'0 ~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 1618: .type test_usdot_v32i8_double, at function
# | next:4387'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1619: test_usdot_v32i8_double: // @test_usdot_v32i8_double
# | next:4387'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 1620: .cfi_startproc
# | 1621: // %bb.0: // %entry
# | 1622: movi v16.2d, #0000000000000000
# | 1623: movi v17.2d, #0000000000000000
# | next:4441'0 X error: no match found
# | 1624: usdot v17.4s, v1.16b, v3.16b
# | next:4441'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1625: usdot v16.4s, v5.16b, v7.16b
# | next:4441'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1626: usdot v17.4s, v0.16b, v2.16b
# | next:4441'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:4441'1 ? possible intended match
# | 1627: usdot v16.4s, v4.16b, v6.16b
# | next:4441'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1628: add v0.4s, v17.4s, v16.4s
# | next:4441'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1629: addv s0, v0.4s
# | next:4441'0 ~~~~~~~~~~~~~~~~
# | 1630: fmov w0, s0
# | next:4441'0 ~~~~~~~~~~~~~
# | 1631: ret
# | next:4441'0 ~~~~~
# | .
# | .
# | .
# | 2990: .p2align 2
# | 2991: .type test_usdot_v64i8, at function
# | 2992: test_usdot_v64i8: // @test_usdot_v64i8
# | 2993: .cfi_startproc
# | 2994: // %bb.0: // %entry
# | 2995: movi v0.2d, #0000000000000000
# | next:8784'0 X error: no match found
# | 2996: movi v1.2d, #0000000000000000
# | next:8784'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:8784'1 ? possible intended match
# | 2997: ldp q2, q3, [x0, #32]
# | next:8784'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 2998: ldp q4, q5, [x1, #32]
# | next:8784'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 2999: usdot v1.4s, v3.16b, v5.16b
# | next:8784'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 3000: usdot v0.4s, v2.16b, v4.16b
# | next:8784'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 3001: ldp q2, q3, [x0]
# | next:8784'0 ~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 3017: test_usdot_v64i8_double: // @test_usdot_v64i8_double
# | next:8784'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 3018: .cfi_startproc
# | 3019: // %bb.0: // %entry
# | 3020: movi v16.2d, #0000000000000000
# | 3021: movi v17.2d, #0000000000000000
# | 3022: movi v18.2d, #0000000000000000
# | next:8866 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 3023: movi v19.2d, #0000000000000000
# | 3024: ldp q20, q21, [sp, #96]
# | 3025: ldp q22, q23, [sp, #32]
# | 3026: usdot v16.4s, v3.16b, v7.16b
# | 3027: usdot v18.4s, v2.16b, v6.16b
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# 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/171864
More information about the llvm-commits
mailing list