[llvm] [LoongArch] Introduce LASX instruction patterns for vector sign/zero extensions (PR #193727)

via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 23 05:58:43 PDT 2026


github-actions[bot] wrote:

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

* 133819 tests passed
* 3136 tests skipped
* 1 test failed

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

### LLVM
<details>
<summary>LLVM.CodeGen/LoongArch/lasx/vxi1-masks.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe --mtriple=loongarch32 --mattr=+32s,+lasx < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\LoongArch\lasx\vxi1-masks.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\LoongArch\lasx\vxi1-masks.ll --check-prefixes=CHECK,LA32
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' --mtriple=loongarch32 --mattr=+32s,+lasx
# 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\LoongArch\lasx\vxi1-masks.ll' --check-prefixes=CHECK,LA32
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\LoongArch\lasx\vxi1-masks.ll:110:14: error: LA32-NEXT: expected string not found in input
# | ; LA32-NEXT: vori.b $vr1, $vr0, 0
# |              ^
# | <stdin>:87:25: note: scanning from here
# |  vxor.v $vr0, $vr1, $vr0
# |                         ^
# | <stdin>:89:3: note: possible intended match here
# |  xvst $xr0, $a0, 0
# |   ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\LoongArch\lasx\vxi1-masks.ll:281:14: error: LA32-NEXT: expected string not found in input
# | ; LA32-NEXT: vori.b $vr1, $vr0, 0
# |              ^
# | <stdin>:204:26: note: scanning from here
# |  vinsgr2vr.w $vr0, $a1, 3
# |                          ^
# | <stdin>:206:3: note: possible intended match here
# |  xvst $xr0, $a0, 0
# |   ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\LoongArch\lasx\vxi1-masks.ll:453:14: error: LA32-NEXT: expected string not found in input
# | ; LA32-NEXT: vori.b $vr1, $vr0, 0
# |              ^
# | <stdin>:325:25: note: scanning from here
# |  vand.v $vr0, $vr1, $vr0
# |                         ^
# | <stdin>:327:3: note: possible intended match here
# |  xvst $xr0, $a0, 0
# |   ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\LoongArch\lasx\vxi1-masks.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            82:  xvpickve2gr.w $a1, $xr0, 4 
# |            83:  vinsgr2vr.w $vr1, $a1, 2 
# |            84:  xvpickve2gr.w $a1, $xr0, 6 
# |            85:  vinsgr2vr.w $vr1, $a1, 3 
# |            86:  vldi $vr0, -1777 
# |            87:  vxor.v $vr0, $vr1, $vr0 
# | next:110'0                             X error: no match found
# |            88:  vext2xv.d.w $xr0, $xr0 
# | next:110'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# |            89:  xvst $xr0, $a0, 0 
# | next:110'0     ~~~~~~~~~~~~~~~~~~~
# | next:110'1       ?                 possible intended match
# |            90:  ret 
# | next:110'0     ~~~~~
# |            91: .Lfunc_end3: 
# | next:110'0     ~~~~~~~~~~~~~
# |            92:  .size xor_sext_masks_v4i64, .Lfunc_end3-xor_sext_masks_v4i64 
# | next:110'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            93:  # -- End function 
# | next:110'0     ~~~~~~~~~~~~~~~~~~~
# |            94:  .globl xor_sext_masks_v8i32 # -- Begin function xor_sext_masks_v8i32 
# | next:110'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           199:  xvfcmp.clt.d $xr0, $xr0, $xr1 
# |           200:  xvpickve2gr.w $a1, $xr0, 6 
# |           201:  xvpickve2gr.w $a2, $xr0, 2 
# |           202:  vrepli.b $vr0, -1 
# |           203:  vinsgr2vr.w $vr0, $a2, 1 
# |           204:  vinsgr2vr.w $vr0, $a1, 3 
# | next:281'0                              X error: no match found
# |           205:  vext2xv.d.w $xr0, $xr0 
# | next:281'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# |           206:  xvst $xr0, $a0, 0 
# | next:281'0     ~~~~~~~~~~~~~~~~~~~
# | next:281'1       ?                 possible intended match
# |           207:  ret 
# | next:281'0     ~~~~~
# |           208: .Lfunc_end9: 
# | next:281'0     ~~~~~~~~~~~~~
# |           209:  .size or_sext_masks_v4i64, .Lfunc_end9-or_sext_masks_v4i64 
# | next:281'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           210:  # -- End function 
# | next:281'0     ~~~~~~~~~~~~~~~~~~~
# |           211:  .globl or_sext_masks_v8i32 # -- Begin function or_sext_masks_v8i32 
# | next:281'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           320:  xvpickve2gr.w $a1, $xr0, 4 
# |           321:  vinsgr2vr.w $vr1, $a1, 2 
# |           322:  xvpickve2gr.w $a1, $xr0, 6 
# |           323:  vinsgr2vr.w $vr1, $a1, 3 
# |           324:  vldi $vr0, -1777 
# |           325:  vand.v $vr0, $vr1, $vr0 
# | next:453'0                             X error: no match found
# |           326:  vext2xv.d.w $xr0, $xr0 
# | next:453'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# |           327:  xvst $xr0, $a0, 0 
# | next:453'0     ~~~~~~~~~~~~~~~~~~~
# | next:453'1       ?                 possible intended match
# |           328:  ret 
# | next:453'0     ~~~~~
# |           329: .Lfunc_end15: 
# | next:453'0     ~~~~~~~~~~~~~~
# |           330:  .size and_sext_masks_v4i64, .Lfunc_end15-and_sext_masks_v4i64 
# | next:453'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           331:  # -- End function 
# | next:453'0     ~~~~~~~~~~~~~~~~~~~
# |           332:  .globl and_sext_masks_v8i32 # -- Begin function and_sext_masks_v8i32 
# | next:453'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/193727


More information about the llvm-commits mailing list