[llvm] [SeparateConstOffsetFromGEP] Reorder trivial GEP chains to separate constants (PR #73056)
Aaron Liu via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 15 11:38:53 PST 2024
AaronHLiu wrote:
```
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr i64, ptr [[TMP0]], i64 [[IN_IDX1]]
^
<stdin>:9:67: note: scanning from here
%0 = getelementptr [8192 x i64], ptr %in.ptr, i64 %in.idx0, i64 0
^
<stdin>:9:67: note: with "TMP0" equal to "%0"
%0 = getelementptr [8192 x i64], ptr %in.ptr, i64 %in.idx0, i64 0
^
<stdin>:9:67: note: with "IN_IDX1" equal to "%in\\.idx1"
%0 = getelementptr [8192 x i64], ptr %in.ptr, i64 %in.idx0, i64 0
^
<stdin>:10:6: note: possible intended match here
%const11 = getelementptr i8, ptr %0, i64 2048
^
Input file: <stdin>
Check file: /home/hualilia/llvm/dev/llvm-project/llvm/test/Transforms/SeparateConstOffsetFromGEP/NVPTX/lower-gep-reorder.ll
-dump-input=help explains the following input dump.
Input was:
<<<<<<
1: ; ModuleID = '<stdin>'
2: source_filename = "<stdin>"
3: target datalayout = "e-i64:64-i128:128-v16:16-v32:32-n16:32:64"
4: target triple = "nvptx64-nvidia-cuda"
5:
6: define protected amdgpu_kernel void @sink_addr(ptr %in.ptr, i64 %in.idx0, i64 %in.idx1) {
7: entry:
8: %idx0 = getelementptr [8192 x i64], ptr %in.ptr, i64 %in.idx0, i64 %in.idx1
9: %0 = getelementptr [8192 x i64], ptr %in.ptr, i64 %in.idx0, i64 0
next:10'0 X error: no match found
next:10'1 with "TMP0" equal to "%0"
next:10'2 with "IN_IDX1" equal to "%in\\.idx1"
10: %const11 = getelementptr i8, ptr %0, i64 2048
next:10'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
next:10'1 with "TMP0" equal to "%0"
next:10'2 with "IN_IDX1" equal to "%in\\.idx1"
10: %const11 = getelementptr i8, ptr %0, i64 2048
next:10'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
next:10'3 ? possible intended match
11: %idx1 = getelementptr i64, ptr %const11, i64 %in.idx1
next:10'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12: %1 = getelementptr [8192 x i64], ptr %in.ptr, i64 %in.idx0, i64 0
next:10'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13: %const22 = getelementptr i8, ptr %1, i64 4096
next:10'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14: %idx2 = getelementptr i64, ptr %const22, i64 %in.idx1
next:10'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15: %2 = getelementptr [8192 x i64], ptr %in.ptr, i64 %in.idx0, i64 0
next:10'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.
```
https://github.com/llvm/llvm-project/pull/73056
More information about the llvm-commits
mailing list