[llvm] [AMDGPU] Using feature to define vmem cacheline size (PR #207884)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 17 03:09:28 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 138559 tests passed
* 3556 tests skipped
* 1 test failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.Transforms/LoopDataPrefetch/AMDGPU/vmem-cache-line-size.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -mtriple=amdgpu12.50 -passes=loop-data-prefetch -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopDataPrefetch\AMDGPU\vmem-cache-line-size.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopDataPrefetch\AMDGPU\vmem-cache-line-size.ll --check-prefix=GFX1250
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -mtriple=amdgpu12.50 -passes=loop-data-prefetch -S
# 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\Transforms\LoopDataPrefetch\AMDGPU\vmem-cache-line-size.ll' --check-prefix=GFX1250
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -mtriple=amdgpu12.00 -passes=loop-data-prefetch -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopDataPrefetch\AMDGPU\vmem-cache-line-size.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopDataPrefetch\AMDGPU\vmem-cache-line-size.ll --check-prefix=GFX1200
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -mtriple=amdgpu12.00 -passes=loop-data-prefetch -S
# 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\Transforms\LoopDataPrefetch\AMDGPU\vmem-cache-line-size.ll' --check-prefix=GFX1200
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopDataPrefetch\AMDGPU\vmem-cache-line-size.ll:37:17: error: GFX1200-NEXT: is not on the line after the previous match
# | ; GFX1200-NEXT: [[IDX0:%.*]] = getelementptr inbounds i32, ptr addrspace(1) [[B]], i64 [[IV]]
# | ^
# | <stdin>:15:2: note: 'next' match was here
# | %idx0 = getelementptr inbounds i32, ptr addrspace(1) %b, i64 %iv
# | ^
# | <stdin>:11:54: note: previous match ended here
# | %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]
# | ^
# | <stdin>:12:1: note: non-matching line after previous match is here
# | %0 = shl i64 %iv, 2
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopDataPrefetch\AMDGPU\vmem-cache-line-size.ll:127:17: error: GFX1200-NEXT: is not on the line after the previous match
# | ; GFX1200-NEXT: [[IDX0:%.*]] = getelementptr inbounds i32, ptr addrspace(1) [[B]], i64 [[IV]]
# | ^
# | <stdin>:44:2: note: 'next' match was here
# | %idx0 = getelementptr inbounds i32, ptr addrspace(1) %b, i64 %iv
# | ^
# | <stdin>:37:54: note: previous match ended here
# | %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]
# | ^
# | <stdin>:38:1: note: non-matching line after previous match is here
# | %0 = shl i64 %iv, 2
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopDataPrefetch\AMDGPU\vmem-cache-line-size.ll:217:17: error: GFX1200-NEXT: is not on the line after the previous match
# | ; GFX1200-NEXT: [[IDX0:%.*]] = getelementptr inbounds i32, ptr addrspace(1) [[B]], i64 [[IV]]
# | ^
# | <stdin>:74:2: note: 'next' match was here
# | %idx0 = getelementptr inbounds i32, ptr addrspace(1) %b, i64 %iv
# | ^
# | <stdin>:67:54: note: previous match ended here
# | %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]
# | ^
# | <stdin>:68:1: note: non-matching line after previous match is here
# | %0 = shl i64 %iv, 2
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopDataPrefetch\AMDGPU\vmem-cache-line-size.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 6: define amdgpu_kernel void @prefetch_two_streams_80B(ptr addrspace(1) captures(none) %a, ptr addrspace(1) readonly captures(none) %b, i64 %n) {
# | 7: entry:
# | 8: br label %for.body
# | 9:
# | 10: for.body: ; preds = %for.body, %entry
# | 11: %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]
# | next:37'0 { search range start (exclusive)
# | 12: %0 = shl i64 %iv, 2
# | 13: %1 = add i64 %0, 28
# | 14: %scevgep = getelementptr i8, ptr addrspace(1) %b, i64 %1
# | 15: %idx0 = getelementptr inbounds i32, ptr addrspace(1) %b, i64 %iv
# | next:37'1 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 16: call void @llvm.prefetch.p1(ptr addrspace(1) %scevgep, i32 0, i32 3, i32 1)
# | 17: %v0 = load i32, ptr addrspace(1) %idx0, align 4
# | 18: %iv.off = add i64 %iv, 20
# | 19: %idx1 = getelementptr inbounds i32, ptr addrspace(1) %b, i64 %iv.off
# | 20: %v1 = load i32, ptr addrspace(1) %idx1, align 4
# | .
# | .
# | .
# | 27:
# | 28: for.end: ; preds = %for.body
# | 29: ret void
# | 30: }
# | 31:
# | 32: define amdgpu_kernel void @prefetch_two_streams_160B(ptr addrspace(1) captures(none) %a, ptr addrspace(1) readonly captures(none) %b, i64 %n) {
# | next:37'2 } search range end (exclusive)
# | 33: entry:
# | 34: br label %for.body
# | 35:
# | 36: for.body: ; preds = %for.body, %entry
# | 37: %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]
# | next:127'0 { search range start (exclusive)
# | 38: %0 = shl i64 %iv, 2
# | 39: %1 = add i64 %0, 188
# | 40: %scevgep1 = getelementptr i8, ptr addrspace(1) %b, i64 %1
# | 41: %2 = shl i64 %iv, 2
# | 42: %3 = add i64 %2, 28
# | 43: %scevgep = getelementptr i8, ptr addrspace(1) %b, i64 %3
# | 44: %idx0 = getelementptr inbounds i32, ptr addrspace(1) %b, i64 %iv
# | next:127'1 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 45: call void @llvm.prefetch.p1(ptr addrspace(1) %scevgep, i32 0, i32 3, i32 1)
# | 46: %v0 = load i32, ptr addrspace(1) %idx0, align 4
# | 47: %iv.off = add i64 %iv, 40
# | 48: %idx1 = getelementptr inbounds i32, ptr addrspace(1) %b, i64 %iv.off
# | 49: call void @llvm.prefetch.p1(ptr addrspace(1) %scevgep1, i32 0, i32 3, i32 1)
# | .
# | .
# | .
# | 57:
# | 58: for.end: ; preds = %for.body
# | 59: ret void
# | 60: }
# | 61:
# | 62: define amdgpu_kernel void @prefetch_two_streams_320B(ptr addrspace(1) captures(none) %a, ptr addrspace(1) readonly captures(none) %b, i64 %n) {
# | next:127'2 } search range end (exclusive)
# | 63: entry:
# | 64: br label %for.body
# | 65:
# | 66: for.body: ; preds = %for.body, %entry
# | 67: %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]
# | next:217'0 { search range start (exclusive)
# | 68: %0 = shl i64 %iv, 2
# | 69: %1 = add i64 %0, 348
# | 70: %scevgep1 = getelementptr i8, ptr addrspace(1) %b, i64 %1
# | 71: %2 = shl i64 %iv, 2
# | 72: %3 = add i64 %2, 28
# | 73: %scevgep = getelementptr i8, ptr addrspace(1) %b, i64 %3
# | 74: %idx0 = getelementptr inbounds i32, ptr addrspace(1) %b, i64 %iv
# | next:217'1 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 75: call void @llvm.prefetch.p1(ptr addrspace(1) %scevgep, i32 0, i32 3, i32 1)
# | 76: %v0 = load i32, ptr addrspace(1) %idx0, align 4
# | 77: %iv.off = add i64 %iv, 80
# | 78: %idx1 = getelementptr inbounds i32, ptr addrspace(1) %b, i64 %iv.off
# | 79: call void @llvm.prefetch.p1(ptr addrspace(1) %scevgep1, i32 0, i32 3, i32 1)
# | .
# | .
# | .
# | 90: }
# | 91:
# | 92: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite)
# | 93: declare void @llvm.prefetch.p1(ptr addrspace(1) readonly captures(none), i32 immarg range(i32 0, 2), i32 immarg range(i32 0, 4), i32 immarg range(i32 0, 2)) #0
# | 94:
# | 95: attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) }
# | next:217'2 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# 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/207884
More information about the llvm-commits
mailing list