[llvm] [RISCV] Add register overlap checks to the assembler for vector indexed segment load (PR #184569)

via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 4 02:12:13 PST 2026


github-actions[bot] wrote:

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

* 170589 tests passed
* 3101 tests skipped
* 1 test failed

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

### LLVM
<details>
<summary>LLVM.MC/RISCV/rvv/zvlsseg-invalid.s</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
not /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-mc -triple=riscv64 --mattr=+v /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s 2>&1         | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s --check-prefix=CHECK-ERROR
# executed command: not /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-mc -triple=riscv64 --mattr=+v /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s
# note: command had no output on stdout or stderr
# error: command failed with exit status: 1
# 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/MC/RISCV/rvv/zvlsseg-invalid.s --check-prefix=CHECK-ERROR
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:5:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:1:1: note: scanning from here
# | 
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:9:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:2:34: note: scanning from here
# |  vluxseg2ei8.v v8, (a0), v8, v0.t
# |                                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:13:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:4:34: note: scanning from here
# |  vluxseg2ei8.v v8, (a0), v9, v0.t
# |                                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:17:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:6:35: note: scanning from here
# |  vluxseg3ei8.v v8, (a0), v10, v0.t
# |                                   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:21:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:8:35: note: scanning from here
# |  vluxseg4ei8.v v8, (a0), v11, v0.t
# |                                   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:25:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:10:35: note: scanning from here
# |  vluxseg5ei8.v v8, (a0), v12, v0.t
# |                                   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:29:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:12:35: note: scanning from here
# |  vluxseg6ei8.v v8, (a0), v13, v0.t
# |                                   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:33:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:14:35: note: scanning from here
# |  vluxseg7ei8.v v8, (a0), v14, v0.t
# |                                   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:37:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:16:35: note: scanning from here
# |  vluxseg8ei8.v v8, (a0), v15, v0.t
# |                                   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:41:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:18:28: note: scanning from here
# |  vluxseg2ei8.v v8, (a0), v8
# |                            ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:45:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:20:35: note: scanning from here
# |  vluxseg2ei16.v v8, (a0), v8, v0.t
# |                                   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:49:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:22:29: note: scanning from here
# |  vluxseg2ei16.v v8, (a0), v8
# |                             ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:53:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:24:35: note: scanning from here
# |  vluxseg2ei32.v v8, (a0), v8, v0.t
# |                                   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:57:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:26:29: note: scanning from here
# |  vluxseg2ei32.v v8, (a0), v8
# |                             ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:61:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:28:35: note: scanning from here
# |  vluxseg2ei64.v v8, (a0), v8, v0.t
# |                                   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:65:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:30:29: note: scanning from here
# |  vluxseg2ei64.v v8, (a0), v8
# |                             ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:69:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:32:34: note: scanning from here
# |  vloxseg2ei8.v v8, (a0), v8, v0.t
# |                                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:73:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:34:28: note: scanning from here
# |  vloxseg2ei8.v v8, (a0), v8
# |                            ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:77:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:36:35: note: scanning from here
# |  vloxseg2ei16.v v8, (a0), v8, v0.t
# |                                   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:81:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:38:29: note: scanning from here
# |  vloxseg2ei16.v v8, (a0), v8
# |                             ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:85:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:40:35: note: scanning from here
# |  vloxseg2ei32.v v8, (a0), v8, v0.t
# |                                   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:89:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:42:29: note: scanning from here
# |  vloxseg2ei32.v v8, (a0), v8
# |                             ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:93:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
# |                ^
# | <stdin>:44:35: note: scanning from here
# |  vloxseg2ei64.v v8, (a0), v8, v0.t
# |                                   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:97:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: All the vector registers in the group must be within V0-V31.
# |                ^
# | <stdin>:46:29: note: scanning from here
# |  vloxseg2ei64.v v8, (a0), v8
# |                             ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:101:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: All the vector registers in the group must be within V0-V31.
# |                ^
# | <stdin>:48:36: note: scanning from here
# |  vluxseg2ei8.v v31, (a0), v10, v0.t
# |                                    ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:105:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: All the vector registers in the group must be within V0-V31.
# |                ^
# | <stdin>:50:36: note: scanning from here
# |  vsuxseg2ei8.v v31, (a0), v10, v0.t
# |                                    ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:109:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: All the vector registers in the group must be within V0-V31.
# |                ^
# | <stdin>:52:28: note: scanning from here
# |  vlseg2e8.v v31, (a0), v0.t
# |                            ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:113:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: All the vector registers in the group must be within V0-V31.
# |                ^
# | <stdin>:54:33: note: scanning from here
# |  vlsseg2e8.v v31, (a0), a1, v0.t
# |                                 ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:117:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: All the vector registers in the group must be within V0-V31.
# |                ^
# | <stdin>:56:30: note: scanning from here
# |  vlseg2e8ff.v v31, (a0), v0.t
# |                              ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s:121:16: error: CHECK-ERROR: expected string not found in input
# | # CHECK-ERROR: All the vector registers in the group must be within V0-V31.
# |                ^
# | <stdin>:58:28: note: scanning from here
# |  vsseg2e8.v v31, (a0), v0.t
# |                            ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/MC/RISCV/rvv/zvlsseg-invalid.s
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            1:  
# | check:5       X error: no match found
# |            2:  vluxseg2ei8.v v8, (a0), v8, v0.t 
# | check:5       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:9                                        X error: no match found
# |            3:  
# | check:9       ~
# |            4:  vluxseg2ei8.v v8, (a0), v9, v0.t 
# | check:9       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:13                                       X error: no match found
# |            5:  
# | check:13      ~
# |            6:  vluxseg3ei8.v v8, (a0), v10, v0.t 
# | check:13      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:17                                        X error: no match found
# |            7:  
# | check:17      ~
# |            8:  vluxseg4ei8.v v8, (a0), v11, v0.t 
# | check:17      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:21                                        X error: no match found
# |            9:  
# | check:21      ~
# |           10:  vluxseg5ei8.v v8, (a0), v12, v0.t 
# | check:21      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:25                                        X error: no match found
# |           11:  
# | check:25      ~
# |           12:  vluxseg6ei8.v v8, (a0), v13, v0.t 
# | check:25      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:29                                        X error: no match found
# |           13:  
# | check:29      ~
# |           14:  vluxseg7ei8.v v8, (a0), v14, v0.t 
# | check:29      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:33                                        X error: no match found
# |           15:  
# | check:33      ~
# |           16:  vluxseg8ei8.v v8, (a0), v15, v0.t 
# | check:33      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:37                                        X error: no match found
# |           17:  
# | check:37      ~
# |           18:  vluxseg2ei8.v v8, (a0), v8 
# | check:37      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:41                                 X error: no match found
# |           19:  
# | check:41      ~
# |           20:  vluxseg2ei16.v v8, (a0), v8, v0.t 
# | check:41      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:45                                        X error: no match found
# |           21:  
# | check:45      ~
# |           22:  vluxseg2ei16.v v8, (a0), v8 
# | check:45      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:49                                  X error: no match found
# |           23:  
# | check:49      ~
# |           24:  vluxseg2ei32.v v8, (a0), v8, v0.t 
# | check:49      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:53                                        X error: no match found
# |           25:  
# | check:53      ~
# |           26:  vluxseg2ei32.v v8, (a0), v8 
# | check:53      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:57                                  X error: no match found
# |           27:  
# | check:57      ~
# |           28:  vluxseg2ei64.v v8, (a0), v8, v0.t 
# | check:57      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:61                                        X error: no match found
# |           29:  
# | check:61      ~
# |           30:  vluxseg2ei64.v v8, (a0), v8 
# | check:61      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:65                                  X error: no match found
# |           31:  
# | check:65      ~
# |           32:  vloxseg2ei8.v v8, (a0), v8, v0.t 
# | check:65      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:69                                       X error: no match found
# |           33:  
# | check:69      ~
# |           34:  vloxseg2ei8.v v8, (a0), v8 
# | check:69      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:73                                 X error: no match found
# |           35:  
# | check:73      ~
# |           36:  vloxseg2ei16.v v8, (a0), v8, v0.t 
# | check:73      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:77                                        X error: no match found
# |           37:  
# | check:77      ~
# |           38:  vloxseg2ei16.v v8, (a0), v8 
# | check:77      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:81                                  X error: no match found
# |           39:  
# | check:81      ~
# |           40:  vloxseg2ei32.v v8, (a0), v8, v0.t 
# | check:81      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:85                                        X error: no match found
# |           41:  
# | check:85      ~
# |           42:  vloxseg2ei32.v v8, (a0), v8 
# | check:85      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:89                                  X error: no match found
# |           43:  
# | check:89      ~
# |           44:  vloxseg2ei64.v v8, (a0), v8, v0.t 
# | check:89      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:93                                        X error: no match found
# |           45:  
# | check:93      ~
# |           46:  vloxseg2ei64.v v8, (a0), v8 
# | check:93      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:97                                  X error: no match found
# |           47:  
# | check:97      ~
# |           48:  vluxseg2ei8.v v31, (a0), v10, v0.t 
# | check:97      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:101                                        X error: no match found
# |           49:  
# | check:101     ~
# |           50:  vsuxseg2ei8.v v31, (a0), v10, v0.t 
# | check:101     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:105                                        X error: no match found
# |           51:  
# | check:105     ~
# |           52:  vlseg2e8.v v31, (a0), v0.t 
# | check:105     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:109                                X error: no match found
# |           53:  
# | check:109     ~
# |           54:  vlsseg2e8.v v31, (a0), a1, v0.t 
# | check:109     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:113                                     X error: no match found
# |           55:  
# | check:113     ~
# |           56:  vlseg2e8ff.v v31, (a0), v0.t 
# | check:113     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:117                                  X error: no match found
# |           57:  
# | check:117     ~
# |           58:  vsseg2e8.v v31, (a0), v0.t 
# | check:117     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:121                                X error: no match found
# |           59:  
# | check:121     ~
# |           60:  vssseg2e8.v v31, (a0), a1, v0.t 
# | check:121     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | >>>>>>
# `-----------------------------
# 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/184569


More information about the llvm-commits mailing list