[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