xref: /llvm-project/llvm/test/CodeGen/RISCV/rv64zknh-intrinsic.ll (revision a64b3e92c7cb0dd474e0ecbdb9fb86c29487451f)
1615d71d9SWu Xinlong; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2615d71d9SWu Xinlong; RUN: llc -mtriple=riscv64 -mattr=+zknh -verify-machineinstrs < %s \
3615d71d9SWu Xinlong; RUN:   | FileCheck %s -check-prefix=RV64ZKNH
4615d71d9SWu Xinlong
5615d71d9SWu Xinlong
6*a64b3e92SCraig Topperdeclare i32 @llvm.riscv.sha256sig0(i32);
7615d71d9SWu Xinlong
8*a64b3e92SCraig Topperdefine signext i32 @sha256sig0_i32(i32 signext %a) nounwind {
9*a64b3e92SCraig Topper; RV64ZKNH-LABEL: sha256sig0_i32:
10615d71d9SWu Xinlong; RV64ZKNH:       # %bb.0:
11615d71d9SWu Xinlong; RV64ZKNH-NEXT:    sha256sig0 a0, a0
12615d71d9SWu Xinlong; RV64ZKNH-NEXT:    ret
13*a64b3e92SCraig Topper    %val = call i32 @llvm.riscv.sha256sig0(i32 signext %a)
14*a64b3e92SCraig Topper    ret i32 %val
15615d71d9SWu Xinlong}
16615d71d9SWu Xinlong
17*a64b3e92SCraig Topperdeclare i32 @llvm.riscv.sha256sig1(i32);
18615d71d9SWu Xinlong
19*a64b3e92SCraig Topperdefine signext i32 @sha256sig1_i32(i32 signext %a) nounwind {
20*a64b3e92SCraig Topper; RV64ZKNH-LABEL: sha256sig1_i32:
21615d71d9SWu Xinlong; RV64ZKNH:       # %bb.0:
22615d71d9SWu Xinlong; RV64ZKNH-NEXT:    sha256sig1 a0, a0
23615d71d9SWu Xinlong; RV64ZKNH-NEXT:    ret
24*a64b3e92SCraig Topper    %val = call i32 @llvm.riscv.sha256sig1(i32 signext %a)
25*a64b3e92SCraig Topper    ret i32 %val
26615d71d9SWu Xinlong}
27615d71d9SWu Xinlong
28*a64b3e92SCraig Topperdeclare i32 @llvm.riscv.sha256sum0(i32);
29615d71d9SWu Xinlong
30*a64b3e92SCraig Topperdefine signext i32 @sha256sum0_i32(i32 signext %a) nounwind {
31*a64b3e92SCraig Topper; RV64ZKNH-LABEL: sha256sum0_i32:
32615d71d9SWu Xinlong; RV64ZKNH:       # %bb.0:
33615d71d9SWu Xinlong; RV64ZKNH-NEXT:    sha256sum0 a0, a0
34615d71d9SWu Xinlong; RV64ZKNH-NEXT:    ret
35*a64b3e92SCraig Topper    %val = call i32 @llvm.riscv.sha256sum0(i32 signext %a)
36*a64b3e92SCraig Topper    ret i32 %val
37615d71d9SWu Xinlong}
38615d71d9SWu Xinlong
39*a64b3e92SCraig Topperdeclare i32 @llvm.riscv.sha256sum1(i32);
40615d71d9SWu Xinlong
41*a64b3e92SCraig Topperdefine signext i32 @sha256sum1_i32(i32 signext %a) nounwind {
42*a64b3e92SCraig Topper; RV64ZKNH-LABEL: sha256sum1_i32:
43615d71d9SWu Xinlong; RV64ZKNH:       # %bb.0:
44615d71d9SWu Xinlong; RV64ZKNH-NEXT:    sha256sum1 a0, a0
45615d71d9SWu Xinlong; RV64ZKNH-NEXT:    ret
46*a64b3e92SCraig Topper    %val = call i32 @llvm.riscv.sha256sum1(i32 signext %a)
47*a64b3e92SCraig Topper    ret i32 %val
48615d71d9SWu Xinlong}
49615d71d9SWu Xinlong
50615d71d9SWu Xinlongdeclare i64 @llvm.riscv.sha512sig0(i64);
51615d71d9SWu Xinlong
52615d71d9SWu Xinlongdefine i64 @sha512sig0(i64 %a) nounwind {
532ce0a5c8SAlex Bradbury; RV64ZKNH-LABEL: sha512sig0:
54615d71d9SWu Xinlong; RV64ZKNH:       # %bb.0:
55615d71d9SWu Xinlong; RV64ZKNH-NEXT:    sha512sig0 a0, a0
56615d71d9SWu Xinlong; RV64ZKNH-NEXT:    ret
57615d71d9SWu Xinlong    %val = call i64 @llvm.riscv.sha512sig0(i64 %a)
58615d71d9SWu Xinlong    ret i64 %val
59615d71d9SWu Xinlong}
60615d71d9SWu Xinlong
61615d71d9SWu Xinlongdeclare i64 @llvm.riscv.sha512sig1(i64);
62615d71d9SWu Xinlong
63615d71d9SWu Xinlongdefine i64 @sha512sig1(i64 %a) nounwind {
642ce0a5c8SAlex Bradbury; RV64ZKNH-LABEL: sha512sig1:
65615d71d9SWu Xinlong; RV64ZKNH:       # %bb.0:
66615d71d9SWu Xinlong; RV64ZKNH-NEXT:    sha512sig1 a0, a0
67615d71d9SWu Xinlong; RV64ZKNH-NEXT:    ret
68615d71d9SWu Xinlong    %val = call i64 @llvm.riscv.sha512sig1(i64 %a)
69615d71d9SWu Xinlong    ret i64 %val
70615d71d9SWu Xinlong}
71615d71d9SWu Xinlong
72615d71d9SWu Xinlongdeclare i64 @llvm.riscv.sha512sum0(i64);
73615d71d9SWu Xinlong
74615d71d9SWu Xinlongdefine i64 @sha512sum0(i64 %a) nounwind {
752ce0a5c8SAlex Bradbury; RV64ZKNH-LABEL: sha512sum0:
76615d71d9SWu Xinlong; RV64ZKNH:       # %bb.0:
77615d71d9SWu Xinlong; RV64ZKNH-NEXT:    sha512sum0 a0, a0
78615d71d9SWu Xinlong; RV64ZKNH-NEXT:    ret
79615d71d9SWu Xinlong    %val = call i64 @llvm.riscv.sha512sum0(i64 %a)
80615d71d9SWu Xinlong    ret i64 %val
81615d71d9SWu Xinlong}
82615d71d9SWu Xinlong
83615d71d9SWu Xinlongdeclare i64 @llvm.riscv.sha512sum1(i64);
84615d71d9SWu Xinlong
85615d71d9SWu Xinlongdefine i64 @sha512sum1(i64 %a) nounwind {
862ce0a5c8SAlex Bradbury; RV64ZKNH-LABEL: sha512sum1:
87615d71d9SWu Xinlong; RV64ZKNH:       # %bb.0:
88615d71d9SWu Xinlong; RV64ZKNH-NEXT:    sha512sum1 a0, a0
89615d71d9SWu Xinlong; RV64ZKNH-NEXT:    ret
90615d71d9SWu Xinlong    %val = call i64 @llvm.riscv.sha512sum1(i64 %a)
91615d71d9SWu Xinlong    ret i64 %val
92615d71d9SWu Xinlong}
93