brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.7 KiB · bdbdaec Raw
168 lines · plain
1; RUN: not llc --mtriple=loongarch32 -mattr=+d < %s 2>&1 | FileCheck %s2 3declare void @llvm.loongarch.cacop.w(i32, i32, i32)4declare i32 @llvm.loongarch.crc.w.b.w(i32, i32)5declare i32 @llvm.loongarch.crc.w.h.w(i32, i32)6declare i32 @llvm.loongarch.crc.w.w.w(i32, i32)7declare i32 @llvm.loongarch.crc.w.d.w(i64, i32)8declare i32 @llvm.loongarch.crcc.w.b.w(i32, i32)9declare i32 @llvm.loongarch.crcc.w.h.w(i32, i32)10declare i32 @llvm.loongarch.crcc.w.w.w(i32, i32)11declare i32 @llvm.loongarch.crcc.w.d.w(i64, i32)12declare i64 @llvm.loongarch.csrrd.d(i32 immarg)13declare i64 @llvm.loongarch.csrwr.d(i64, i32 immarg)14declare i64 @llvm.loongarch.csrxchg.d(i64, i64, i32 immarg)15declare i64 @llvm.loongarch.iocsrrd.d(i32)16declare void @llvm.loongarch.iocsrwr.d(i64, i32)17declare void @llvm.loongarch.asrtle.d(i64, i64)18declare void @llvm.loongarch.asrtgt.d(i64, i64)19declare i64 @llvm.loongarch.lddir.d(i64, i64 immarg)20declare void @llvm.loongarch.ldpte.d(i64, i64 immarg)21 22define void @cacop_arg0_out_of_hi_range(i32 %a) nounwind {23; CHECK: llvm.loongarch.cacop.w: argument out of range24entry:25  call void @llvm.loongarch.cacop.w(i32 32, i32 %a, i32 1024)26  ret void27}28 29define void @cacop_arg0_out_of_lo_range(i32 %a) nounwind {30; CHECK: llvm.loongarch.cacop.w: argument out of range31entry:32  call void @llvm.loongarch.cacop.w(i32 -1, i32 %a, i32 1024)33  ret void34}35 36define void @cacop_arg2_out_of_hi_range(i32 %a) nounwind {37; CHECK: llvm.loongarch.cacop.w: argument out of range38entry:39  call void @llvm.loongarch.cacop.w(i32 1, i32 %a, i32 4096)40  ret void41}42 43define void @cacop_arg2_out_of_lo_range(i32 %a) nounwind {44; CHECK: llvm.loongarch.cacop.w: argument out of range45entry:46  call void @llvm.loongarch.cacop.w(i32 1, i32 %a, i32 -4096)47  ret void48}49 50define i32 @crc_w_b_w(i32 %a, i32 %b) nounwind {51; CHECK: llvm.loongarch.crc.w.b.w: requires loongarch6452entry:53  %res = call i32 @llvm.loongarch.crc.w.b.w(i32 %a, i32 %b)54  ret i32 %res55}56 57define i32 @crc_w_h_w(i32 %a, i32 %b) nounwind {58; CHECK: llvm.loongarch.crc.w.h.w: requires loongarch6459entry:60  %res = call i32 @llvm.loongarch.crc.w.h.w(i32 %a, i32 %b)61  ret i32 %res62}63 64define i32 @crc_w_w_w(i32 %a, i32 %b) nounwind {65; CHECK: llvm.loongarch.crc.w.w.w: requires loongarch6466entry:67  %res = call i32 @llvm.loongarch.crc.w.w.w(i32 %a, i32 %b)68  ret i32 %res69}70 71define i32 @crc_w_d_w(i64 %a, i32 %b) nounwind {72; CHECK: llvm.loongarch.crc.w.d.w: requires loongarch6473entry:74  %res = call i32 @llvm.loongarch.crc.w.d.w(i64 %a, i32 %b)75  ret i32 %res76}77 78define i32 @crcc_w_b_w(i32 %a, i32 %b) nounwind {79; CHECK: llvm.loongarch.crcc.w.b.w: requires loongarch6480entry:81  %res = call i32 @llvm.loongarch.crcc.w.b.w(i32 %a, i32 %b)82  ret i32 %res83}84 85define i32 @crcc_w_h_w(i32 %a, i32 %b) nounwind {86; CHECK: llvm.loongarch.crcc.w.h.w: requires loongarch6487entry:88  %res = call i32 @llvm.loongarch.crcc.w.h.w(i32 %a, i32 %b)89  ret i32 %res90}91 92define i32 @crcc_w_w_w(i32 %a, i32 %b) nounwind {93; CHECK: llvm.loongarch.crcc.w.w.w: requires loongarch6494entry:95  %res = call i32 @llvm.loongarch.crcc.w.w.w(i32 %a, i32 %b)96  ret i32 %res97}98 99define i32 @crcc_w_d_w(i64 %a, i32 %b) nounwind {100; CHECK: llvm.loongarch.crcc.w.d.w: requires loongarch64101entry:102  %res = call i32 @llvm.loongarch.crcc.w.d.w(i64 %a, i32 %b)103  ret i32 %res104}105 106define i64 @csrrd_d() {107; CHECK: llvm.loongarch.csrrd.d: requires loongarch64108entry:109  %0 = tail call i64 @llvm.loongarch.csrrd.d(i32 1)110  ret i64 %0111}112 113define i64 @csrwr_d(i64 %a) {114; CHECK: llvm.loongarch.csrwr.d: requires loongarch64115entry:116  %0 = tail call i64 @llvm.loongarch.csrwr.d(i64 %a, i32 1)117  ret i64 %0118}119 120define i64 @csrxchg_d(i64 %a, i64 %b) {121; CHECK: llvm.loongarch.csrxchg.d: requires loongarch64122entry:123  %0 = tail call i64 @llvm.loongarch.csrxchg.d(i64 %a, i64 %b, i32 1)124  ret i64 %0125}126 127define i64 @iocsrrd_d(i32 %a) {128; CHECK: llvm.loongarch.iocsrrd.d: requires loongarch64129entry:130  %0 = tail call i64 @llvm.loongarch.iocsrrd.d(i32 %a)131  ret i64 %0132}133 134define void @iocsrwr_d(i64 %a, i32 signext %b) {135; CHECK: llvm.loongarch.iocsrwr.d: requires loongarch64136entry:137  tail call void @llvm.loongarch.iocsrwr.d(i64 %a, i32 %b)138  ret void139}140 141define void @asrtle_d(i64 %a, i64 %b) {142; CHECK: llvm.loongarch.asrtle.d: requires loongarch64143entry:144  tail call void @llvm.loongarch.asrtle.d(i64 %a, i64 %b)145  ret void146}147 148define void @asrtgt_d(i64 %a, i64 %b) {149; CHECK: llvm.loongarch.asrtgt.d: requires loongarch64150entry:151  tail call void @llvm.loongarch.asrtgt.d(i64 %a, i64 %b)152  ret void153}154 155define i64 @lddir_d(i64 %a) {156; CHECK: llvm.loongarch.lddir.d: requires loongarch64157entry:158  %0 = tail call i64 @llvm.loongarch.lddir.d(i64 %a, i64 1)159  ret i64 %0160}161 162define void @ldpte_d(i64 %a) {163; CHECK: llvm.loongarch.ldpte.d: requires loongarch64164entry:165  tail call void @llvm.loongarch.ldpte.d(i64 %a, i64 1)166  ret void167}168