Skip to content

Commit 353cb53

Browse files
committed
[InstCombine] Add pre-commit tests. NFC.
1 parent 9e82ee5 commit 353cb53

File tree

1 file changed

+29
-0
lines changed
  • llvm/test/Transforms/InstCombine

1 file changed

+29
-0
lines changed

llvm/test/Transforms/InstCombine/load.ll

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,3 +451,32 @@ define i32 @load_select_with_null_gep(i1 %cond, ptr %p, i64 %off) {
451451
%res = load i32, ptr %gep, align 4
452452
ret i32 %res
453453
}
454+
455+
define i32 @test_load_phi_with_select(ptr %p, i1 %cond1) {
456+
; CHECK-LABEL: @test_load_phi_with_select(
457+
; CHECK-NEXT: entry:
458+
; CHECK-NEXT: br label [[LOOP_BODY:%.*]]
459+
; CHECK: loop.body:
460+
; CHECK-NEXT: [[BASE:%.*]] = phi ptr [ [[P1:%.*]], [[ENTRY:%.*]] ], [ [[P:%.*]], [[LOOP_BODY]] ]
461+
; CHECK-NEXT: [[TARGET:%.*]] = getelementptr inbounds nuw i8, ptr [[BASE]], i64 24
462+
; CHECK-NEXT: [[LOAD:%.*]] = load i32, ptr [[TARGET]], align 4
463+
; CHECK-NEXT: [[P]] = select i1 [[COND1:%.*]], ptr null, ptr [[P1]]
464+
; CHECK-NEXT: [[COND21:%.*]] = icmp eq i32 [[LOAD]], 0
465+
; CHECK-NEXT: br i1 [[COND21]], label [[LOOP_BODY]], label [[EXIT:%.*]]
466+
; CHECK: exit:
467+
; CHECK-NEXT: ret i32 [[LOAD]]
468+
;
469+
entry:
470+
br label %loop.body
471+
472+
loop.body:
473+
%base = phi ptr [ %p, %entry ], [ %sel, %loop.body ]
474+
%target = getelementptr inbounds i8, ptr %base, i64 24
475+
%load = load i32, ptr %target, align 4
476+
%sel = select i1 %cond1, ptr null, ptr %p
477+
%cond2 = icmp eq i32 %load, 0
478+
br i1 %cond2, label %loop.body, label %exit
479+
480+
exit:
481+
ret i32 %load
482+
}

0 commit comments

Comments
 (0)