151b4b17eSLuís Marques; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 251b4b17eSLuís Marques; RUN: llc < %s -mtriple=riscv32 | FileCheck %s 351b4b17eSLuís Marques 451b4b17eSLuís Marquesdefine i32 @get_stack() nounwind { 551b4b17eSLuís Marques; CHECK-LABEL: get_stack: 651b4b17eSLuís Marques; CHECK: # %bb.0: # %entry 751b4b17eSLuís Marques; CHECK-NEXT: mv a0, sp 851b4b17eSLuís Marques; CHECK-NEXT: ret 951b4b17eSLuís Marquesentry: 1051b4b17eSLuís Marques %sp = call i32 @llvm.read_register.i32(metadata !0) 1151b4b17eSLuís Marques ret i32 %sp 1251b4b17eSLuís Marques} 1351b4b17eSLuís Marques 1451b4b17eSLuís Marquesdefine void @set_stack(i32 %val) nounwind { 1551b4b17eSLuís Marques; CHECK-LABEL: set_stack: 1651b4b17eSLuís Marques; CHECK: # %bb.0: # %entry 1751b4b17eSLuís Marques; CHECK-NEXT: mv sp, a0 1851b4b17eSLuís Marques; CHECK-NEXT: ret 1951b4b17eSLuís Marquesentry: 2051b4b17eSLuís Marques call void @llvm.write_register.i32(metadata !0, i32 %val) 2151b4b17eSLuís Marques ret void 2251b4b17eSLuís Marques} 2351b4b17eSLuís Marques 2451b4b17eSLuís Marquesdefine i32 @get_tp_arch_name() nounwind { 2551b4b17eSLuís Marques; CHECK-LABEL: get_tp_arch_name: 2651b4b17eSLuís Marques; CHECK: # %bb.0: # %entry 2751b4b17eSLuís Marques; CHECK-NEXT: mv a0, tp 2851b4b17eSLuís Marques; CHECK-NEXT: ret 2951b4b17eSLuís Marquesentry: 3051b4b17eSLuís Marques %sp = call i32 @llvm.read_register.i32(metadata !1) 3151b4b17eSLuís Marques ret i32 %sp 3251b4b17eSLuís Marques} 3351b4b17eSLuís Marques 34*af5e09b7SPhilip Reamesdefine i32 @get_csr_vlenb() nounwind { 35*af5e09b7SPhilip Reames; CHECK-LABEL: get_csr_vlenb: 36*af5e09b7SPhilip Reames; CHECK: # %bb.0: # %entry 37*af5e09b7SPhilip Reames; CHECK-NEXT: csrr a0, vlenb 38*af5e09b7SPhilip Reames; CHECK-NEXT: ret 39*af5e09b7SPhilip Reamesentry: 40*af5e09b7SPhilip Reames %sp = call i32 @llvm.read_register.i32(metadata !2) 41*af5e09b7SPhilip Reames ret i32 %sp 42*af5e09b7SPhilip Reames} 43*af5e09b7SPhilip Reames 44*af5e09b7SPhilip Reames 4551b4b17eSLuís Marquesdeclare i32 @llvm.read_register.i32(metadata) nounwind 4651b4b17eSLuís Marquesdeclare void @llvm.write_register.i32(metadata, i32) nounwind 4751b4b17eSLuís Marques 4851b4b17eSLuís Marques!0 = !{!"sp\00"} 4951b4b17eSLuís Marques!1 = !{!"x4\00"} 50*af5e09b7SPhilip Reames!2 = !{!"vlenb"} 51