blob: 72f84059f2d77bc40b483f3145d9aa77322c17d5 [file] [log] [blame]
Chandler Carruth62c8b812016-12-27 02:47:37 +00001; RUN: opt < %s -inline -S | FileCheck %s
Chris Lattner3f1c2c02006-06-01 21:54:58 +00002
Tanya Lattner5640bd12008-03-01 09:15:35 +00003define internal i32 @callee1(i32 %A, i32 %B) {
Chandler Carruth62c8b812016-12-27 02:47:37 +00004; CHECK-NOT: @callee1
5entry:
6 %cond = icmp eq i32 %A, 123
7 br i1 %cond, label %T, label %F
Chris Lattner3f1c2c02006-06-01 21:54:58 +00008
Chandler Carruth62c8b812016-12-27 02:47:37 +00009T:
10 %C = mul i32 %B, %B
11 ret i32 %C
Tanya Lattner5640bd12008-03-01 09:15:35 +000012
Chandler Carruth62c8b812016-12-27 02:47:37 +000013F:
14 ret i32 0
Chris Lattner3f1c2c02006-06-01 21:54:58 +000015}
16
Tanya Lattner5640bd12008-03-01 09:15:35 +000017define internal i32 @callee2(i32 %A, i32 %B) {
Chandler Carruth62c8b812016-12-27 02:47:37 +000018; CHECK-NOT: @callee2
19entry:
20 switch i32 %A, label %T [
21 i32 10, label %F
22 i32 1234, label %G
23 ]
Tanya Lattner5640bd12008-03-01 09:15:35 +000024
Chandler Carruth62c8b812016-12-27 02:47:37 +000025dead:
26 %cond = icmp eq i32 %A, 123
27 br i1 %cond, label %T, label %F
Tanya Lattner5640bd12008-03-01 09:15:35 +000028
Chandler Carruth62c8b812016-12-27 02:47:37 +000029T:
30 %C = mul i32 %B, %B
31 ret i32 %C
Tanya Lattner5640bd12008-03-01 09:15:35 +000032
Chandler Carruth62c8b812016-12-27 02:47:37 +000033F:
34 ret i32 0
35
36G:
37 %D = mul i32 %B, %B
38 %E = mul i32 %D, %B
39 ret i32 %E
Chris Lattner3f1c2c02006-06-01 21:54:58 +000040}
41
Tanya Lattner5640bd12008-03-01 09:15:35 +000042define i32 @test(i32 %A) {
Chandler Carruth62c8b812016-12-27 02:47:37 +000043; CHECK-LABEL: define i32 @test(i32 %A)
44entry:
45 %X = call i32 @callee1( i32 10, i32 %A )
46 %Y = call i32 @callee2( i32 10, i32 %A )
47; CHECK-NOT: call
48; CHECK-NOT: mul
49
50 %Z = add i32 %X, %Y
51 ret i32 %Z
Chris Lattner3f1c2c02006-06-01 21:54:58 +000052}
Tanya Lattner5640bd12008-03-01 09:15:35 +000053