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