brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · 0a24e03 Raw
85 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: not llc --mtriple=loongarch64 -mattr=+d < %s 2>&1 | FileCheck %s3 4declare void @llvm.loongarch.cacop.w(i32, i32, i32)5declare void @llvm.loongarch.cacop.d(i64, i64, i64)6declare i64 @llvm.loongarch.csrrd.d(i32 immarg)7declare i64 @llvm.loongarch.csrwr.d(i64, i32 immarg)8declare i64 @llvm.loongarch.csrxchg.d(i64, i64, i32 immarg)9 10define i64 @csrrd_d_imm_out_of_hi_range() nounwind {11; CHECK: llvm.loongarch.csrrd.d: argument out of range12entry:13  %0 = call i64 @llvm.loongarch.csrrd.d(i32 16384)14  ret i64 %015}16 17define i64 @csrrd_d_imm_out_of_lo_range() nounwind {18; CHECK: llvm.loongarch.csrrd.d: argument out of range19entry:20  %0 = call i64 @llvm.loongarch.csrrd.d(i32 -1)21  ret i64 %022}23 24define i64 @csrwr_d_imm_out_of_hi_range(i64 %a) nounwind {25; CHECK: llvm.loongarch.csrwr.d: argument out of range26entry:27  %0 = call i64 @llvm.loongarch.csrwr.d(i64 %a, i32 16384)28  ret i64 %029}30 31define i64 @csrwr_d_imm_out_of_lo_range(i64 %a) nounwind {32; CHECK: llvm.loongarch.csrwr.d: argument out of range33entry:34  %0 = call i64 @llvm.loongarch.csrwr.d(i64 %a, i32 -1)35  ret i64 %036}37 38define i64 @csrxchg_d_imm_out_of_hi_range(i64 %a, i64 %b) nounwind {39; CHECK: llvm.loongarch.csrxchg.d: argument out of range40entry:41  %0 = call i64 @llvm.loongarch.csrxchg.d(i64 %a, i64 %b, i32 16384)42  ret i64 %043}44 45define i64 @csrxchg_d_imm_out_of_lo_range(i64 %a, i64 %b) nounwind {46; CHECK: llvm.loongarch.csrxchg.d: argument out of range47entry:48  %0 = call i64 @llvm.loongarch.csrxchg.d(i64 %a, i64 %b, i32 -1)49  ret i64 %050}51 52define void @cacop_w(i32 %a) nounwind {53; CHECK: llvm.loongarch.cacop.w: requires loongarch3254  call void @llvm.loongarch.cacop.w(i32 1, i32 %a, i32 4)55  ret void56}57 58define void @cacop_arg0_out_of_hi_range(i64 %a) nounwind {59; CHECK: llvm.loongarch.cacop.d: argument out of range60entry:61  call void @llvm.loongarch.cacop.d(i64 32, i64 %a, i64 1024)62  ret void63}64 65define void @cacop_arg0_out_of_lo_range(i64 %a) nounwind {66; CHECK: llvm.loongarch.cacop.d: argument out of range67entry:68  call void @llvm.loongarch.cacop.d(i64 -1, i64 %a, i64 1024)69  ret void70}71 72define void @cacop_arg2_out_of_hi_range(i64 %a) nounwind {73; CHECK: llvm.loongarch.cacop.d: argument out of range74entry:75  call void @llvm.loongarch.cacop.d(i64 1, i64 %a, i64 4096)76  ret void77}78 79define void @cacop_arg2_out_of_lo_range(i64 %a) nounwind {80; CHECK: llvm.loongarch.cacop.d: argument out of range81entry:82  call void @llvm.loongarch.cacop.d(i64 1, i64 %a, i64 -4096)83  ret void84}85