47 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=riscv32 | FileCheck %s3 4define i32 @get_stack() nounwind {5; CHECK-LABEL: get_stack:6; CHECK: # %bb.0: # %entry7; CHECK-NEXT: mv a0, sp8; CHECK-NEXT: ret9entry:10 %sp = call i32 @llvm.read_register.i32(metadata !0)11 ret i32 %sp12}13 14define void @set_stack(i32 %val) nounwind {15; CHECK-LABEL: set_stack:16; CHECK: # %bb.0: # %entry17; CHECK-NEXT: mv sp, a018; CHECK-NEXT: ret19entry:20 call void @llvm.write_register.i32(metadata !0, i32 %val)21 ret void22}23 24define i32 @get_tp_arch_name() nounwind {25; CHECK-LABEL: get_tp_arch_name:26; CHECK: # %bb.0: # %entry27; CHECK-NEXT: mv a0, tp28; CHECK-NEXT: ret29entry:30 %sp = call i32 @llvm.read_register.i32(metadata !1)31 ret i32 %sp32}33 34define i32 @get_csr_vlenb() nounwind {35; CHECK-LABEL: get_csr_vlenb:36; CHECK: # %bb.0: # %entry37; CHECK-NEXT: csrr a0, vlenb38; CHECK-NEXT: ret39entry:40 %sp = call i32 @llvm.read_register.i32(metadata !2)41 ret i32 %sp42}43 44!0 = !{!"sp\00"}45!1 = !{!"x4\00"}46!2 = !{!"vlenb"}47