[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / llvm / test / Transforms / Inline / devirtualize-5.ll
blobab507d1d58a1d3eeee48b1a8892868fa0d812e24
1 ; RUN: opt -abort-on-max-devirt-iterations-reached -passes='cgscc(devirt<1>(inline,instcombine))' -S < %s | FileCheck %s
2 ; RUN: opt -abort-on-max-devirt-iterations-reached -passes='default<O2>' -S < %s | FileCheck %s
4 define i32 @i() alwaysinline {
5   ret i32 45
8 ; CHECK-LABEL: define i32 @main
9 ; CHECK-NEXT: ret i32 45
11 define i32 @main() {
12   %a = alloca i32 ()*
13   store i32 ()* @i, i32 ()** %a
14   %r = call i32 @call(i32 ()** %a)
15   ret i32 %r
18 define i32 @call(i32 ()** %a) alwaysinline {
19   %c = load i32 ()*, i32 ()** %a
20   %r = call i32 %c()
21   ret i32 %r