1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -mtriple=riscv32 < %s | FileCheck -check-prefix=RV32 %s 3; RUN: llc -mtriple=riscv64 < %s | FileCheck -check-prefix=RV64 %s 4 5define void @dwarf() { 6; RV32-LABEL: dwarf: 7; RV32: # %bb.0: # %entry 8; RV32-NEXT: addi sp, sp, -16 9; RV32-NEXT: .cfi_def_cfa_offset 16 10; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 11; RV32-NEXT: .cfi_offset ra, -4 12; RV32-NEXT: addi a0, sp, 16 13; RV32-NEXT: call foo 14; RV32-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 15; RV32-NEXT: .cfi_restore ra 16; RV32-NEXT: addi sp, sp, 16 17; RV32-NEXT: .cfi_def_cfa_offset 0 18; RV32-NEXT: ret 19; 20; RV64-LABEL: dwarf: 21; RV64: # %bb.0: # %entry 22; RV64-NEXT: addi sp, sp, -16 23; RV64-NEXT: .cfi_def_cfa_offset 16 24; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 25; RV64-NEXT: .cfi_offset ra, -8 26; RV64-NEXT: addi a0, sp, 16 27; RV64-NEXT: call foo 28; RV64-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 29; RV64-NEXT: .cfi_restore ra 30; RV64-NEXT: addi sp, sp, 16 31; RV64-NEXT: .cfi_def_cfa_offset 0 32; RV64-NEXT: ret 33entry: 34 %0 = call ptr @llvm.eh.dwarf.cfa(i32 0) 35 call void @foo(ptr %0) 36 ret void 37} 38 39declare void @foo(ptr) 40 41declare ptr @llvm.eh.dwarf.cfa(i32) nounwind 42