151b4b17eSLuís Marques; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2*4ad76852SYuanfang Chen; RUN: not --crash llc < %s -mtriple=riscv32 -mattr +reserve-x8 2>&1 \ 351b4b17eSLuís Marques; RUN: | FileCheck -check-prefix=NO-RESERVE-A1 %s 4*4ad76852SYuanfang Chen; RUN: not --crash llc < %s -mtriple=riscv32 -mattr +reserve-x11 2>&1 \ 551b4b17eSLuís Marques; RUN: | FileCheck -check-prefix=NO-RESERVE-FP %s 651b4b17eSLuís Marques; RUN: llc < %s -mtriple=riscv32 -mattr +reserve-x8 -mattr +reserve-x11 \ 751b4b17eSLuís Marques; RUN: | FileCheck -check-prefix=RESERVE %s 851b4b17eSLuís Marques 951b4b17eSLuís Marquesdefine i32 @get_reg_a1() nounwind { 1051b4b17eSLuís Marques; NO-RESERVE-A1: Trying to obtain non-reserved register "a1". 1151b4b17eSLuís Marques; RESERVE-LABEL: get_reg_a1: 1251b4b17eSLuís Marques; RESERVE: # %bb.0: # %entry 1351b4b17eSLuís Marques; RESERVE-NEXT: mv a0, a1 1451b4b17eSLuís Marques; RESERVE-NEXT: ret 1551b4b17eSLuís Marquesentry: 1651b4b17eSLuís Marques %a1 = call i32 @llvm.read_register.i32(metadata !0) 1751b4b17eSLuís Marques ret i32 %a1 1851b4b17eSLuís Marques} 1951b4b17eSLuís Marques 2051b4b17eSLuís Marquesdefine i32 @get_reg_fp() nounwind { 2151b4b17eSLuís Marques; NO-RESERVE-FP: Trying to obtain non-reserved register "fp". 2251b4b17eSLuís Marques; RESERVE-LABEL: get_reg_fp: 2351b4b17eSLuís Marques; RESERVE: # %bb.0: # %entry 2451b4b17eSLuís Marques; RESERVE-NEXT: mv a0, s0 2551b4b17eSLuís Marques; RESERVE-NEXT: ret 2651b4b17eSLuís Marquesentry: 2751b4b17eSLuís Marques %fp = call i32 @llvm.read_register.i32(metadata !1) 2851b4b17eSLuís Marques ret i32 %fp 2951b4b17eSLuís Marques} 3051b4b17eSLuís Marques 3151b4b17eSLuís Marquesdeclare i32 @llvm.read_register.i32(metadata) nounwind 3251b4b17eSLuís Marques 3351b4b17eSLuís Marques!0 = !{!"a1\00"} 3451b4b17eSLuís Marques!1 = !{!"fp\00"} 35