34 lines · plain
1; RUN: opt -passes=jump-threading -S < %s | FileCheck %s2 3target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"4target triple = "x86_64-apple-macosx10.11.0"5 6declare void @helper()7declare i32 @__gxx_personality_v0(...)8 9 10define void @pr27840(ptr %call, i1 %A) personality ptr @__gxx_personality_v0 {11entry:12 invoke void @helper()13 to label %invoke.cont unwind label %lpad14 15; Don't jump threading; we can't split the critical edge from entry to lpad.16; CHECK-LABEL: @pr2784017; CHECK: invoke18; CHECK-NEXT: to label %invoke.cont unwind label %lpad19 20invoke.cont:21 invoke void @helper()22 to label %nowhere unwind label %lpad23 24lpad:25 %b = phi i1 [ true, %invoke.cont ], [ false, %entry ]26 landingpad { ptr, i32 }27 cleanup28 %xor = xor i1 %b, %A29 br i1 %xor, label %nowhere, label %invoke.cont30 31nowhere:32 unreachable33}34