33 lines
744 B
LLVM
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}
|