;; Check if manually reserved registers are always excluded from being saved by ;; the function prolog/epilog, even for callee-saved ones, as per GCC behavior. ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -verify-machineinstrs | FileCheck %s define preserve_mostcc void @t8() "target-features"="+reserve-r8" { ; CHECK-LABEL: t8: ; CHECK: # %bb.0: ; CHECK-NEXT: movl $256, %r8d ; CHECK-NEXT: #APP ; CHECK-NEXT: #NO_APP ; CHECK-NEXT: ret call i64 asm sideeffect "", "={r8},{r8}"(i64 256) ret void } define preserve_mostcc void @t9() "target-features"="+reserve-r9" { ; CHECK-LABEL: t9: ; CHECK: # %bb.0: ; CHECK-NEXT: movl $256, %r9d ; CHECK-NEXT: #APP ; CHECK-NEXT: #NO_APP ; CHECK-NEXT: ret call i64 asm sideeffect "", "={r9},{r9}"(i64 256) ret void } define preserve_mostcc void @t10() "target-features"="+reserve-r10" { ; CHECK-LABEL: t10: ; CHECK: # %bb.0: ; CHECK-NEXT: movl $256, %r10d ; CHECK-NEXT: #APP ; CHECK-NEXT: #NO_APP ; CHECK-NEXT: ret call i64 asm sideeffect "", "={r10},{r10}"(i64 256) ret void } define preserve_mostcc void @t11() "target-features"="+reserve-r11" { ; CHECK-LABEL: t11: ; CHECK: # %bb.0: ; CHECK-NEXT: movl $256, %r11d ; CHECK-NEXT: #APP ; CHECK-NEXT: #NO_APP ; CHECK-NEXT: ret call i64 asm sideeffect "", "={r11},{r11}"(i64 256) ret void } define preserve_mostcc void @t12() "target-features"="+reserve-r12" { ; CHECK-LABEL: t12: ; CHECK: # %bb.0: ; CHECK-NEXT: movl $256, %r12d ; CHECK-NEXT: #APP ; CHECK-NEXT: #NO_APP ; CHECK-NEXT: ret call i64 asm sideeffect "", "={r12},{r12}"(i64 256) ret void } define preserve_mostcc void @t13() "target-features"="+reserve-r13" { ; CHECK-LABEL: t13: ; CHECK: # %bb.0: ; CHECK-NEXT: movl $256, %r13d ; CHECK-NEXT: #APP ; CHECK-NEXT: #NO_APP ; CHECK-NEXT: ret call i64 asm sideeffect "", "={r13},{r13}"(i64 256) ret void } define preserve_mostcc void @t14() "target-features"="+reserve-r14" { ; CHECK-LABEL: t14: ; CHECK: # %bb.0: ; CHECK-NEXT: movl $256, %r14d ; CHECK-NEXT: #APP ; CHECK-NEXT: #NO_APP ; CHECK-NEXT: ret call i64 asm sideeffect "", "={r14},{r14}"(i64 256) ret void } define preserve_mostcc void @t15() "target-features"="+reserve-r15" { ; CHECK-LABEL: t15: ; CHECK: # %bb.0: ; CHECK-NEXT: movl $256, %r15d ; CHECK-NEXT: #APP ; CHECK-NEXT: #NO_APP ; CHECK-NEXT: ret call i64 asm sideeffect "", "={r15},{r15}"(i64 256) ret void } define preserve_mostcc void @t16() "target-features"="+egpr,+reserve-r16" { ; CHECK-LABEL: t16: ; CHECK: # %bb.0: ; CHECK-NEXT: movl $256, %r16d ; CHECK-NEXT: #APP ; CHECK-NEXT: #NO_APP ; CHECK-NEXT: ret call i64 asm sideeffect "", "={r16},{r16}"(i64 256) ret void } define preserve_mostcc void @t31() "target-features"="+egpr,+reserve-r31" { ; CHECK-LABEL: t31: ; CHECK: # %bb.0: ; CHECK-NEXT: movl $256, %r31d ; CHECK-NEXT: #APP ; CHECK-NEXT: #NO_APP ; CHECK-NEXT: ret call i64 asm sideeffect "", "={r31},{r31}"(i64 256) ret void }