[llvm] [MachineVerifier] Disallow subregister defs in SSA form (PR #189403)

via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 30 08:48:51 PDT 2026


github-actions[bot] wrote:

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

* 132867 tests passed
* 3037 tests skipped
* 1 test failed

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

### LLVM
<details>
<summary>LLVM.CodeGen/X86/GlobalISel/add-vec.ll</summary>

```
Exit Code: 2

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=x86_64-linux-gnu -mcpu=skx        -global-isel -verify-machineinstrs < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\GlobalISel\add-vec.ll -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\GlobalISel\add-vec.ll --check-prefix=ALL --check-prefix=SKX
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=x86_64-linux-gnu -mcpu=skx -global-isel -verify-machineinstrs -o -
# 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\X86\GlobalISel\add-vec.ll' --check-prefix=ALL --check-prefix=SKX
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=x86_64-linux-gnu -mcpu=core-avx2  -global-isel -verify-machineinstrs < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\GlobalISel\add-vec.ll -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\GlobalISel\add-vec.ll --check-prefix=ALL --check-prefix=AVX2
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=x86_64-linux-gnu -mcpu=core-avx2 -global-isel -verify-machineinstrs -o -
# 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\X86\GlobalISel\add-vec.ll' --check-prefix=ALL --check-prefix=AVX2
# note: command had no output on stdout or stderr
# RUN: at line 4
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=x86_64-linux-gnu -mcpu=corei7-avx -global-isel -verify-machineinstrs < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\GlobalISel\add-vec.ll -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\GlobalISel\add-vec.ll --check-prefix=ALL --check-prefix=AVX1
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=x86_64-linux-gnu -mcpu=corei7-avx -global-isel -verify-machineinstrs -o -
# .---command stderr------------
# | 
# | # After InstructionSelect
# | # Machine code for function test_add_v32i8: IsSSA, TracksLiveness, Legalized, RegBankSelected, Selected
# | Function Live Ins: $ymm0, $ymm1
# | 
# | bb.1 (%ir-block.0):
# |   liveins: $ymm0, $ymm1
# |   %0:vr256 = COPY $ymm0
# |   %1:vr256 = COPY $ymm1
# |   %3:vr128 = COPY %0.sub_xmm:vr256
# |   %4:vr128 = VEXTRACTF128rri %0:vr256, 1
# |   %5:vr128 = COPY %1.sub_xmm:vr256
# |   %6:vr128 = VEXTRACTF128rri %1:vr256, 1
# |   %7:vr128 = VPADDBrr %3:vr128, %5:vr128
# |   %8:vr128 = VPADDBrr %4:vr128, %6:vr128
# |   undef %9.sub_xmm:vr256 = COPY %7:vr128
# |   %10:vr256 = VINSERTF128rri %9:vr256, %8:vr128, 1
# |   $ymm0 = COPY %10:vr256
# |   RET 0, implicit $ymm0
# | 
# | # End machine code for function test_add_v32i8.
# | 
# | *** Bad machine code: Subreg def in SSA form ***
# | - function:    test_add_v32i8
# | - basic block: %bb.1  (0x21e2f74bc60)
# | - instruction: undef %9.sub_xmm:vr256 = COPY %7:vr128
# | - operand 0:   undef %9.sub_xmm:vr256
# | LLVM ERROR: Found 1 machine code errors.
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
# | Stack dump:
# | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\llc.exe -mtriple=x86_64-linux-gnu -mcpu=corei7-avx -global-isel -verify-machineinstrs -o -
# | 1.	Running pass 'Function Pass Manager' on module '<stdin>'.
# | 2.	Running pass 'Verify generated machine code' on function '@test_add_v32i8'
# | Exception Code: 0xC000001D
# |  #0 0x00007ff7a1ef7d56 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x2d37d56)
# |  #1 0x00007ff8545abb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04)
# |  #2 0x00007ff8545acad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1)
# |  #3 0x00007ff79f8bd57a (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x6fd57a)
# |  #4 0x00007ff79f65dad1 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x49dad1)
# |  #5 0x00007ff79f65eeea (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x49eeea)
# |  #6 0x00007ff79fc15d63 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0xa55d63)
# |  #7 0x00007ff79f67fc29 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x4bfc29)
# |  #8 0x00007ff79f6886bd (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x4c86bd)
# |  #9 0x00007ff79f6808a8 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x4c08a8)
# | #10 0x00007ff79f1c73e2 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x73e2)
# | #11 0x00007ff7a3a08b90 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x4848b90)
# | #12 0x00007ff85b9c4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0)
# | #13 0x00007ff865c3edcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb)
# `-----------------------------
# error: command failed with exit status: 0xc000001d
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\GlobalISel\add-vec.ll' --check-prefix=ALL --check-prefix=AVX1
# .---command stderr------------
# | FileCheck error: '<stdin>' is empty.
# | FileCheck command line:  c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\GlobalISel\add-vec.ll --check-prefix=ALL --check-prefix=AVX1
# `-----------------------------
# error: command failed with exit status: 2

--

```
</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/189403


More information about the llvm-commits mailing list