blob: d292fcb99bd09eac0aac872d8c0012a510c709b5 [file] [edit]
; RUN: opt -passes=inline -S < %s | FileCheck %s
; Ensure `noipa` does _not_ control inlining. The `noipa` attribute controls
; _other_ interprocedural optimisations by affecting the result of
; `isInterposable` and `isDefinitionExact` checks, but inlining is
; controlled separately by the `noinline` attribute.
define internal i32 @noipa(i32 %x) noipa {
ret i32 %x
}
define internal i32 @noipa_noinline(i32 %x) noipa noinline {
ret i32 %x
}
define i32 @bob() {
%a = call i32 @noipa(i32 1)
%b = call i32 @noipa_noinline(i32 %a)
ret i32 %b
}
; CHECK-NOT: call i32 @noipa(
; CHECK: call i32 @noipa_noinline(