; RUN: opt < %s -callsite-splitting -S | FileCheck %s ; RUN: opt < %s -passes='function(callsite-splitting)' -S | FileCheck %s define i32 @callee(i32*, i32, i32) { ret i32 10 } ; CHECK-LABEL: @test_preds_equal ; CHECK-NOT: split ; CHECK: br i1 %cmp, label %Tail, label %Tail define i32 @test_preds_equal(i32* %a, i32 %v, i32 %p) { TBB: %cmp = icmp eq i32* %a, null br i1 %cmp, label %Tail, label %Tail Tail: %r = call i32 @callee(i32* %a, i32 %v, i32 %p) ret i32 %r } define void @fn1(i16 %p1) { entry: ret void } define void @fn2() { ret void ; Unreachable code below for.inc: ; preds = %for.inc br i1 undef, label %for.end6, label %for.inc for.end6: ; preds = %for.inc br i1 undef, label %lor.rhs, label %lor.end lor.rhs: ; preds = %for.end6 br label %lor.end lor.end: ; preds = %for.end6, %lor.rhs call void @fn1(i16 0) ret void }