brintos

brintos / llvm-project-archived public Read only

0
0
Text · 896 B · 6be268a Raw
55 lines · plain
1; RUN: opt < %s -passes=inline -S | FileCheck %s2; RUN: opt < %s -passes='cgscc(inline)' -S | FileCheck %s3 4define internal i32 @callee1(i32 %A, i32 %B) {5; CHECK-NOT: @callee16entry:7  %cond = icmp eq i32 %A, 1238  br i1 %cond, label %T, label %F9 10T:11  %C = mul i32 %B, %B12  ret i32 %C13 14F:15  ret i32 016}17 18define internal i32 @callee2(i32 %A, i32 %B) {19; CHECK-NOT: @callee220entry:21  switch i32 %A, label %T [22           i32 10, label %F23           i32 1234, label %G24  ]25 26dead:27  %cond = icmp eq i32 %A, 12328  br i1 %cond, label %T, label %F29 30T:31  %C = mul i32 %B, %B32  ret i32 %C33 34F:35  ret i32 036 37G:38  %D = mul i32 %B, %B39  %E = mul i32 %D, %B40  ret i32 %E41}42 43define i32 @test(i32 %A) {44; CHECK-LABEL: define i32 @test(i32 %A)45entry:46  %X = call i32 @callee1( i32 10, i32 %A )47  %Y = call i32 @callee2( i32 10, i32 %A )48; CHECK-NOT: call49; CHECK-NOT: mul50 51  %Z = add i32 %X, %Y52  ret i32 %Z53}54 55