[llvm] [CodeGen] MachineVerifier to check early-clobber constraint (PR #151421)
LLVM Continuous Integration via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 4 18:56:13 PST 2025
llvm-ci wrote:
LLVM Buildbot has detected a new failure on builder `llvm-clang-x86_64-expensive-checks-ubuntu` running on `as-builder-4` while building `llvm` at step 7 "test-check-all".
Full details are available at: https://lab.llvm.org/buildbot/#/builders/187/builds/13307
<details>
<summary>Here is the relevant piece of the build log for the reference</summary>
```
Step 7 (test-check-all) failure: Test just built components: check-all completed (failure)
******************** TEST 'LLVM :: CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.mfma.gfx90a.ll' FAILED ********************
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -global-isel -mtriple=amdgcn -mcpu=gfx90a < /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.mfma.gfx90a.ll | /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck --check-prefixes=GCN /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.mfma.gfx90a.ll
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -global-isel -mtriple=amdgcn -mcpu=gfx90a
# .---command stderr------------
# |
# | # After SI Fold Operands
# | # Machine code for function test_mfma_f64_16x16x4f64_splat_imm: IsSSA, TracksLiveness, Legalized, RegBankSelected, Selected
# | Function Live Ins: $sgpr0_sgpr1 in %3, $sgpr2_sgpr3 in %4, $sgpr4_sgpr5 in %5, $sgpr6_sgpr7 in %6, $vgpr0 in %7, $sgpr8 in %8, $sgpr9 in %9, $sgpr10 in %10, $sgpr11 in %11
# |
# | bb.1.bb:
# | liveins: $sgpr4_sgpr5
# | %5:sreg_64 = COPY $sgpr4_sgpr5
# | %25:sreg_64 = S_MOV_B64 0
# | %24:sgpr_256 = REG_SEQUENCE %25:sreg_64, %subreg.sub0_sub1, %25:sreg_64, %subreg.sub2_sub3, %25:sreg_64, %subreg.sub4_sub5, %25:sreg_64, %subreg.sub6_sub7
# | early-clobber %34:sgpr_128 = S_LOAD_DWORDX4_IMM_ec %5:sreg_64, 36, 0 :: (dereferenceable invariant load (<2 x s64>) from %ir.arg.kernarg.offset, align 4, addrspace 4)
# | early-clobber %36:sreg_64_xexec = S_LOAD_DWORDX2_IMM_ec %5:sreg_64, 52, 0 :: (dereferenceable invariant load (s64) from %ir.arg.kernarg.offset + 16, align 4, addrspace 4)
# | %40:vreg_64_align2 = COPY %34.sub2_sub3:sgpr_128
# | %41:vreg_64_align2 = COPY %36:sreg_64_xexec
# | %51:sgpr_64 = COPY %25:sreg_64
# | %42:areg_256_align2 = REG_SEQUENCE %51:sgpr_64, %subreg.sub0_sub1, %51:sgpr_64, %subreg.sub2_sub3, %51:sgpr_64, %subreg.sub4_sub5, %51:sgpr_64, %subreg.sub6_sub7
# | %23:areg_256_align2 = V_MFMA_F64_16X16X4F64_e64 %40:vreg_64_align2, %41:vreg_64_align2, 0, 0, 0, 0, implicit $mode, implicit $exec
# | %26:areg_256_align2 = V_MFMA_F64_16X16X4F64_mac_e64 %40:vreg_64_align2, %41:vreg_64_align2, %23:areg_256_align2(tied-def 0), 1, 2, 3, implicit $mode, implicit $exec
# | %50:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
# | GLOBAL_STORE_DWORDX4_SADDR %50:vgpr_32, %26.sub0_sub1_sub2_sub3:areg_256_align2, %34.sub0_sub1:sgpr_128, 0, 0, implicit $exec :: (store (<2 x s64>) into %ir.1, align 32, addrspace 1)
# | GLOBAL_STORE_DWORDX4_SADDR %50:vgpr_32, %26.sub4_sub5_sub6_sub7:areg_256_align2, %34.sub0_sub1:sgpr_128, 16, 0, implicit $exec :: (store (<2 x s64>) into %ir.1 + 16, basealign 32, addrspace 1)
# | S_ENDPGM 0
# |
# | # End machine code for function test_mfma_f64_16x16x4f64_splat_imm.
# |
# | *** Bad machine code: Missing earlyClobber flag ***
# | - function: test_mfma_f64_16x16x4f64_splat_imm
# | - basic block: %bb.1 bb (0x5626a6d08058)
# | - instruction: %23:areg_256_align2 = V_MFMA_F64_16X16X4F64_e64 %40:vreg_64_align2, %41:vreg_64_align2, 0, 0, 0, 0, implicit $mode, implicit $exec
# | 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: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -global-isel -mtriple=amdgcn -mcpu=gfx90a
# | 1. Running pass 'CallGraph Pass Manager' on module '<stdin>'.
# | 2. Running pass 'Verify generated machine code' on function '@test_mfma_f64_16x16x4f64_splat_imm'
# | #0 0x000056268bcb9368 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc+0x7f71368)
# | #1 0x000056268bcb6a75 llvm::sys::RunSignalHandlers() (/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc+0x7f6ea75)
# | #2 0x000056268bcba131 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
# | #3 0x00007c1d6a445330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
# | #4 0x00007c1d6a49eb2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
# | #5 0x00007c1d6a44527e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
...
```
</details>
https://github.com/llvm/llvm-project/pull/151421
More information about the llvm-commits
mailing list