129843cbcSSjoerd Meijer; RUN: opt -function-specialization -force-function-specialization -S < %s | FileCheck %s 229843cbcSSjoerd Meijer 329843cbcSSjoerd Meijer; The if.then block is not executed, so check that we don't specialise here. 429843cbcSSjoerd Meijer 5*08c75fc5SSjoerd Meijer; CHECK-NOT: @foo.1( 6*08c75fc5SSjoerd Meijer; CHECK-NOT: @foo.2( 729843cbcSSjoerd Meijer 829843cbcSSjoerd Meijertarget datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" 929843cbcSSjoerd Meijer 1029843cbcSSjoerd Meijer@A = external dso_local constant i32, align 4 1129843cbcSSjoerd Meijer@B = external dso_local constant i32, align 4 1229843cbcSSjoerd Meijer 1329843cbcSSjoerd Meijerdefine dso_local i32 @bar(i32 %x, i32 %y) { 1429843cbcSSjoerd Meijerentry: 1529843cbcSSjoerd Meijer %tobool = icmp ne i32 %x, 0 1629843cbcSSjoerd Meijer br i1 false, label %if.then, label %if.else 1729843cbcSSjoerd Meijer 1829843cbcSSjoerd Meijerif.then: 1929843cbcSSjoerd Meijer %call = call i32 @foo(i32 %x, i32* @A) 2029843cbcSSjoerd Meijer br label %return 2129843cbcSSjoerd Meijer 2229843cbcSSjoerd Meijerif.else: 2329843cbcSSjoerd Meijer %call1 = call i32 @foo(i32 %y, i32* @B) 2429843cbcSSjoerd Meijer br label %return 2529843cbcSSjoerd Meijer 2629843cbcSSjoerd Meijerreturn: 2729843cbcSSjoerd Meijer %retval.0 = phi i32 [ %call, %if.then ], [ %call1, %if.else ] 2829843cbcSSjoerd Meijer ret i32 %retval.0 2929843cbcSSjoerd Meijer} 3029843cbcSSjoerd Meijer 3129843cbcSSjoerd Meijerdefine internal i32 @foo(i32 %x, i32* %b) { 3229843cbcSSjoerd Meijerentry: 3329843cbcSSjoerd Meijer %0 = load i32, i32* %b, align 4 3429843cbcSSjoerd Meijer %add = add nsw i32 %x, %0 3529843cbcSSjoerd Meijer ret i32 %add 3629843cbcSSjoerd Meijer} 37