[llvm] [LoongArch] Lower ANY_EXTEND to ZERO_EXTEND under LASX to avoid scalarization (PR #201099)

via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 2 05:26:18 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 174974 tests passed
* 3417 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
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc --mtriple=loongarch32 --mattr=+32s,+lasx < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/LoongArch/lasx/vxi1-masks.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/LoongArch/lasx/vxi1-masks.ll --check-prefixes=CHECK,LA32
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc --mtriple=loongarch32 --mattr=+32s,+lasx
# 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/LoongArch/lasx/vxi1-masks.ll --check-prefixes=CHECK,LA32
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/LoongArch/lasx/vxi1-masks.ll:21:14: error: LA32-NEXT: expected string not found in input
# | ; LA32-NEXT: vextrins.w $vr1, $vr0, 2
# |              ^
# | <stdin>:21:25: note: scanning from here
# |  vxor.v $vr0, $vr1, $vr0
# |                         ^
# | <stdin>:22:2: note: possible intended match here
# |  vext2xv.du.wu $xr0, $xr0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/LoongArch/lasx/vxi1-masks.ll:189:14: error: LA32-NEXT: expected string not found in input
# | ; LA32-NEXT: vextrins.w $vr1, $vr0, 2
# |              ^
# | <stdin>:140:26: note: scanning from here
# |  vinsgr2vr.w $vr0, $a1, 3
# |                          ^
# | <stdin>:141:2: note: possible intended match here
# |  vext2xv.du.wu $xr0, $xr0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/LoongArch/lasx/vxi1-masks.ll:344:14: error: LA32-NEXT: expected string not found in input
# | ; LA32-NEXT: xvrepli.b $xr1, 0
# |              ^
# | <stdin>:247:31: note: scanning from here
# |  xvfcmp.clt.d $xr0, $xr0, $xr1
# |                               ^
# | <stdin>:254:2: note: possible intended match here
# |  xvrepli.d $xr1, 1
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/LoongArch/lasx/vxi1-masks.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            16:  xvpickve2gr.w $a1, $xr0, 4 
# |            17:  vinsgr2vr.w $vr1, $a1, 2 
# |            18:  xvpickve2gr.w $a1, $xr0, 6 
# |            19:  vinsgr2vr.w $vr1, $a1, 3 
# |            20:  vldi $vr0, -1777 
# |            21:  vxor.v $vr0, $vr1, $vr0 
# | next:21'0                              X error: no match found
# |            22:  vext2xv.du.wu $xr0, $xr0 
# | next:21'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:21'1       ?                         possible intended match
# |            23:  xvrepli.d $xr1, 1 
# | next:21'0      ~~~~~~~~~~~~~~~~~~~
# |            24:  xvand.v $xr0, $xr0, $xr1 
# | next:21'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            25:  xvst $xr0, $a0, 0 
# | next:21'0      ~~~~~~~~~~~~~~~~~~~
# |            26:  ret 
# | next:21'0      ~~~~~
# |            27: .Lfunc_end0: 
# | next:21'0      ~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           135:  xvfcmp.clt.d $xr0, $xr0, $xr1 
# |           136:  xvpickve2gr.w $a1, $xr0, 6 
# |           137:  xvpickve2gr.w $a2, $xr0, 2 
# |           138:  vrepli.b $vr0, -1 
# |           139:  vinsgr2vr.w $vr0, $a2, 1 
# |           140:  vinsgr2vr.w $vr0, $a1, 3 
# | next:189'0                              X error: no match found
# |           141:  vext2xv.du.wu $xr0, $xr0 
# | next:189'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:189'1      ?                         possible intended match
# |           142:  xvrepli.d $xr1, 1 
# | next:189'0     ~~~~~~~~~~~~~~~~~~~
# |           143:  xvand.v $xr0, $xr0, $xr1 
# | next:189'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           144:  xvst $xr0, $a0, 0 
# | next:189'0     ~~~~~~~~~~~~~~~~~~~
# |           145:  ret 
# | next:189'0     ~~~~~
# |           146: .Lfunc_end6: 
# | next:189'0     ~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           242:  .type and_zext_masks_v4i64, at function 
# |           243: and_zext_masks_v4i64: # @and_zext_masks_v4i64 
# |           244: # %bb.0: 
# |           245:  xvld $xr0, $a1, 0 
# |           246:  xvld $xr1, $a2, 0 
# |           247:  xvfcmp.clt.d $xr0, $xr0, $xr1 
# | next:344'0                                   X error: no match found
# |           248:  xvpickve2gr.w $a1, $xr0, 4 
# | next:344'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           249:  xvpickve2gr.w $a2, $xr0, 0 
# | next:344'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           250:  vrepli.b $vr0, 0 
# | next:344'0     ~~~~~~~~~~~~~~~~~~
# |           251:  vinsgr2vr.w $vr0, $a2, 0 
# | next:344'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           252:  vinsgr2vr.w $vr0, $a1, 2 
# | next:344'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           253:  vext2xv.du.wu $xr0, $xr0 
# | next:344'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           254:  xvrepli.d $xr1, 1 
# | next:344'0     ~~~~~~~~~~~~~~~~~~~
# | next:344'1      ?                  possible intended match
# |           255:  xvand.v $xr0, $xr0, $xr1 
# | next:344'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           256:  xvst $xr0, $a0, 0 
# | next:344'0     ~~~~~~~~~~~~~~~~~~~
# |           257:  ret 
# | next:344'0     ~~~~~
# |           258: .Lfunc_end12: 
# | next:344'0     ~~~~~~~~~~~~~~
# |           259:  .size and_zext_masks_v4i64, .Lfunc_end12-and_zext_masks_v4i64 
# | next:344'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/201099


More information about the llvm-commits mailing list