[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