Skip to content

Commit 7881ac9

Browse files
committed
[InstCombine] Add extra metadata kinds to test.
Also clarify the FIXME, only none-UB metadata should be preserved. Extra tests for #115605.
1 parent 5c15caa commit 7881ac9

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

llvm/test/Transforms/InstCombine/loadstore-metadata.ll

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ entry:
186186
ret i32 %c
187187
}
188188

189-
; FIXME: Should preserve metadata on loads, except !noundef and !invariant.load.
189+
; FIXME: Should preserve none-UB metadata on loads.
190190
define ptr @preserve_load_metadata_after_select_transform1(i1 %c, ptr dereferenceable(8) %a, ptr dereferenceable(8) %b) {
191191
; CHECK-LABEL: @preserve_load_metadata_after_select_transform1(
192192
; CHECK-NEXT: entry:
@@ -197,10 +197,25 @@ define ptr @preserve_load_metadata_after_select_transform1(i1 %c, ptr dereferenc
197197
;
198198
entry:
199199
%ptr.sel = select i1 %c, ptr %b, ptr %a
200-
%l.sel = load ptr, ptr %ptr.sel, align 1, !tbaa !0, !llvm.access.group !7, !dereferenceable !9, !noundef !{}, !invariant.load !7
200+
%l.sel = load ptr, ptr %ptr.sel, align 1, !tbaa !0, !llvm.access.group !7, !dereferenceable !9, !noundef !{}, !invariant.load !7, !align !9, !nonnull !{}
201201
ret ptr %l.sel
202202
}
203203

204+
; FIXME: Should preserve none-UB metadata on loads.
205+
define i32 @preserve_load_metadata_after_select_transform_range(i1 %c, ptr dereferenceable(8) %a, ptr dereferenceable(8) %b) {
206+
; CHECK-LABEL: @preserve_load_metadata_after_select_transform_range(
207+
; CHECK-NEXT: entry:
208+
; CHECK-NEXT: [[B_VAL:%.*]] = load i32, ptr [[B:%.*]], align 1
209+
; CHECK-NEXT: [[A_VAL:%.*]] = load i32, ptr [[A:%.*]], align 1
210+
; CHECK-NEXT: [[L_SEL:%.*]] = select i1 [[C:%.*]], i32 [[B_VAL]], i32 [[A_VAL]]
211+
; CHECK-NEXT: ret i32 [[L_SEL]]
212+
;
213+
entry:
214+
%ptr.sel = select i1 %c, ptr %b, ptr %a
215+
%l.sel = load i32, ptr %ptr.sel, align 1, !tbaa !0, !llvm.access.group !7, !invariant.load !7, !noundef !{}, !range !6
216+
ret i32 %l.sel
217+
}
218+
204219
define double @preserve_load_metadata_after_select_transform2(ptr %a, ptr %b) {
205220
; CHECK-LABEL: @preserve_load_metadata_after_select_transform2(
206221
; CHECK-NEXT: entry:

0 commit comments

Comments
 (0)