diff options
Diffstat (limited to 'test/CodeGen/Mips/msa/elm_cxcmsa.ll')
-rw-r--r-- | test/CodeGen/Mips/msa/elm_cxcmsa.ll | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/test/CodeGen/Mips/msa/elm_cxcmsa.ll b/test/CodeGen/Mips/msa/elm_cxcmsa.ll new file mode 100644 index 000000000000..8d6b0ee20ab8 --- /dev/null +++ b/test/CodeGen/Mips/msa/elm_cxcmsa.ll @@ -0,0 +1,168 @@ +; Test the MSA ctcmsa and cfcmsa intrinsics (which are encoded with the ELM +; instruction format). + +; RUN: llc -march=mips -mattr=+msa,+fp64 < %s | FileCheck %s +; RUN: llc -march=mipsel -mattr=+msa,+fp64 < %s | FileCheck %s + +define i32 @msa_ir_cfcmsa_test() nounwind { +entry: + %0 = tail call i32 @llvm.mips.cfcmsa(i32 0) + ret i32 %0 +} + +; CHECK: msa_ir_cfcmsa_test: +; CHECK: cfcmsa $[[R1:[0-9]+]], $0 +; CHECK: .size msa_ir_cfcmsa_test +; +define i32 @msa_csr_cfcmsa_test() nounwind { +entry: + %0 = tail call i32 @llvm.mips.cfcmsa(i32 1) + ret i32 %0 +} + +; CHECK: msa_csr_cfcmsa_test: +; CHECK: cfcmsa $[[R1:[0-9]+]], $1 +; CHECK: .size msa_csr_cfcmsa_test +; +define i32 @msa_access_cfcmsa_test() nounwind { +entry: + %0 = tail call i32 @llvm.mips.cfcmsa(i32 2) + ret i32 %0 +} + +; CHECK: msa_access_cfcmsa_test: +; CHECK: cfcmsa $[[R1:[0-9]+]], $2 +; CHECK: .size msa_access_cfcmsa_test +; +define i32 @msa_save_cfcmsa_test() nounwind { +entry: + %0 = tail call i32 @llvm.mips.cfcmsa(i32 3) + ret i32 %0 +} + +; CHECK: msa_save_cfcmsa_test: +; CHECK: cfcmsa $[[R1:[0-9]+]], $3 +; CHECK: .size msa_save_cfcmsa_test +; +define i32 @msa_modify_cfcmsa_test() nounwind { +entry: + %0 = tail call i32 @llvm.mips.cfcmsa(i32 4) + ret i32 %0 +} + +; CHECK: msa_modify_cfcmsa_test: +; CHECK: cfcmsa $[[R1:[0-9]+]], $4 +; CHECK: .size msa_modify_cfcmsa_test +; +define i32 @msa_request_cfcmsa_test() nounwind { +entry: + %0 = tail call i32 @llvm.mips.cfcmsa(i32 5) + ret i32 %0 +} + +; CHECK: msa_request_cfcmsa_test: +; CHECK: cfcmsa $[[R1:[0-9]+]], $5 +; CHECK: .size msa_request_cfcmsa_test +; +define i32 @msa_map_cfcmsa_test() nounwind { +entry: + %0 = tail call i32 @llvm.mips.cfcmsa(i32 6) + ret i32 %0 +} + +; CHECK: msa_map_cfcmsa_test: +; CHECK: cfcmsa $[[R1:[0-9]+]], $6 +; CHECK: .size msa_map_cfcmsa_test +; +define i32 @msa_unmap_cfcmsa_test() nounwind { +entry: + %0 = tail call i32 @llvm.mips.cfcmsa(i32 7) + ret i32 %0 +} + +; CHECK: msa_unmap_cfcmsa_test: +; CHECK: cfcmsa $[[R1:[0-9]+]], $7 +; CHECK: .size msa_unmap_cfcmsa_test +; +define void @msa_ir_ctcmsa_test() nounwind { +entry: + tail call void @llvm.mips.ctcmsa(i32 0, i32 1) + ret void +} + +; CHECK: msa_ir_ctcmsa_test: +; CHECK: ctcmsa $0 +; CHECK: .size msa_ir_ctcmsa_test +; +define void @msa_csr_ctcmsa_test() nounwind { +entry: + tail call void @llvm.mips.ctcmsa(i32 1, i32 1) + ret void +} + +; CHECK: msa_csr_ctcmsa_test: +; CHECK: ctcmsa $1 +; CHECK: .size msa_csr_ctcmsa_test +; +define void @msa_access_ctcmsa_test() nounwind { +entry: + tail call void @llvm.mips.ctcmsa(i32 2, i32 1) + ret void +} + +; CHECK: msa_access_ctcmsa_test: +; CHECK: ctcmsa $2 +; CHECK: .size msa_access_ctcmsa_test +; +define void @msa_save_ctcmsa_test() nounwind { +entry: + tail call void @llvm.mips.ctcmsa(i32 3, i32 1) + ret void +} + +; CHECK: msa_save_ctcmsa_test: +; CHECK: ctcmsa $3 +; CHECK: .size msa_save_ctcmsa_test +; +define void @msa_modify_ctcmsa_test() nounwind { +entry: + tail call void @llvm.mips.ctcmsa(i32 4, i32 1) + ret void +} + +; CHECK: msa_modify_ctcmsa_test: +; CHECK: ctcmsa $4 +; CHECK: .size msa_modify_ctcmsa_test +; +define void @msa_request_ctcmsa_test() nounwind { +entry: + tail call void @llvm.mips.ctcmsa(i32 5, i32 1) + ret void +} + +; CHECK: msa_request_ctcmsa_test: +; CHECK: ctcmsa $5 +; CHECK: .size msa_request_ctcmsa_test +; +define void @msa_map_ctcmsa_test() nounwind { +entry: + tail call void @llvm.mips.ctcmsa(i32 6, i32 1) + ret void +} + +; CHECK: msa_map_ctcmsa_test: +; CHECK: ctcmsa $6 +; CHECK: .size msa_map_ctcmsa_test +; +define void @msa_unmap_ctcmsa_test() nounwind { +entry: + tail call void @llvm.mips.ctcmsa(i32 7, i32 1) + ret void +} + +; CHECK: msa_unmap_ctcmsa_test: +; CHECK: ctcmsa $7 +; CHECK: .size msa_unmap_ctcmsa_test +; +declare i32 @llvm.mips.cfcmsa(i32) nounwind +declare void @llvm.mips.ctcmsa(i32, i32) nounwind |