1*84efad0bSMichael Maitland; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 2*84efad0bSMichael Maitland; RUN: llc -mtriple=riscv64 -mattr=+reserve-x24 < %s | FileCheck %s 3*84efad0bSMichael Maitland 4*84efad0bSMichael Maitlanddefine noundef signext i32 @foo() { 5*84efad0bSMichael Maitland; CHECK-LABEL: foo: 6*84efad0bSMichael Maitland; CHECK: # %bb.0: 7*84efad0bSMichael Maitland; CHECK-NEXT: li s8, 321 8*84efad0bSMichael Maitland; CHECK-NEXT: li a0, 0 9*84efad0bSMichael Maitland; CHECK-NEXT: ret 10*84efad0bSMichael Maitland tail call void @llvm.write_register.i64(metadata !0, i64 321) 11*84efad0bSMichael Maitland ret i32 0 12*84efad0bSMichael Maitland} 13*84efad0bSMichael Maitland 14*84efad0bSMichael Maitlanddeclare void @llvm.write_register.i64(metadata, i64) 15*84efad0bSMichael Maitland 16*84efad0bSMichael Maitlanddefine noundef signext i32 @bar() nounwind { 17*84efad0bSMichael Maitland; CHECK-LABEL: bar: 18*84efad0bSMichael Maitland; CHECK: # %bb.0: 19*84efad0bSMichael Maitland; CHECK-NEXT: addi sp, sp, -16 20*84efad0bSMichael Maitland; CHECK-NEXT: sd s9, 8(sp) # 8-byte Folded Spill 21*84efad0bSMichael Maitland; CHECK-NEXT: #APP 22*84efad0bSMichael Maitland; CHECK-NEXT: #NO_APP 23*84efad0bSMichael Maitland; CHECK-NEXT: li s8, 321 24*84efad0bSMichael Maitland; CHECK-NEXT: li a0, 0 25*84efad0bSMichael Maitland; CHECK-NEXT: ld s9, 8(sp) # 8-byte Folded Reload 26*84efad0bSMichael Maitland; CHECK-NEXT: addi sp, sp, 16 27*84efad0bSMichael Maitland; CHECK-NEXT: ret 28*84efad0bSMichael Maitland tail call void asm sideeffect "", "~{x25}"() #3 29*84efad0bSMichael Maitland tail call void @llvm.write_register.i64(metadata !0, i64 321) 30*84efad0bSMichael Maitland ret i32 0 31*84efad0bSMichael Maitland} 32*84efad0bSMichael Maitland 33*84efad0bSMichael Maitland!llvm.named.register.x24 = !{!0} 34*84efad0bSMichael Maitland!0 = !{!"x24"} 35*84efad0bSMichael Maitland 36