Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / FunctionSpecialization / noinline.ll
blob73576402b002965766c2ca89e945e14fa9e0ffd1
1 ; RUN: opt -S --passes="ipsccp<func-spec>" < %s | FileCheck %s
2 define dso_local i32 @p0(i32 noundef %x) {
3 entry:
4   %add = add nsw i32 %x, 1
5   ret i32 %add
8 define dso_local i32 @p1(i32 noundef %x) {
9 entry:
10   %sub = add nsw i32 %x, -1
11   ret i32 %sub
14 define internal fastcc i32 @f(i32 noundef %x, ptr nocapture noundef readonly %p) noinline {
15 entry:
16   %call = tail call i32 %p(i32 noundef %x)
17   %add = add nsw i32 %call, %x
18   ret i32 %add
21 define dso_local i32 @g0(i32 noundef %x) {
22 entry:
23   %call = tail call fastcc i32 @f(i32 noundef %x, ptr noundef nonnull @p0)
24   ret i32 %call
27 define dso_local i32 @g1(i32 noundef %x) {
28 entry:
29   %call = tail call fastcc i32 @f(i32 noundef %x, ptr noundef nonnull @p1)
30   ret i32 %call
33 ; Check that a noinline function is specialized, even if it's small.
34 ; CHECK: @f.specialized.1
35 ; CHECK: @f.specialized.2