[llvm] [AArch64] Fold vector select with power-of-2 bit-test to CMTST+BSP (PR #209100)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 16 23:36:13 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
* 180694 tests passed
* 3688 tests skipped
* 1 test failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.CodeGen/AArch64/neon-compare-instructions.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=aarch64-none-linux-gnu -mattr=+neon /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/neon-compare-instructions.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/AArch64/neon-compare-instructions.ll --check-prefixes=CHECK,CHECK-SD
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=aarch64-none-linux-gnu -mattr=+neon /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/neon-compare-instructions.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/AArch64/neon-compare-instructions.ll --check-prefixes=CHECK,CHECK-SD
# 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 -mtriple=aarch64-none-linux-gnu -mattr=+neon -global-isel /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/neon-compare-instructions.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/AArch64/neon-compare-instructions.ll --check-prefixes=CHECK,CHECK-GI
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=aarch64-none-linux-gnu -mattr=+neon -global-isel /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/neon-compare-instructions.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/AArch64/neon-compare-instructions.ll --check-prefixes=CHECK,CHECK-GI
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/neon-compare-instructions.ll:743:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: cmtst v0.8b, v0.8b, v1.8b
# | ^
# | <stdin>:855:10: note: scanning from here
# | // %bb.0:
# | ^
# | <stdin>:857:2: note: possible intended match here
# | cmtst v0.8b, v0.8b, v0.8b
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/neon-compare-instructions.ll:754:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: cmtst v0.16b, v0.16b, v1.16b
# | ^
# | <stdin>:868:10: note: scanning from here
# | // %bb.0:
# | ^
# | <stdin>:870:2: note: possible intended match here
# | cmtst v0.16b, v0.16b, v0.16b
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/neon-compare-instructions.ll:765:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: cmtst v0.4h, v0.4h, v1.4h
# | ^
# | <stdin>:881:10: note: scanning from here
# | // %bb.0:
# | ^
# | <stdin>:883:2: note: possible intended match here
# | cmtst v0.4h, v0.4h, v0.4h
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/neon-compare-instructions.ll:776:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: cmtst v0.8h, v0.8h, v1.8h
# | ^
# | <stdin>:894:10: note: scanning from here
# | // %bb.0:
# | ^
# | <stdin>:896:2: note: possible intended match here
# | cmtst v0.8h, v0.8h, v0.8h
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/neon-compare-instructions.ll:787:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: cmtst v0.2s, v0.2s, v1.2s
# | ^
# | <stdin>:907:10: note: scanning from here
# | // %bb.0:
# | ^
# | <stdin>:909:2: note: possible intended match here
# | cmtst v0.2s, v0.2s, v0.2s
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/neon-compare-instructions.ll:798:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: cmtst v0.4s, v0.4s, v1.4s
# | ^
# | <stdin>:920:10: note: scanning from here
# | // %bb.0:
# | ^
# | <stdin>:922:2: note: possible intended match here
# | cmtst v0.4s, v0.4s, v0.4s
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/neon-compare-instructions.ll:809:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: cmtst v0.2d, v0.2d, v1.2d
# | ^
# | <stdin>:933:10: note: scanning from here
# | // %bb.0:
# | ^
# | <stdin>:935:2: note: possible intended match here
# | cmtst v0.2d, v0.2d, v0.2d
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/neon-compare-instructions.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 850: .globl cmtst8xi8 // -- Begin function cmtst8xi8
# | 851: .p2align 2
# | 852: .type cmtst8xi8, at function
# | 853: cmtst8xi8: // @cmtst8xi8
# | 854: .cfi_startproc
# | 855: // %bb.0:
# | next:743'0 { search range start (exclusive)
# | next:743'1 error: no match found in search range
# | 856: and v0.8b, v0.8b, v1.8b
# | 857: cmtst v0.8b, v0.8b, v0.8b
# | next:743'2 ? possible intended match
# | 858: ret
# | 859: .Lfunc_end70:
# | 860: .size cmtst8xi8, .Lfunc_end70-cmtst8xi8
# | 861: .cfi_endproc
# | 862: // -- End function
# | 863: .globl cmtst16xi8 // -- Begin function cmtst16xi8
# | 864: .p2align 2
# | 865: .type cmtst16xi8, at function
# | 866: cmtst16xi8: // @cmtst16xi8
# | next:743'3 } search range end (exclusive)
# | 867: .cfi_startproc
# | 868: // %bb.0:
# | next:754'0 { search range start (exclusive)
# | next:754'1 error: no match found in search range
# | 869: and v0.16b, v0.16b, v1.16b
# | 870: cmtst v0.16b, v0.16b, v0.16b
# | next:754'2 ? possible intended match
# | 871: ret
# | 872: .Lfunc_end71:
# | 873: .size cmtst16xi8, .Lfunc_end71-cmtst16xi8
# | 874: .cfi_endproc
# | 875: // -- End function
# | 876: .globl cmtst4xi16 // -- Begin function cmtst4xi16
# | 877: .p2align 2
# | 878: .type cmtst4xi16, at function
# | 879: cmtst4xi16: // @cmtst4xi16
# | next:754'3 } search range end (exclusive)
# | 880: .cfi_startproc
# | 881: // %bb.0:
# | next:765'0 { search range start (exclusive)
# | next:765'1 error: no match found in search range
# | 882: and v0.8b, v0.8b, v1.8b
# | 883: cmtst v0.4h, v0.4h, v0.4h
# | next:765'2 ? possible intended match
# | 884: ret
# | 885: .Lfunc_end72:
# | 886: .size cmtst4xi16, .Lfunc_end72-cmtst4xi16
# | 887: .cfi_endproc
# | 888: // -- End function
# | 889: .globl cmtst8xi16 // -- Begin function cmtst8xi16
# | 890: .p2align 2
# | 891: .type cmtst8xi16, at function
# | 892: cmtst8xi16: // @cmtst8xi16
# | next:765'3 } search range end (exclusive)
# | 893: .cfi_startproc
# | 894: // %bb.0:
# | next:776'0 { search range start (exclusive)
# | next:776'1 error: no match found in search range
# | 895: and v0.16b, v0.16b, v1.16b
# | 896: cmtst v0.8h, v0.8h, v0.8h
# | next:776'2 ? possible intended match
# | 897: ret
# | 898: .Lfunc_end73:
# | 899: .size cmtst8xi16, .Lfunc_end73-cmtst8xi16
# | 900: .cfi_endproc
# | 901: // -- End function
# | 902: .globl cmtst2xi32 // -- Begin function cmtst2xi32
# | 903: .p2align 2
# | 904: .type cmtst2xi32, at function
# | 905: cmtst2xi32: // @cmtst2xi32
# | next:776'3 } search range end (exclusive)
# | 906: .cfi_startproc
# | 907: // %bb.0:
# | next:787'0 { search range start (exclusive)
# | next:787'1 error: no match found in search range
# | 908: and v0.8b, v0.8b, v1.8b
# | 909: cmtst v0.2s, v0.2s, v0.2s
# | next:787'2 ? possible intended match
# | 910: ret
# | 911: .Lfunc_end74:
# | 912: .size cmtst2xi32, .Lfunc_end74-cmtst2xi32
# | 913: .cfi_endproc
# | 914: // -- End function
# | 915: .globl cmtst4xi32 // -- Begin function cmtst4xi32
# | 916: .p2align 2
# | 917: .type cmtst4xi32, at function
# | 918: cmtst4xi32: // @cmtst4xi32
# | next:787'3 } search range end (exclusive)
# | 919: .cfi_startproc
# | 920: // %bb.0:
# | next:798'0 { search range start (exclusive)
# | next:798'1 error: no match found in search range
# | 921: and v0.16b, v0.16b, v1.16b
# | 922: cmtst v0.4s, v0.4s, v0.4s
# | next:798'2 ? possible intended match
# | 923: ret
# | 924: .Lfunc_end75:
# | 925: .size cmtst4xi32, .Lfunc_end75-cmtst4xi32
# | 926: .cfi_endproc
# | 927: // -- End function
# | 928: .globl cmtst2xi64 // -- Begin function cmtst2xi64
# | 929: .p2align 2
# | 930: .type cmtst2xi64, at function
# | 931: cmtst2xi64: // @cmtst2xi64
# | next:798'3 } search range end (exclusive)
# | 932: .cfi_startproc
# | 933: // %bb.0:
# | next:809'0 { search range start (exclusive)
# | next:809'1 error: no match found in search range
# | 934: and v0.16b, v0.16b, v1.16b
# | 935: cmtst v0.2d, v0.2d, v0.2d
# | next:809'2 ? possible intended match
# | 936: ret
# | 937: .Lfunc_end76:
# | 938: .size cmtst2xi64, .Lfunc_end76-cmtst2xi64
# | 939: .cfi_endproc
# | 940: // -- End function
# | 941: .globl cmeqz8xi8 // -- Begin function cmeqz8xi8
# | 942: .p2align 2
# | 943: .type cmeqz8xi8, at function
# | 944: cmeqz8xi8: // @cmeqz8xi8
# | next:809'3 } search range end (exclusive)
# | 945: .cfi_startproc
# | 946: // %bb.0:
# | 947: cmeq v0.8b, v0.8b, #0
# | 948: ret
# | 949: .Lfunc_end77:
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# 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/209100
More information about the llvm-commits
mailing list