Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/Transforms/SCCP/resolvedundefsin-tracked-fn.ll
Show First 20 Lines • Show All 130 Lines • ▼ Show 20 Lines | entry: | ||||
ret i32 undef | ret i32 undef | ||||
} | } | ||||
define internal i1 @test2_g(%t1* %h, i32 %i) { | define internal i1 @test2_g(%t1* %h, i32 %i) { | ||||
; CHECK-LABEL: define {{[^@]+}}@test2_g | ; CHECK-LABEL: define {{[^@]+}}@test2_g | ||||
; CHECK-SAME: (%t1* [[H:%.*]], i32 [[I:%.*]]) | ; CHECK-SAME: (%t1* [[H:%.*]], i32 [[I:%.*]]) | ||||
; CHECK-NEXT: entry: | ; CHECK-NEXT: entry: | ||||
; CHECK-NEXT: br i1 true, label [[LAND_RHS:%.*]], label [[LAND_END:%.*]] | ; CHECK-NEXT: br label [[LAND_RHS:%.*]] | ||||
; CHECK: land.rhs: | ; CHECK: land.rhs: | ||||
; CHECK-NEXT: [[CALL:%.*]] = call i32 (...) @test2_j() | ; CHECK-NEXT: [[CALL:%.*]] = call i32 (...) @test2_j() | ||||
; CHECK-NEXT: [[TOBOOL1:%.*]] = icmp ne i32 [[CALL]], 0 | ; CHECK-NEXT: [[TOBOOL1:%.*]] = icmp ne i32 [[CALL]], 0 | ||||
; CHECK-NEXT: br label [[LAND_END]] | ; CHECK-NEXT: br label [[LAND_END:%.*]] | ||||
; CHECK: land.end: | ; CHECK: land.end: | ||||
; CHECK-NEXT: [[TMP0:%.*]] = phi i1 [ false, [[ENTRY:%.*]] ], [ [[TOBOOL1]], [[LAND_RHS]] ] | |||||
; CHECK-NEXT: ret i1 undef | ; CHECK-NEXT: ret i1 undef | ||||
; | ; | ||||
entry: | entry: | ||||
%tobool = icmp ne i32 %i, 0 | %tobool = icmp ne i32 %i, 0 | ||||
br i1 %tobool, label %land.rhs, label %land.end | br i1 %tobool, label %land.rhs, label %land.end | ||||
land.rhs: ; preds = %entry | land.rhs: ; preds = %entry | ||||
%call = call i32 (...) @test2_j() | %call = call i32 (...) @test2_j() | ||||
Show All 37 Lines | |||||
; CHECK-LABEL: define {{[^@]+}}@test3_k | ; CHECK-LABEL: define {{[^@]+}}@test3_k | ||||
; CHECK-SAME: (i8 [[H:%.*]], i32 [[I:%.*]]) | ; CHECK-SAME: (i8 [[H:%.*]], i32 [[I:%.*]]) | ||||
; CHECK-NEXT: entry: | ; CHECK-NEXT: entry: | ||||
; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* @e, align 4 | ; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* @e, align 4 | ||||
; CHECK-NEXT: [[CONV:%.*]] = sext i32 [[TMP0]] to i64 | ; CHECK-NEXT: [[CONV:%.*]] = sext i32 [[TMP0]] to i64 | ||||
; CHECK-NEXT: [[TMP1:%.*]] = inttoptr i64 [[CONV]] to %t1* | ; CHECK-NEXT: [[TMP1:%.*]] = inttoptr i64 [[CONV]] to %t1* | ||||
; CHECK-NEXT: br label [[LOOP:%.*]] | ; CHECK-NEXT: br label [[LOOP:%.*]] | ||||
; CHECK: loop: | ; CHECK: loop: | ||||
; CHECK-NEXT: [[PHI:%.*]] = phi i1 [ undef, [[ENTRY:%.*]] ], [ false, [[LOOP]] ] | |||||
; CHECK-NEXT: [[CALL:%.*]] = call i1 @test3_g(%t1* [[TMP1]], i32 0) | ; CHECK-NEXT: [[CALL:%.*]] = call i1 @test3_g(%t1* [[TMP1]], i32 0) | ||||
; CHECK-NEXT: call void @use.1(i1 false) | ; CHECK-NEXT: call void @use.1(i1 false) | ||||
; CHECK-NEXT: br i1 false, label [[LOOP]], label [[EXIT:%.*]] | ; CHECK-NEXT: br label [[EXIT:%.*]] | ||||
; CHECK: exit: | ; CHECK: exit: | ||||
; CHECK-NEXT: ret i32 undef | ; CHECK-NEXT: ret i32 undef | ||||
; | ; | ||||
entry: | entry: | ||||
%0 = load i32, i32* @e, align 4 | %0 = load i32, i32* @e, align 4 | ||||
%conv = sext i32 %0 to i64 | %conv = sext i32 %0 to i64 | ||||
%1 = inttoptr i64 %conv to %t1* | %1 = inttoptr i64 %conv to %t1* | ||||
br label %loop | br label %loop | ||||
▲ Show 20 Lines • Show All 213 Lines • Show Last 20 Lines |