Skip to content

Commit 29843cb

Browse files
author
Sjoerd Meijer
committed
[FuncSpec] Add test for a call site that will never be executed. NFC.
1 parent 5c1639f commit 29843cb

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
; RUN: opt -function-specialization -force-function-specialization -S < %s | FileCheck %s
2+
3+
; The if.then block is not executed, so check that we don't specialise here.
4+
5+
; CHECK-NOT: @func.1(
6+
; CHECK-NOT: @func.2(
7+
8+
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
9+
10+
@A = external dso_local constant i32, align 4
11+
@B = external dso_local constant i32, align 4
12+
13+
define dso_local i32 @bar(i32 %x, i32 %y) {
14+
entry:
15+
%tobool = icmp ne i32 %x, 0
16+
br i1 false, label %if.then, label %if.else
17+
18+
if.then:
19+
%call = call i32 @foo(i32 %x, i32* @A)
20+
br label %return
21+
22+
if.else:
23+
%call1 = call i32 @foo(i32 %y, i32* @B)
24+
br label %return
25+
26+
return:
27+
%retval.0 = phi i32 [ %call, %if.then ], [ %call1, %if.else ]
28+
ret i32 %retval.0
29+
}
30+
31+
define internal i32 @foo(i32 %x, i32* %b) {
32+
entry:
33+
%0 = load i32, i32* %b, align 4
34+
%add = add nsw i32 %x, %0
35+
ret i32 %add
36+
}

0 commit comments

Comments
 (0)