• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2; RUN: llc < %s | FileCheck %s -check-prefix=NOIPRA
3; RUN: llc -enable-ipra < %s | FileCheck %s
4
5
6target triple = "x86_64-unknown-unknown"
7define void @bar1() {
8	ret void
9}
10define preserve_allcc void @foo()#0 {
11; Due to preserve_allcc foo() will save some registers at start of foo()
12; prefix NOIPRA will verify that.
13; NOIPRA-LABEL: foo:
14; NOIPRA: pushq	%r10
15; NOIPRA-NEXT: pushq %r9
16; NOIPRA-NEXT: pushq %r8
17; NOIPRA: callq bar1
18; When IPRA is present above registers will not be saved and that is verified
19; by prefix CHECK.
20; CHECK: foo:
21; CHECK-NOT: pushq %r10
22; CHECK-NOT: pushq %r9
23; CHECK-NOT: pushq %r8
24; CHECK: callq bar1
25	call void @bar1()
26	call void @bar2()
27	ret void
28}
29define void @bar2() {
30	ret void
31}
32attributes #0 = {nounwind}
33