[llvm] [AMDGPU] Let LDSDMA ops cross a sched_barrier when the mask allows it (PR #203255)

via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 11 06:26:58 PDT 2026


github-actions[bot] wrote:

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

* 135647 tests passed
* 3420 tests skipped
* 1 test failed

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

### LLVM
<details>
<summary>LLVM.CodeGen/AMDGPU/ldsdmacnt_sched.mir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=amdgcn -mcpu=gfx1250 -run-pass=machine-scheduler -amdgpu-sched-strategy=coexec -verify-misched C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ldsdmacnt_sched.mir -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefix=DEFAULT C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ldsdmacnt_sched.mir
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn -mcpu=gfx1250 -run-pass=machine-scheduler -amdgpu-sched-strategy=coexec -verify-misched 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ldsdmacnt_sched.mir' -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefix=DEFAULT 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ldsdmacnt_sched.mir'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ldsdmacnt_sched.mir:330:18: error: DEFAULT-NEXT: is not on the line after the previous match
# |  ; DEFAULT-NEXT: [[DEF4:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
# |                  ^
# | <stdin>:974:2: note: 'next' match was here
# |  %10:vgpr_32 = IMPLICIT_DEF
# |  ^
# | <stdin>:966:27: note: previous match ended here
# |  %3:vgpr_32 = IMPLICIT_DEF
# |                           ^
# | <stdin>:967:1: note: non-matching line after previous match is here
# |  dead %9:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ldsdmacnt_sched.mir:492:18: error: DEFAULT-NEXT: is not on the line after the previous match
# |  ; DEFAULT-NEXT: [[DEF4:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
# |                  ^
# | <stdin>:1375:2: note: 'next' match was here
# |  %10:vgpr_32 = IMPLICIT_DEF
# |  ^
# | <stdin>:1367:27: note: previous match ended here
# |  %3:vgpr_32 = IMPLICIT_DEF
# |                           ^
# | <stdin>:1368:1: note: non-matching line after previous match is here
# |  dead %9:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ldsdmacnt_sched.mir:550:18: error: DEFAULT-NEXT: is not on the line after the previous match
# |  ; DEFAULT-NEXT: [[DEF4:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
# |                  ^
# | <stdin>:1510:2: note: 'next' match was here
# |  %10:vgpr_32 = IMPLICIT_DEF
# |  ^
# | <stdin>:1502:27: note: previous match ended here
# |  %3:vgpr_32 = IMPLICIT_DEF
# |                           ^
# | <stdin>:1503:1: note: non-matching line after previous match is here
# |  dead %9:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ldsdmacnt_sched.mir:607:18: error: DEFAULT-NEXT: is not on the line after the previous match
# |  ; DEFAULT-NEXT: [[DEF4:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
# |                  ^
# | <stdin>:1645:2: note: 'next' match was here
# |  %10:vgpr_32 = IMPLICIT_DEF
# |  ^
# | <stdin>:1637:27: note: previous match ended here
# |  %3:vgpr_32 = IMPLICIT_DEF
# |                           ^
# | <stdin>:1638:1: note: non-matching line after previous match is here
# |  dead %9:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec
# | ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ldsdmacnt_sched.mir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |           .
# |           .
# |           .
# |         969:  dead %5:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |         970:  dead %6:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |         971:  dead %7:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |         972:  dead %8:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |         973:  SCHED_GROUP_BARRIER 2, 6, 0 
# |         974:  %10:vgpr_32 = IMPLICIT_DEF 
# | next:330      !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |         975:  GLOBAL_LOAD_ASYNC_TO_LDS_B64_SADDR %0, %1, %10, 0, 0, implicit-def dead $asynccnt, implicit $exec, implicit $asynccnt 
# |         976:  GLOBAL_LOAD_ASYNC_TO_LDS_B64_SADDR %0, %1, %10, 0, 0, implicit-def dead $asynccnt, implicit $exec, implicit $asynccnt 
# |         977:  S_ENDPGM 0 
# |         978: ... 
# |         979: --- 
# |           .
# |           .
# |           .
# |        1370:  dead %5:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |        1371:  dead %6:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |        1372:  dead %7:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |        1373:  dead %8:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |        1374:  SCHED_GROUP_BARRIER 2, 6, 0 
# |        1375:  %10:vgpr_32 = IMPLICIT_DEF 
# | next:492      !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |        1376:  GLOBAL_LOAD_ASYNC_TO_LDS_B64_SADDR %0, %1, %10, 0, 0, implicit-def dead $asynccnt, implicit $exec, implicit $asynccnt 
# |        1377:  S_WAIT_ASYNCCNT 2, implicit-def dead $asynccnt, implicit $asynccnt 
# |        1378:  S_ENDPGM 0 
# |        1379: ... 
# |        1380: --- 
# |           .
# |           .
# |           .
# |        1505:  dead %5:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |        1506:  dead %6:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |        1507:  dead %7:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |        1508:  dead %8:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |        1509:  SCHED_GROUP_BARRIER 2, 6, 0 
# |        1510:  %10:vgpr_32 = IMPLICIT_DEF 
# | next:550      !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |        1511:  GLOBAL_LOAD_ASYNC_TO_LDS_B64_SADDR %0, %1, %10, 0, 0, implicit-def dead $asynccnt, implicit $exec, implicit $asynccnt 
# |        1512:  S_WAIT_ASYNCCNT 0, implicit-def dead $asynccnt, implicit $asynccnt 
# |        1513:  S_ENDPGM 0 
# |        1514: ... 
# |        1515: --- 
# |           .
# |           .
# |           .
# |        1640:  dead %5:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |        1641:  dead %6:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |        1642:  dead %7:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |        1643:  dead %8:vgpr_32 = V_ADD_U32_e32 %2, %3, implicit $exec 
# |        1644:  SCHED_GROUP_BARRIER 2, 6, 0 
# |        1645:  %10:vgpr_32 = IMPLICIT_DEF 
# | next:607      !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |        1646:  GLOBAL_LOAD_ASYNC_TO_LDS_B64_SADDR %0, %1, %10, 0, 0, implicit-def dead $asynccnt, implicit $exec, implicit $asynccnt 
# |        1647:  GLOBAL_LOAD_ASYNC_TO_LDS_B64_SADDR %0, %1, %10, 0, 0, implicit-def dead $asynccnt, implicit $exec, implicit $asynccnt 
# |        1648:  S_WAIT_ASYNCCNT 2, implicit-def dead $asynccnt, implicit $asynccnt 
# |        1649:  S_ENDPGM 0 
# |        1650: ... 
# | >>>>>>
# `-----------------------------
# 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/203255


More information about the llvm-commits mailing list