1; RUN: not llc --mtriple=loongarch32 -mattr=+d < %s 2>&1 | FileCheck %s 2; RUN: not llc --mtriple=loongarch64 -mattr=+d < %s 2>&1 | FileCheck %s 3 4declare void @llvm.loongarch.dbar(i32) 5declare void @llvm.loongarch.ibar(i32) 6declare void @llvm.loongarch.break(i32) 7declare void @llvm.loongarch.movgr2fcsr(i32, i32) 8declare i32 @llvm.loongarch.movfcsr2gr(i32) 9declare void @llvm.loongarch.syscall(i32) 10 11define void @dbar_not_constant(i32 %x) nounwind { 12; CHECK: immarg operand has non-immediate parameter 13entry: 14 call void @llvm.loongarch.dbar(i32 %x) 15 ret void 16} 17 18define void @ibar(i32 %x) nounwind { 19; CHECK: immarg operand has non-immediate parameter 20entry: 21 call void @llvm.loongarch.ibar(i32 %x) 22 ret void 23} 24 25define void @break(i32 %x) nounwind { 26; CHECK: immarg operand has non-immediate parameter 27entry: 28 call void @llvm.loongarch.break(i32 %x) 29 ret void 30} 31 32define void @movgr2fcsr(i32 %a) nounwind { 33; CHECK: immarg operand has non-immediate parameter 34entry: 35 call void @llvm.loongarch.movgr2fcsr(i32 %a, i32 %a) 36 ret void 37} 38 39define i32 @movfcsr2gr(i32 %a) nounwind { 40; CHECK: immarg operand has non-immediate parameter 41entry: 42 %res = call i32 @llvm.loongarch.movfcsr2gr(i32 %a) 43 ret i32 %res 44} 45 46define void @syscall(i32 %x) nounwind { 47; CHECK: immarg operand has non-immediate parameter 48entry: 49 call void @llvm.loongarch.syscall(i32 %x) 50 ret void 51} 52