[llvm] [AArch64] Improve fixed vector lowering for cttz/ctlz when sve (PR #192427)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 16 04:13:25 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 133645 tests passed
* 3113 tests skipped
* 1 test failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.CodeGen/AArch64/ctlz-cttz-fixed-vectors.ll</summary>
```
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\AArch64\ctlz-cttz-fixed-vectors.ll -mtriple=aarch64-linux-gnu -mattr=+neon | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\ctlz-cttz-fixed-vectors.ll --check-prefix=NEON
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=aarch64-linux-gnu -mattr=+neon
# 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\ctlz-cttz-fixed-vectors.ll' --check-prefix=NEON
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\ctlz-cttz-fixed-vectors.ll:190:14: error: NEON-NEXT: expected string not found in input
# | ; NEON-NEXT: movi v1.8b, #1
# | ^
# | <stdin>:136:10: note: scanning from here
# | // %bb.0:
# | ^
# | <stdin>:137:2: note: possible intended match here
# | rbit v0.8b, v0.8b
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\ctlz-cttz-fixed-vectors.ll:210:14: error: NEON-NEXT: expected string not found in input
# | ; NEON-NEXT: movi v1.4h, #1
# | ^
# | <stdin>:149:10: note: scanning from here
# | // %bb.0:
# | ^
# | <stdin>:152:2: note: possible intended match here
# | clz v0.4h, v0.4h
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\ctlz-cttz-fixed-vectors.ll:233:14: error: NEON-NEXT: expected string not found in input
# | ; NEON-NEXT: movi v1.2s, #1
# | ^
# | <stdin>:163:10: note: scanning from here
# | // %bb.0:
# | ^
# | <stdin>:166:2: note: possible intended match here
# | clz v0.2s, v0.2s
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\ctlz-cttz-fixed-vectors.ll:283:14: error: NEON-NEXT: expected string not found in input
# | ; NEON-NEXT: movi v1.16b, #1
# | ^
# | <stdin>:196:10: note: scanning from here
# | // %bb.0:
# | ^
# | <stdin>:197:2: note: possible intended match here
# | rbit v0.16b, v0.16b
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\ctlz-cttz-fixed-vectors.ll:303:14: error: NEON-NEXT: expected string not found in input
# | ; NEON-NEXT: movi v1.8h, #1
# | ^
# | <stdin>:209:10: note: scanning from here
# | // %bb.0:
# | ^
# | <stdin>:212:2: note: possible intended match here
# | clz v0.8h, v0.8h
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\ctlz-cttz-fixed-vectors.ll:326:14: error: NEON-NEXT: expected string not found in input
# | ; NEON-NEXT: movi v1.4s, #1
# | ^
# | <stdin>:223:10: note: scanning from here
# | // %bb.0:
# | ^
# | <stdin>:226:2: note: possible intended match here
# | clz v0.4s, v0.4s
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\ctlz-cttz-fixed-vectors.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 131: .globl cttz_v8i8 // -- Begin function cttz_v8i8
# | 132: .p2align 2
# | 133: .type cttz_v8i8, at function
# | 134: cttz_v8i8: // @cttz_v8i8
# | 135: .cfi_startproc
# | 136: // %bb.0:
# | next:190'0 X error: no match found
# | 137: rbit v0.8b, v0.8b
# | next:190'0 ~~~~~~~~~~~~~~~~~~~
# | next:190'1 ? possible intended match
# | 138: clz v0.8b, v0.8b
# | next:190'0 ~~~~~~~~~~~~~~~~~~
# | 139: ret
# | next:190'0 ~~~~~
# | 140: .Lfunc_end8:
# | next:190'0 ~~~~~~~~~~~~~
# | 141: .size cttz_v8i8, .Lfunc_end8-cttz_v8i8
# | next:190'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 142: .cfi_endproc
# | next:190'0 ~~~~~~~~~~~~~~
# | 143: // -- End function
# | next:190'0 ~~~~~~~~~~~~~~~~~~~~
# | 144: .globl cttz_v4i16 // -- Begin function cttz_v4i16
# | next:190'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 145: .p2align 2
# | next:190'0 ~~~~~~~~~~~~
# | 146: .type cttz_v4i16, at function
# | next:190'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 147: cttz_v4i16: // @cttz_v4i16
# | next:190'0 ~~~~~~~~~~~
# | 148: .cfi_startproc
# | 149: // %bb.0:
# | next:210'0 X error: no match found
# | 150: rev16 v0.8b, v0.8b
# | next:210'0 ~~~~~~~~~~~~~~~~~~~~
# | 151: rbit v0.8b, v0.8b
# | next:210'0 ~~~~~~~~~~~~~~~~~~~
# | 152: clz v0.4h, v0.4h
# | next:210'0 ~~~~~~~~~~~~~~~~~~
# | next:210'1 ? possible intended match
# | 153: ret
# | next:210'0 ~~~~~
# | 154: .Lfunc_end9:
# | next:210'0 ~~~~~~~~~~~~~
# | 155: .size cttz_v4i16, .Lfunc_end9-cttz_v4i16
# | next:210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 156: .cfi_endproc
# | next:210'0 ~~~~~~~~~~~~~~
# | 157: // -- End function
# | next:210'0 ~~~~~~~~~~~~~~~~~~~~
# | 158: .globl cttz_v2i32 // -- Begin function cttz_v2i32
# | next:210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 159: .p2align 2
# | next:210'0 ~~~~~~~~~~~~
# | 160: .type cttz_v2i32, at function
# | next:210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 161: cttz_v2i32: // @cttz_v2i32
# | next:210'0 ~~~~~~~~~~~
# | 162: .cfi_startproc
# | 163: // %bb.0:
# | next:233'0 X error: no match found
# | 164: rev32 v0.8b, v0.8b
# | next:233'0 ~~~~~~~~~~~~~~~~~~~~
# | 165: rbit v0.8b, v0.8b
# | next:233'0 ~~~~~~~~~~~~~~~~~~~
# | 166: clz v0.2s, v0.2s
# | next:233'0 ~~~~~~~~~~~~~~~~~~
# | next:233'1 ? possible intended match
# | 167: ret
# | next:233'0 ~~~~~
# | 168: .Lfunc_end10:
# | next:233'0 ~~~~~~~~~~~~~~
# | 169: .size cttz_v2i32, .Lfunc_end10-cttz_v2i32
# | next:233'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 170: .cfi_endproc
# | next:233'0 ~~~~~~~~~~~~~~
# | 171: // -- End function
# | next:233'0 ~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 191: .globl cttz_v16i8 // -- Begin function cttz_v16i8
# | 192: .p2align 2
# | 193: .type cttz_v16i8, at function
# | 194: cttz_v16i8: // @cttz_v16i8
# | 195: .cfi_startproc
# | 196: // %bb.0:
# | next:283'0 X error: no match found
# | 197: rbit v0.16b, v0.16b
# | next:283'0 ~~~~~~~~~~~~~~~~~~~~~
# | next:283'1 ? possible intended match
# | 198: clz v0.16b, v0.16b
# | next:283'0 ~~~~~~~~~~~~~~~~~~~~
# | 199: ret
# | next:283'0 ~~~~~
# | 200: .Lfunc_end12:
# | next:283'0 ~~~~~~~~~~~~~~
# | 201: .size cttz_v16i8, .Lfunc_end12-cttz_v16i8
# | next:283'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 202: .cfi_endproc
# | next:283'0 ~~~~~~~~~~~~~~
# | 203: // -- End function
# | next:283'0 ~~~~~~~~~~~~~~~~~~~~
# | 204: .globl cttz_v8i16 // -- Begin function cttz_v8i16
# | next:283'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 205: .p2align 2
# | next:283'0 ~~~~~~~~~~~~
# | 206: .type cttz_v8i16, at function
# | next:283'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 207: cttz_v8i16: // @cttz_v8i16
# | next:283'0 ~~~~~~~~~~~
# | 208: .cfi_startproc
# | 209: // %bb.0:
# | next:303'0 X error: no match found
# | 210: rev16 v0.16b, v0.16b
# | next:303'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 211: rbit v0.16b, v0.16b
# | next:303'0 ~~~~~~~~~~~~~~~~~~~~~
# | 212: clz v0.8h, v0.8h
# | next:303'0 ~~~~~~~~~~~~~~~~~~
# | next:303'1 ? possible intended match
# | 213: ret
# | next:303'0 ~~~~~
# | 214: .Lfunc_end13:
# | next:303'0 ~~~~~~~~~~~~~~
# | 215: .size cttz_v8i16, .Lfunc_end13-cttz_v8i16
# | next:303'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 216: .cfi_endproc
# | next:303'0 ~~~~~~~~~~~~~~
# | 217: // -- End function
# | next:303'0 ~~~~~~~~~~~~~~~~~~~~
# | 218: .globl cttz_v4i32 // -- Begin function cttz_v4i32
# | next:303'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 219: .p2align 2
# | next:303'0 ~~~~~~~~~~~~
# | 220: .type cttz_v4i32, at function
# | next:303'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 221: cttz_v4i32: // @cttz_v4i32
# | next:303'0 ~~~~~~~~~~~
# | 222: .cfi_startproc
# | 223: // %bb.0:
# | next:326'0 X error: no match found
# | 224: rev32 v0.16b, v0.16b
# | next:326'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 225: rbit v0.16b, v0.16b
# | next:326'0 ~~~~~~~~~~~~~~~~~~~~~
# | 226: clz v0.4s, v0.4s
# | next:326'0 ~~~~~~~~~~~~~~~~~~
# | next:326'1 ? possible intended match
# | 227: ret
# | next:326'0 ~~~~~
# | 228: .Lfunc_end14:
# | next:326'0 ~~~~~~~~~~~~~~
# | 229: .size cttz_v4i32, .Lfunc_end14-cttz_v4i32
# | next:326'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 230: .cfi_endproc
# | next:326'0 ~~~~~~~~~~~~~~
# | 231: // -- End function
# | next:326'0 ~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# 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/192427
More information about the llvm-commits
mailing list