1*0d1a91e8SHari Limaye; RUN: opt -S --passes="ipsccp<func-spec>" -funcspec-for-literal-constant=false < %s | FileCheck %s 2c47739b4SMomchil Velikovdefine dso_local i32 @p0(i32 noundef %x) { 3c47739b4SMomchil Velikoventry: 4c47739b4SMomchil Velikov %add = add nsw i32 %x, 1 5c47739b4SMomchil Velikov ret i32 %add 6c47739b4SMomchil Velikov} 7c47739b4SMomchil Velikov 8c47739b4SMomchil Velikovdefine dso_local i32 @p1(i32 noundef %x) { 9c47739b4SMomchil Velikoventry: 10c47739b4SMomchil Velikov %sub = add nsw i32 %x, -1 11c47739b4SMomchil Velikov ret i32 %sub 12c47739b4SMomchil Velikov} 13c47739b4SMomchil Velikov 14c47739b4SMomchil Velikovdefine internal fastcc i32 @f(i32 noundef %x, ptr nocapture noundef readonly %p) noinline { 15c47739b4SMomchil Velikoventry: 16c47739b4SMomchil Velikov %call = tail call i32 %p(i32 noundef %x) 17c47739b4SMomchil Velikov %add = add nsw i32 %call, %x 18c47739b4SMomchil Velikov ret i32 %add 19c47739b4SMomchil Velikov} 20c47739b4SMomchil Velikov 21c47739b4SMomchil Velikovdefine dso_local i32 @g0(i32 noundef %x) { 22c47739b4SMomchil Velikoventry: 23c47739b4SMomchil Velikov %call = tail call fastcc i32 @f(i32 noundef %x, ptr noundef nonnull @p0) 24c47739b4SMomchil Velikov ret i32 %call 25c47739b4SMomchil Velikov} 26c47739b4SMomchil Velikov 27c47739b4SMomchil Velikovdefine dso_local i32 @g1(i32 noundef %x) { 28c47739b4SMomchil Velikoventry: 29c47739b4SMomchil Velikov %call = tail call fastcc i32 @f(i32 noundef %x, ptr noundef nonnull @p1) 30c47739b4SMomchil Velikov ret i32 %call 31c47739b4SMomchil Velikov} 32c47739b4SMomchil Velikov 33c47739b4SMomchil Velikov; Check that a noinline function is specialized, even if it's small. 34e15d72adSAlexandros Lamprineas; CHECK: @f.specialized.1 35e15d72adSAlexandros Lamprineas; CHECK: @f.specialized.2 36