66 lines · plain
1; RUN: llc -O2 %s -o - | FileCheck %s2target datalayout = "E-m:e-i64:64-n32:64"3target triple = "powerpc64-unknown-linux-gnu"4 5; Function Attrs: nounwind6declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #07 8declare void @f1()9declare void @f2()10declare void @f3()11declare void @f4()12 13; Function Attrs: nounwind14; CHECK-LABEL: tail_dup_fallthrough_with_branch15; CHECK: # %bb.{{[0-9]+}}: # %entry16; CHECK-NOT: # %{{[-_a-zA-Z0-9]+}}17; CHECK: # %bb.{{[0-9]+}}: # %entry18; CHECK-NOT: # %{{[-_a-zA-Z0-9]+}}19; CHECK: # %bb.{{[0-9]+}}: # %sw.020; CHECK-NOT: # %{{[-_a-zA-Z0-9]+}}21; CHECK: # %sw.122; CHECK-NOT: # %{{[-_a-zA-Z0-9]+}}23; CHECK: # %sw.default24; CHECK-NOT: # %{{[-_a-zA-Z0-9]+}}25; CHECK: # %bb.{{[0-9]+}}: # %if.then26; CHECK-NOT: # %{{[-_a-zA-Z0-9]+}}27; CHECK: # %if.else28; CHECK-NOT: # %{{[-_a-zA-Z0-9]+}}29; CHECK: .Lfunc_end030define fastcc void @tail_dup_fallthrough_with_branch(i32 %a, i1 %b) unnamed_addr #0 {31entry:32 switch i32 %a, label %sw.default [33 i32 0, label %sw.034 i32 1, label %sw.135 ]36 37sw.0: ; preds = %entry38 call void @f1() #039 br label %dup140 41sw.1: ; preds = %entry42 call void @f2() #043 br label %dup144 45sw.default: ; preds = %entry46 br i1 %b, label %if.then, label %if.else47 48if.then: ; preds = %sw.default49 call void @f3() #050 br label %dup251 52if.else: ; preds = %sw.default53 call void @f4() #054 br label %dup255 56dup1: ; preds = %sw.0, %sw.157 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull undef) #058 unreachable59 60dup2: ; preds = %if.then, %if.else61 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull undef) #062 unreachable63}64 65attributes #0 = { nounwind }66