Xamarin Public Jenkins (auto-signing) 64ac736ec5 Imported Upstream version 6.0.0.172
Former-commit-id: f3cc9b82f3e5bd8f0fd3ebc098f789556b44e9cd
2019-04-12 14:10:50 +00:00

33 lines
744 B
LLVM

; RUN: llc < %s | FileCheck %s -check-prefix=NOIPRA
; RUN: llc -enable-ipra < %s | FileCheck %s
target triple = "x86_64-unknown-unknown"
define void @bar1() {
ret void
}
define preserve_allcc void @foo()#0 {
; Due to preserve_allcc foo() will save some registers at start of foo()
; prefix NOIPRA will verify that.
; NOIPRA-LABEL: foo:
; NOIPRA: pushq %r10
; NOIPRA-NEXT: pushq %r9
; NOIPRA-NEXT: pushq %r8
; NOIPRA: callq bar1
; When IPRA is present above registers will not be saved and that is verified
; by prefix CHECK.
; CHECK: foo:
; CHECK-NOT: pushq %r10
; CHECK-NOT: pushq %r9
; CHECK-NOT: pushq %r8
; CHECK: callq bar1
call void @bar1()
call void @bar2()
ret void
}
define void @bar2() {
ret void
}
attributes #0 = {nounwind}