[llvm] [AMDGPU][SIInsertWaitcnts][NFC] Clean up loop (PR #179572)

via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 12 09:29:02 PST 2026


github-actions[bot] wrote:

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

* 169575 tests passed
* 3059 tests skipped
* 3 tests failed

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

### LLVM
<details>
<summary>LLVM.CodeGen/AMDGPU/async-buffer-loads.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx900 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/async-buffer-loads.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/AMDGPU/async-buffer-loads.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx900
# 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/AMDGPU/async-buffer-loads.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/async-buffer-loads.ll:17:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: s_waitcnt vmcnt(2)
# |               ^
# | <stdin>:26:21: note: scanning from here
# |  ; wait_asyncmark(1)
# |                     ^
# | <stdin>:27:2: note: possible intended match here
# |  s_waitcnt vmcnt(0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/async-buffer-loads.ll:44:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: s_waitcnt vmcnt(2)
# |               ^
# | <stdin>:76:21: note: scanning from here
# |  ; wait_asyncmark(1)
# |                     ^
# | <stdin>:77:2: note: possible intended match here
# |  s_waitcnt vmcnt(0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/async-buffer-loads.ll:72:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: s_waitcnt vmcnt(2)
# |               ^
# | <stdin>:127:21: note: scanning from here
# |  ; wait_asyncmark(1)
# |                     ^
# | <stdin>:128:2: note: possible intended match here
# |  s_waitcnt vmcnt(0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/async-buffer-loads.ll:100:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: s_waitcnt vmcnt(2)
# |               ^
# | <stdin>:178:21: note: scanning from here
# |  ; wait_asyncmark(1)
# |                     ^
# | <stdin>:179:2: note: possible intended match here
# |  s_waitcnt vmcnt(0)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/async-buffer-loads.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            21:  buffer_load_dword off, s[16:19], 0 lds 
# |            22:  ; asyncmark 
# |            23:  buffer_load_dword off, s[16:19], 0 offset:4 glc lds 
# |            24:  ; asyncmark 
# |            25:  buffer_load_dword off, s[16:19], 0 offset:8 slc lds 
# |            26:  ; wait_asyncmark(1) 
# | next:17'0                          X error: no match found
# |            27:  s_waitcnt vmcnt(0) 
# | next:17'0      ~~~~~~~~~~~~~~~~~~~~
# | next:17'1       ?                   possible intended match
# |            28:  ds_read_b32 v0, v0 
# | next:17'0      ~~~~~~~~~~~~~~~~~~~~
# |            29:  s_waitcnt lgkmcnt(0) 
# | next:17'0      ~~~~~~~~~~~~~~~~~~~~~~
# |            30:  s_setpc_b64 s[30:31] 
# | next:17'0      ~~~~~~~~~~~~~~~~~~~~~~
# |            31: .Lfunc_end0: 
# | next:17'0      ~~~~~~~~~~~~~
# |            32:  .size raw.buffer.load, .Lfunc_end0-raw.buffer.load 
# | next:17'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            71:  buffer_load_dword off, s[16:19], 0 lds 
# |            72:  ; asyncmark 
# |            73:  buffer_load_dword off, s[16:19], 0 offset:4 glc lds 
# |            74:  ; asyncmark 
# |            75:  buffer_load_dword off, s[16:19], 0 offset:8 slc lds 
# |            76:  ; wait_asyncmark(1) 
# | next:44'0                          X error: no match found
# |            77:  s_waitcnt vmcnt(0) 
# | next:44'0      ~~~~~~~~~~~~~~~~~~~~
# | next:44'1       ?                   possible intended match
# |            78:  ds_read_b32 v0, v0 
# | next:44'0      ~~~~~~~~~~~~~~~~~~~~
# |            79:  s_waitcnt lgkmcnt(0) 
# | next:44'0      ~~~~~~~~~~~~~~~~~~~~~~
# |            80:  s_setpc_b64 s[30:31] 
# | next:44'0      ~~~~~~~~~~~~~~~~~~~~~~
# |            81: .Lfunc_end1: 
# | next:44'0      ~~~~~~~~~~~~~
# |            82:  .size raw.ptr.buffer.load, .Lfunc_end1-raw.ptr.buffer.load 
# | next:44'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           122:  ; asyncmark 
# |           123:  buffer_load_dword v0, s[16:19], 0 idxen offset:4 glc lds 
# |           124:  ; asyncmark 
# |           125:  buffer_load_dword v0, s[16:19], 0 idxen offset:8 slc lds 
# |           126:  v_mov_b32_e32 v0, s20 
# |           127:  ; wait_asyncmark(1) 
# | next:72'0                          X error: no match found
# |           128:  s_waitcnt vmcnt(0) 
# | next:72'0      ~~~~~~~~~~~~~~~~~~~~
# | next:72'1       ?                   possible intended match
# |           129:  ds_read_b32 v0, v0 
# | next:72'0      ~~~~~~~~~~~~~~~~~~~~
# |           130:  s_waitcnt lgkmcnt(0) 
# | next:72'0      ~~~~~~~~~~~~~~~~~~~~~~
# |           131:  s_setpc_b64 s[30:31] 
# | next:72'0      ~~~~~~~~~~~~~~~~~~~~~~
# |           132: .Lfunc_end2: 
# | next:72'0      ~~~~~~~~~~~~~
# |           133:  .size struct.buffer.load, .Lfunc_end2-struct.buffer.load 
# | next:72'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           173:  ; asyncmark 
# |           174:  buffer_load_dword v0, s[16:19], 0 idxen offset:4 glc lds 
# |           175:  ; asyncmark 
# |           176:  buffer_load_dword v0, s[16:19], 0 idxen offset:8 slc lds 
# |           177:  v_mov_b32_e32 v0, s20 
# |           178:  ; wait_asyncmark(1) 
# | next:100'0                         X error: no match found
# |           179:  s_waitcnt vmcnt(0) 
# | next:100'0     ~~~~~~~~~~~~~~~~~~~~
# | next:100'1      ?                   possible intended match
# |           180:  ds_read_b32 v0, v0 
# | next:100'0     ~~~~~~~~~~~~~~~~~~~~
# |           181:  s_waitcnt lgkmcnt(0) 
# | next:100'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           182:  s_setpc_b64 s[30:31] 
# | next:100'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           183: .Lfunc_end3: 
# | next:100'0     ~~~~~~~~~~~~~
# |           184:  .size struct.ptr.buffer.load, .Lfunc_end3-struct.ptr.buffer.load 
# | next:100'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.CodeGen/AMDGPU/asyncmark-max-pregfx12.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -march=amdgcn -mcpu=gfx900  < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/asyncmark-max-pregfx12.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/AMDGPU/asyncmark-max-pregfx12.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -march=amdgcn -mcpu=gfx900
# .---command stderr------------
# | LLVM ERROR: SmallVector unable to grow. Requested capacity (4294967296) is larger than maximum value for size type (4294967295)
# | 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/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -march=amdgcn -mcpu=gfx900
# | 1.	Running pass 'CallGraph Pass Manager' on module '<stdin>'.
# | 2.	Running pass 'SI insert wait instructions' on function '@max_when_merged'
# |  #0 0x0000000008443e68 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:842:13
# |  #1 0x0000000008441595 llvm::sys::RunSignalHandlers() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Signals.cpp:109:18
# |  #2 0x0000000008444c31 SignalHandler(int, siginfo_t*, void*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:429:38
# |  #3 0x00007b0c1b0a9330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
# |  #4 0x00007b0c1b102b2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
# |  #5 0x00007b0c1b0a927e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
# |  #6 0x00007b0c1b08c8ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
# |  #7 0x00000000083a2625 llvm::report_fatal_error(llvm::Twine const&, bool) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/ErrorHandling.cpp:137:5
# |  #8 0x00000000083d391f (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc+0x83d391f)
# |  #9 0x00000000083d34f5 getNewCapacity<unsigned int> /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/SmallVector.cpp:103:5
# | #10 0x00000000083d34f5 llvm::SmallVectorBase<unsigned int>::grow_pod(void*, unsigned long, unsigned long) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/SmallVector.cpp:148:24
# | #11 0x0000000005776bfd begin /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:273:45
# | #12 0x0000000005776bfd end /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:275:27
# | #13 0x0000000005776bfd push_back /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:566:48
# | #14 0x0000000005776bfd recordAsyncMark /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:1276:14
# | #15 0x0000000005776bfd (anonymous namespace)::SIInsertWaitcnts::insertWaitcntInBlock(llvm::MachineFunction&, llvm::MachineBasicBlock&, (anonymous namespace)::WaitcntBrackets&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:3235:21
# | #16 0x0000000005770043 (anonymous namespace)::SIInsertWaitcnts::run(llvm::MachineFunction&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:3671:16
# | #17 0x0000000005773d9d (anonymous namespace)::SIInsertWaitcntsLegacy::runOnMachineFunction(llvm::MachineFunction&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:3534:41
# | #18 0x000000000710b723 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:0:10
# | #19 0x000000000767c8a5 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1398:27
# | #20 0x0000000006baf214 RunPassOnSCC /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Analysis/CallGraphSCCPass.cpp:180:25
# | #21 0x0000000006baf214 RunAllPassesOnSCC /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Analysis/CallGraphSCCPass.cpp:469:9
# | #22 0x0000000006baf214 (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Analysis/CallGraphSCCPass.cpp:534:18
# | #23 0x000000000767d34c runOnModule /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1513:27
# | #24 0x000000000767d34c llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:531:44
# | #25 0x0000000004eae66f compileModule(char**, llvm::SmallVectorImpl<llvm::PassPlugin>&, llvm::LLVMContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/tools/llc/llc.cpp:871:17
# | #26 0x0000000004eab943 main /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/tools/llc/llc.cpp:459:13
# | #27 0x00007b0c1b08e1ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
# | #28 0x00007b0c1b08e28b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
# | #29 0x0000000004ea7465 _start (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc+0x4ea7465)
# `-----------------------------
# error: command failed with exit status: -6
# 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/AMDGPU/asyncmark-max-pregfx12.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/asyncmark-max-pregfx12.ll:11:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: s_waitcnt vmcnt(3)
# |               ^
# | <stdin>:93:21: note: scanning from here
# |  ; wait_asyncmark(3)
# |                     ^
# | <stdin>:97:2: note: possible intended match here
# |  s_waitcnt vmcnt(0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/asyncmark-max-pregfx12.ll:148:16: error: CHECK-LABEL: expected string not found in input
# | ; CHECK-LABEL: max_when_merged:
# |                ^
# | <stdin>:134:33: note: scanning from here
# | test_loop_needs_more_iterations: ; @test_loop_needs_more_iterations
# |                                 ^
# | <stdin>:134:43: note: possible intended match here
# | test_loop_needs_more_iterations: ; @test_loop_needs_more_iterations
# |                                           ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/asyncmark-max-pregfx12.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             88:  s_andn2_b64 s[6:7], s[6:7], exec 
# |             89:  ; asyncmark 
# |             90:  s_branch .LBB0_1 
# |             91: .LBB0_4: ; %exit 
# |             92:  s_or_b64 exec, exec, s[4:5] 
# |             93:  ; wait_asyncmark(3) 
# | next:11'0                           X error: no match found
# |             94:  ds_read_b32 v0, v2 
# | next:11'0       ~~~~~~~~~~~~~~~~~~~~
# |             95:  s_waitcnt lgkmcnt(0) 
# | next:11'0       ~~~~~~~~~~~~~~~~~~~~~~
# |             96:  global_store_dword v[4:5], v0, off 
# | next:11'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             97:  s_waitcnt vmcnt(0) 
# | next:11'0       ~~~~~~~~~~~~~~~~~~~~
# | next:11'1        ?                   possible intended match
# |             98:  s_setpc_b64 s[30:31] 
# | next:11'0       ~~~~~~~~~~~~~~~~~~~~~~
# |             99: .Lfunc_end0: 
# | next:11'0       ~~~~~~~~~~~~~
# |            100:  .size test_loop_exceeds_max_first_iteration, .Lfunc_end0-test_loop_exceeds_max_first_iteration 
# | next:11'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            101:  ; -- End function 
# | next:11'0       ~~~~~~~~~~~~~~~~~~~
# |            102:  .set test_loop_exceeds_max_first_iteration.num_vgpr, 6 
# | next:11'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            129:  .long 0 
# | next:11'0       ~~~~~~~~~
# |            130:  .text 
# | next:11'0       ~~~~~~~
# |            131:  .globl test_loop_needs_more_iterations ; -- Begin function test_loop_needs_more_iterations 
# | next:11'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            132:  .p2align 2 
# | next:11'0       ~~~~~~~~~~~~
# |            133:  .type test_loop_needs_more_iterations, at function 
# | next:11'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            134: test_loop_needs_more_iterations: ; @test_loop_needs_more_iterations 
# | next:11'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | label:148'0                                     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | label:148'1                                               ?                          possible intended match
# |            135: ; %bb.0: 
# | label:148'0     ~~~~~~~~~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.CodeGen/AMDGPU/asyncmark-pregfx12.ll</summary>

```
Exit Code: -9
Timeout: Reached timeout of 1200 seconds

Command Output (stdout):
--
# RUN: at line 2
sed 's/.ASYNC/.async/' /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/asyncmark-pregfx12.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -march=amdgcn -mcpu=gfx900 -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/asyncmark-pregfx12.ll -check-prefixes=WITHASYNC
# executed command: sed s/.ASYNC/.async/ /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/asyncmark-pregfx12.ll
# note: command had no output on stdout or stderr
# error: command reached timeout: True
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -march=amdgcn -mcpu=gfx900 -o -
# note: command had no output on stdout or stderr
# error: command failed with exit status: -9
# error: command reached timeout: True
# 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/AMDGPU/asyncmark-pregfx12.ll -check-prefixes=WITHASYNC
# note: command had no output on stdout or stderr
# error: command failed with exit status: -9
# error: command reached timeout: True

--

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


More information about the llvm-commits mailing list