llvm-project/llvm/test/CodeGen/LoongArch/intrinsic-la64.ll

84 lines
2.4 KiB
LLVM

; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc --mtriple=loongarch64 < %s | FileCheck %s
declare i32 @llvm.loongarch.crc.w.b.w(i32, i32)
declare i32 @llvm.loongarch.crc.w.h.w(i32, i32)
declare i32 @llvm.loongarch.crc.w.w.w(i32, i32)
declare i32 @llvm.loongarch.crc.w.d.w(i64, i32)
declare i32 @llvm.loongarch.crcc.w.b.w(i32, i32)
declare i32 @llvm.loongarch.crcc.w.h.w(i32, i32)
declare i32 @llvm.loongarch.crcc.w.w.w(i32, i32)
declare i32 @llvm.loongarch.crcc.w.d.w(i64, i32)
define i32 @crc_w_b_w(i32 %a, i32 %b) nounwind {
; CHECK-LABEL: crc_w_b_w:
; CHECK: # %bb.0:
; CHECK-NEXT: crc.w.b.w $a0, $a0, $a1
; CHECK-NEXT: ret
%res = call i32 @llvm.loongarch.crc.w.b.w(i32 %a, i32 %b)
ret i32 %res
}
define i32 @crc_w_h_w(i32 %a, i32 %b) nounwind {
; CHECK-LABEL: crc_w_h_w:
; CHECK: # %bb.0:
; CHECK-NEXT: crc.w.h.w $a0, $a0, $a1
; CHECK-NEXT: ret
%res = call i32 @llvm.loongarch.crc.w.h.w(i32 %a, i32 %b)
ret i32 %res
}
define i32 @crc_w_w_w(i32 %a, i32 %b) nounwind {
; CHECK-LABEL: crc_w_w_w:
; CHECK: # %bb.0:
; CHECK-NEXT: crc.w.w.w $a0, $a0, $a1
; CHECK-NEXT: ret
%res = call i32 @llvm.loongarch.crc.w.w.w(i32 %a, i32 %b)
ret i32 %res
}
define i32 @crc_w_d_w(i64 %a, i32 %b) nounwind {
; CHECK-LABEL: crc_w_d_w:
; CHECK: # %bb.0:
; CHECK-NEXT: crc.w.d.w $a0, $a0, $a1
; CHECK-NEXT: ret
%res = call i32 @llvm.loongarch.crc.w.d.w(i64 %a, i32 %b)
ret i32 %res
}
define i32 @crcc_w_b_w(i32 %a, i32 %b) nounwind {
; CHECK-LABEL: crcc_w_b_w:
; CHECK: # %bb.0:
; CHECK-NEXT: crcc.w.b.w $a0, $a0, $a1
; CHECK-NEXT: ret
%res = call i32 @llvm.loongarch.crcc.w.b.w(i32 %a, i32 %b)
ret i32 %res
}
define i32 @crcc_w_h_w(i32 %a, i32 %b) nounwind {
; CHECK-LABEL: crcc_w_h_w:
; CHECK: # %bb.0:
; CHECK-NEXT: crcc.w.h.w $a0, $a0, $a1
; CHECK-NEXT: ret
%res = call i32 @llvm.loongarch.crcc.w.h.w(i32 %a, i32 %b)
ret i32 %res
}
define i32 @crcc_w_w_w(i32 %a, i32 %b) nounwind {
; CHECK-LABEL: crcc_w_w_w:
; CHECK: # %bb.0:
; CHECK-NEXT: crcc.w.w.w $a0, $a0, $a1
; CHECK-NEXT: ret
%res = call i32 @llvm.loongarch.crcc.w.w.w(i32 %a, i32 %b)
ret i32 %res
}
define i32 @crcc_w_d_w(i64 %a, i32 %b) nounwind {
; CHECK-LABEL: crcc_w_d_w:
; CHECK: # %bb.0:
; CHECK-NEXT: crcc.w.d.w $a0, $a0, $a1
; CHECK-NEXT: ret
%res = call i32 @llvm.loongarch.crcc.w.d.w(i64 %a, i32 %b)
ret i32 %res
}