113 lines · plain
1; RUN: not llc -mtriple=riscv32 < %s 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK322; RUN: not llc -mtriple=riscv64 < %s 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK643 4define void @constraint_I() {5; CHECK: error: value out of range for constraint 'I'6 tail call void asm sideeffect "addi a0, a0, $0", "I"(i32 2048)7; CHECK: error: value out of range for constraint 'I'8 tail call void asm sideeffect "addi a0, a0, $0", "I"(i32 -2049)9 ret void10}11 12define void @constraint_J() {13; CHECK: error: value out of range for constraint 'J'14 tail call void asm sideeffect "addi a0, a0, $0", "J"(i32 1)15 ret void16}17 18define void @constraint_K() {19; CHECK: error: value out of range for constraint 'K'20 tail call void asm sideeffect "csrwi mstatus, $0", "K"(i32 32)21; CHECK: error: value out of range for constraint 'K'22 tail call void asm sideeffect "csrwi mstatus, $0", "K"(i32 -1)23 ret void24}25 26define void @constraint_f() nounwind {27; CHECK: error: couldn't allocate input reg for constraint 'f'28 tail call void asm "fadd.s fa0, fa0, $0", "f"(float 0.0)29; CHECK: error: couldn't allocate input reg for constraint 'f'30 tail call void asm "fadd.d fa0, fa0, $0", "f"(double 0.0)31 ret void32}33 34define void @constraint_cf() nounwind {35; CHECK: error: couldn't allocate input reg for constraint 'cf'36 tail call void asm "fadd.s fa0, fa0, $0", "^cf"(float 0.0)37; CHECK: error: couldn't allocate input reg for constraint 'cf'38 tail call void asm "fadd.d fa0, fa0, $0", "^cf"(double 0.0)39 ret void40}41 42define void @constraint_r_fixed_vec() nounwind {43; CHECK: error: couldn't allocate input reg for constraint 'r'44 tail call void asm "add a0, a0, $0", "r"(<4 x i32> zeroinitializer)45 ret void46}47 48define void @constraint_r_scalable_vec() nounwind {49; CHECK: error: couldn't allocate input reg for constraint 'r'50 tail call void asm "add a0, a0, $0", "r"(<vscale x 4 x i32> zeroinitializer)51 ret void52}53 54define void @constraint_cr_fixed_vec() nounwind {55; CHECK: error: couldn't allocate input reg for constraint 'cr'56 tail call void asm "add a0, a0, $0", "^cr"(<4 x i32> zeroinitializer)57 ret void58}59 60define void @constraint_cr_scalable_vec() nounwind {61; CHECK: error: couldn't allocate input reg for constraint 'cr'62 tail call void asm "add a0, a0, $0", "^cr"(<vscale x 4 x i32> zeroinitializer)63 ret void64}65 66define void @constraint_R_i32() nounwind {67; CHECK32: error: couldn't allocate input reg for constraint 'R'68 tail call void asm "add a0, a0, $0", "R"(i32 zeroinitializer)69 ret void70}71 72define void @constraint_R_i64() nounwind {73; CHECK64: error: couldn't allocate input reg for constraint 'R'74 tail call void asm "add a0, a0, $0", "R"(i64 zeroinitializer)75 ret void76}77 78define void @constraint_R_i128() nounwind {79; CHECK32: error: couldn't allocate input reg for constraint 'R'80 tail call void asm "add a0, a0, $0", "R"(i128 zeroinitializer)81 ret void82}83 84define void @constraint_R_i256() nounwind {85; CHECK: error: couldn't allocate input reg for constraint 'R'86 tail call void asm "add a0, a0, $0", "R"(i256 zeroinitializer)87 ret void88}89 90define void @constraint_cR_i32() nounwind {91; CHECK32: error: couldn't allocate input reg for constraint 'cR'92 tail call void asm "add a0, a0, $0", "^cR"(i32 zeroinitializer)93 ret void94}95 96define void @constraint_cR_i64() nounwind {97; CHECK64: error: couldn't allocate input reg for constraint 'cR'98 tail call void asm "add a0, a0, $0", "^cR"(i64 zeroinitializer)99 ret void100}101 102define void @constraint_cR_i128() nounwind {103; CHECK32: error: couldn't allocate input reg for constraint 'cR'104 tail call void asm "add a0, a0, $0", "^cR"(i128 zeroinitializer)105 ret void106}107 108define void @constraint_cR_i256() nounwind {109; CHECK: error: couldn't allocate input reg for constraint 'cR'110 tail call void asm "add a0, a0, $0", "^cR"(i256 zeroinitializer)111 ret void112}113