1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt -passes=ipsccp -S %s | FileCheck %s 3 4declare i32 @hoge() 5 6define dso_local i32 @ham(ptr %arg, ptr %arg1) { 7; CHECK-LABEL: @ham( 8; CHECK-NEXT: bb: 9; CHECK-NEXT: [[TMP:%.*]] = alloca i32 10; CHECK-NEXT: [[TMP2:%.*]] = alloca i32, align 4 11; CHECK-NEXT: br label [[BB19:%.*]] 12; CHECK: bb4: 13; CHECK-NEXT: br label [[BB6:%.*]] 14; CHECK: bb6: 15; CHECK-NEXT: [[TMP7:%.*]] = call i32 @hoge() 16; CHECK-NEXT: store i32 [[TMP7]], ptr [[TMP]] 17; CHECK-NEXT: [[TMP8:%.*]] = load i32, ptr [[TMP]] 18; CHECK-NEXT: [[TMP9:%.*]] = icmp eq i32 [[TMP8]], 912730082 19; CHECK-NEXT: [[TMP10:%.*]] = load i32, ptr [[TMP]] 20; CHECK-NEXT: br i1 [[TMP9]], label [[BB11:%.*]], label [[BB16:%.*]] 21; CHECK: bb11: 22; CHECK-NEXT: unreachable 23; CHECK: bb13: 24; CHECK-NEXT: br label [[BB14:%.*]] 25; CHECK: bb14: 26; CHECK-NEXT: [[TMP15:%.*]] = load i32, ptr [[TMP]] 27; CHECK-NEXT: br label [[BB16]] 28; CHECK: bb16: 29; CHECK-NEXT: [[TMP17:%.*]] = phi i32 [ [[TMP10]], [[BB6]] ], [ 0, [[BB14]] ] 30; CHECK-NEXT: br label [[BB19]] 31; CHECK: bb18: 32; CHECK-NEXT: unreachable 33; CHECK: bb19: 34; CHECK-NEXT: br label [[BB20:%.*]] 35; CHECK: bb20: 36; CHECK-NEXT: indirectbr ptr null, [label [[BB4:%.*]], label [[BB13:%.*]], label %bb18] 37; 38bb: 39 %tmp = alloca i32 40 %tmp2 = alloca i32, align 4 41 br label %bb19 42 43bb4: ; preds = %bb20 44 br label %bb6 45 46bb6: ; preds = %bb4 47 %tmp7 = call i32 @hoge() 48 store i32 %tmp7, ptr %tmp 49 %tmp8 = load i32, ptr %tmp 50 %tmp9 = icmp eq i32 %tmp8, 912730082 51 %tmp10 = load i32, ptr %tmp 52 br i1 %tmp9, label %bb11, label %bb16 53 54bb11: ; preds = %bb6 55 unreachable 56 57bb13: ; preds = %bb20 58 br label %bb14 59 60bb14: ; preds = %bb13 61 %tmp15 = load i32, ptr %tmp 62 br label %bb16 63 64bb16: ; preds = %bb14, %bb6 65 %tmp17 = phi i32 [ %tmp10, %bb6 ], [ 0, %bb14 ] 66 br label %bb19 67 68bb18: ; preds = %bb20 69 unreachable 70 71bb19: ; preds = %bb16, %bb 72 br label %bb20 73 74bb20: ; preds = %bb19 75 indirectbr ptr null, [label %bb4, label %bb13, label %bb18] 76} 77