blob: 362af8812346651fe0e56f00eba5e4a1c7e776ca (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
; 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}
|