[Reland][Runtimes] Merge 'compile_commands.json' files from runtimes build (#116303)
[llvm-project.git] / llvm / test / CodeGen / LoongArch / intrinsic-la64-error.ll
blob0a24e03838fdbb49a7174332fc3108f02a3c0e81
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: not llc --mtriple=loongarch64 -mattr=+d < %s 2>&1 | FileCheck %s
4 declare void @llvm.loongarch.cacop.w(i32, i32, i32)
5 declare void @llvm.loongarch.cacop.d(i64, i64, i64)
6 declare i64 @llvm.loongarch.csrrd.d(i32 immarg)
7 declare i64 @llvm.loongarch.csrwr.d(i64, i32 immarg)
8 declare i64 @llvm.loongarch.csrxchg.d(i64, i64, i32 immarg)
10 define i64 @csrrd_d_imm_out_of_hi_range() nounwind {
11 ; CHECK: llvm.loongarch.csrrd.d: argument out of range
12 entry:
13   %0 = call i64 @llvm.loongarch.csrrd.d(i32 16384)
14   ret i64 %0
17 define i64 @csrrd_d_imm_out_of_lo_range() nounwind {
18 ; CHECK: llvm.loongarch.csrrd.d: argument out of range
19 entry:
20   %0 = call i64 @llvm.loongarch.csrrd.d(i32 -1)
21   ret i64 %0
24 define i64 @csrwr_d_imm_out_of_hi_range(i64 %a) nounwind {
25 ; CHECK: llvm.loongarch.csrwr.d: argument out of range
26 entry:
27   %0 = call i64 @llvm.loongarch.csrwr.d(i64 %a, i32 16384)
28   ret i64 %0
31 define i64 @csrwr_d_imm_out_of_lo_range(i64 %a) nounwind {
32 ; CHECK: llvm.loongarch.csrwr.d: argument out of range
33 entry:
34   %0 = call i64 @llvm.loongarch.csrwr.d(i64 %a, i32 -1)
35   ret i64 %0
38 define i64 @csrxchg_d_imm_out_of_hi_range(i64 %a, i64 %b) nounwind {
39 ; CHECK: llvm.loongarch.csrxchg.d: argument out of range
40 entry:
41   %0 = call i64 @llvm.loongarch.csrxchg.d(i64 %a, i64 %b, i32 16384)
42   ret i64 %0
45 define i64 @csrxchg_d_imm_out_of_lo_range(i64 %a, i64 %b) nounwind {
46 ; CHECK: llvm.loongarch.csrxchg.d: argument out of range
47 entry:
48   %0 = call i64 @llvm.loongarch.csrxchg.d(i64 %a, i64 %b, i32 -1)
49   ret i64 %0
52 define void @cacop_w(i32 %a) nounwind {
53 ; CHECK: llvm.loongarch.cacop.w: requires loongarch32
54   call void @llvm.loongarch.cacop.w(i32 1, i32 %a, i32 4)
55   ret void
58 define void @cacop_arg0_out_of_hi_range(i64 %a) nounwind {
59 ; CHECK: llvm.loongarch.cacop.d: argument out of range
60 entry:
61   call void @llvm.loongarch.cacop.d(i64 32, i64 %a, i64 1024)
62   ret void
65 define void @cacop_arg0_out_of_lo_range(i64 %a) nounwind {
66 ; CHECK: llvm.loongarch.cacop.d: argument out of range
67 entry:
68   call void @llvm.loongarch.cacop.d(i64 -1, i64 %a, i64 1024)
69   ret void
72 define void @cacop_arg2_out_of_hi_range(i64 %a) nounwind {
73 ; CHECK: llvm.loongarch.cacop.d: argument out of range
74 entry:
75   call void @llvm.loongarch.cacop.d(i64 1, i64 %a, i64 4096)
76   ret void
79 define void @cacop_arg2_out_of_lo_range(i64 %a) nounwind {
80 ; CHECK: llvm.loongarch.cacop.d: argument out of range
81 entry:
82   call void @llvm.loongarch.cacop.d(i64 1, i64 %a, i64 -4096)
83   ret void