114 lines · plain
1; RUN: opt -S -verify-memoryssa -passes=loop-sink < %s | FileCheck %s2; RUN: opt -S -verify-memoryssa -aa-pipeline=basic-aa -passes=loop-sink < %s | FileCheck %s3 4; CHECK: pr395705; Make sure not to assert.6 7%0 = type { i32, ptr, %2, ptr, ptr }8%1 = type { ptr }9%2 = type { ptr }10%3 = type { %4, i32, ptr }11%4 = type { ptr, i32 }12%5 = type opaque13%6 = type { %7, ptr, ptr, i8, %2, ptr }14%7 = type <{ %8, ptr, %10, i32, ptr, ptr, ptr, %27, %28, i16 }>15%8 = type { ptr }16%9 = type opaque17%10 = type { %11, %16, %18, %19 }18%11 = type { ptr, i32, i32, ptr }19%12 = type { ptr }20%13 = type { ptr, ptr }21%14 = type { %15, i32 }22%15 = type { ptr, i32, i32, ptr }23%16 = type { ptr, i32, i32, ptr }24%17 = type { %13, ptr }25%18 = type { ptr, i32, i32, ptr }26%19 = type { %20, %21, ptr, float, i32, i32, %22, %22, %24, i32, i32 }27%20 = type { i8 }28%21 = type { i8 }29%22 = type { ptr, ptr, ptr }30%23 = type opaque31%24 = type { ptr, i32, i32, ptr }32%25 = type { ptr, i32, i32, ptr }33%26 = type opaque34%27 = type { ptr }35%28 = type { %29, i32, i32, ptr }36%29 = type { %30 }37%30 = type { ptr }38%31 = type opaque39%32 = type { ptr }40%33 = type <{ %8, ptr, %10, i32, ptr, ptr, ptr, %27, %28, i16, [2 x i8] }>41 42define dso_local void @pr39570(i1 %arg) local_unnamed_addr align 2 personality ptr @__gxx_personality_v0 !prof !1 {43 br i1 %arg, label %8, label %1, !prof !244 45; <label>:1: ; preds = %046 %2 = load ptr, ptr undef, align 447 br label %348 49; <label>:3: ; preds = %7, %150 %4 = getelementptr inbounds %0, ptr %2, i32 undef, i32 051 br label %552 53; <label>:5: ; preds = %354 %6 = getelementptr inbounds %0, ptr %2, i32 undef, i32 455 br i1 %arg, label %18, label %7, !prof !356 57; <label>:7: ; preds = %558 br label %359 60; <label>:8: ; preds = %061 invoke void @baz()62 to label %9 unwind label %1263 64; <label>:9: ; preds = %865 invoke void @bar()66 to label %17 unwind label %1067 68; <label>:10: ; preds = %969 %11 = landingpad { ptr, i32 }70 catch ptr null71 unreachable72 73; <label>:12: ; preds = %874 %13 = landingpad { ptr, i32 }75 cleanup76 invoke void @bar()77 to label %16 unwind label %1478 79; <label>:14: ; preds = %1280 %15 = landingpad { ptr, i32 }81 catch ptr null82 unreachable83 84; <label>:16: ; preds = %1285 resume { ptr, i32 } %1386 87; <label>:17: ; preds = %988 br label %1889 90; <label>:18: ; preds = %17, %591 invoke void @baz()92 to label %19 unwind label %2093 94; <label>:19: ; preds = %1895 invoke void @bar()96 to label %22 unwind label %2097 98; <label>:20: ; preds = %1999 %21 = landingpad { ptr, i32 }100 catch ptr null101 unreachable102 103; <label>:22: ; preds = %19104 ret void105}106 107declare dso_local i32 @__gxx_personality_v0(...)108declare dso_local void @bar() local_unnamed_addr109declare dso_local void @baz() local_unnamed_addr align 2110 111!1 = !{!"function_entry_count", i64 0}112!2 = !{!"branch_weights", i32 1, i32 3215551}113!3 = !{!"branch_weights", i32 3215551, i32 1}114