Home | History | Annotate | Download | only in X86
      1 
      2 ; RUN: llc < %s | FileCheck %s -check-prefix=NOIPRA
      3 ; RUN: llc -enable-ipra < %s | FileCheck %s
      4 
      5 
      6 target triple = "x86_64-unknown-unknown"
      7 define void @bar1() {
      8 	ret void
      9 }
     10 define 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 }
     29 define void @bar2() {
     30 	ret void
     31 }
     32 attributes #0 = {nounwind}
     33