xref: /llvm-project/llvm/test/CodeGen/RISCV/rv32zknh-intrinsic.ll (revision a64b3e92c7cb0dd474e0ecbdb9fb86c29487451f)
1615d71d9SWu Xinlong; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2615d71d9SWu Xinlong; RUN: llc -mtriple=riscv32 -mattr=+zknh -verify-machineinstrs < %s \
3615d71d9SWu Xinlong; RUN:   | FileCheck %s -check-prefix=RV32ZKNH
4615d71d9SWu Xinlong
5615d71d9SWu Xinlong
6*a64b3e92SCraig Topperdeclare i32 @llvm.riscv.sha256sig0(i32);
7615d71d9SWu Xinlong
8615d71d9SWu Xinlongdefine i32 @sha256sig0_i32(i32 %a) nounwind {
92ce0a5c8SAlex Bradbury; RV32ZKNH-LABEL: sha256sig0_i32:
10615d71d9SWu Xinlong; RV32ZKNH:       # %bb.0:
11615d71d9SWu Xinlong; RV32ZKNH-NEXT:    sha256sig0 a0, a0
12615d71d9SWu Xinlong; RV32ZKNH-NEXT:    ret
13*a64b3e92SCraig Topper    %val = call i32 @llvm.riscv.sha256sig0(i32 %a)
14615d71d9SWu Xinlong    ret i32 %val
15615d71d9SWu Xinlong}
16615d71d9SWu Xinlong
17*a64b3e92SCraig Topperdeclare i32 @llvm.riscv.sha256sig1(i32);
18615d71d9SWu Xinlong
19615d71d9SWu Xinlongdefine i32 @sha256sig1_i32(i32 %a) nounwind {
202ce0a5c8SAlex Bradbury; RV32ZKNH-LABEL: sha256sig1_i32:
21615d71d9SWu Xinlong; RV32ZKNH:       # %bb.0:
22615d71d9SWu Xinlong; RV32ZKNH-NEXT:    sha256sig1 a0, a0
23615d71d9SWu Xinlong; RV32ZKNH-NEXT:    ret
24*a64b3e92SCraig Topper    %val = call i32 @llvm.riscv.sha256sig1(i32 %a)
25615d71d9SWu Xinlong    ret i32 %val
26615d71d9SWu Xinlong}
27615d71d9SWu Xinlong
28*a64b3e92SCraig Topperdeclare i32 @llvm.riscv.sha256sum0(i32);
29615d71d9SWu Xinlong
30615d71d9SWu Xinlongdefine i32 @sha256sum0_i32(i32 %a) nounwind {
312ce0a5c8SAlex Bradbury; RV32ZKNH-LABEL: sha256sum0_i32:
32615d71d9SWu Xinlong; RV32ZKNH:       # %bb.0:
33615d71d9SWu Xinlong; RV32ZKNH-NEXT:    sha256sum0 a0, a0
34615d71d9SWu Xinlong; RV32ZKNH-NEXT:    ret
35*a64b3e92SCraig Topper    %val = call i32 @llvm.riscv.sha256sum0(i32 %a)
36615d71d9SWu Xinlong    ret i32 %val
37615d71d9SWu Xinlong}
38615d71d9SWu Xinlong
39*a64b3e92SCraig Topperdeclare i32 @llvm.riscv.sha256sum1(i32);
40615d71d9SWu Xinlong
41615d71d9SWu Xinlongdefine i32 @sha256sum1_i32(i32 %a) nounwind {
422ce0a5c8SAlex Bradbury; RV32ZKNH-LABEL: sha256sum1_i32:
43615d71d9SWu Xinlong; RV32ZKNH:       # %bb.0:
44615d71d9SWu Xinlong; RV32ZKNH-NEXT:    sha256sum1 a0, a0
45615d71d9SWu Xinlong; RV32ZKNH-NEXT:    ret
46*a64b3e92SCraig Topper    %val = call i32 @llvm.riscv.sha256sum1(i32 %a)
47615d71d9SWu Xinlong    ret i32 %val
48615d71d9SWu Xinlong}
49615d71d9SWu Xinlong
50615d71d9SWu Xinlongdeclare i32 @llvm.riscv.sha512sig0l(i32, i32);
51615d71d9SWu Xinlong
52615d71d9SWu Xinlongdefine i32 @sha512sig0l(i32 %a, i32 %b) nounwind {
532ce0a5c8SAlex Bradbury; RV32ZKNH-LABEL: sha512sig0l:
54615d71d9SWu Xinlong; RV32ZKNH:       # %bb.0:
55615d71d9SWu Xinlong; RV32ZKNH-NEXT:    sha512sig0l a0, a0, a1
56615d71d9SWu Xinlong; RV32ZKNH-NEXT:    ret
57615d71d9SWu Xinlong    %val = call i32 @llvm.riscv.sha512sig0l(i32 %a, i32 %b)
58615d71d9SWu Xinlong    ret i32 %val
59615d71d9SWu Xinlong}
60615d71d9SWu Xinlong
61615d71d9SWu Xinlongdeclare i32 @llvm.riscv.sha512sig0h(i32, i32);
62615d71d9SWu Xinlong
63615d71d9SWu Xinlongdefine i32 @sha512sig0h(i32 %a, i32 %b) nounwind {
642ce0a5c8SAlex Bradbury; RV32ZKNH-LABEL: sha512sig0h:
65615d71d9SWu Xinlong; RV32ZKNH:       # %bb.0:
66615d71d9SWu Xinlong; RV32ZKNH-NEXT:    sha512sig0h a0, a0, a1
67615d71d9SWu Xinlong; RV32ZKNH-NEXT:    ret
68615d71d9SWu Xinlong    %val = call i32 @llvm.riscv.sha512sig0h(i32 %a, i32 %b)
69615d71d9SWu Xinlong    ret i32 %val
70615d71d9SWu Xinlong}
71615d71d9SWu Xinlong
72615d71d9SWu Xinlongdeclare i32 @llvm.riscv.sha512sig1l(i32, i32);
73615d71d9SWu Xinlong
74615d71d9SWu Xinlongdefine i32 @sha512sig1l(i32 %a, i32 %b) nounwind {
752ce0a5c8SAlex Bradbury; RV32ZKNH-LABEL: sha512sig1l:
76615d71d9SWu Xinlong; RV32ZKNH:       # %bb.0:
77615d71d9SWu Xinlong; RV32ZKNH-NEXT:    sha512sig1l a0, a0, a1
78615d71d9SWu Xinlong; RV32ZKNH-NEXT:    ret
79615d71d9SWu Xinlong    %val = call i32 @llvm.riscv.sha512sig1l(i32 %a, i32 %b)
80615d71d9SWu Xinlong    ret i32 %val
81615d71d9SWu Xinlong}
82615d71d9SWu Xinlong
83615d71d9SWu Xinlongdeclare i32 @llvm.riscv.sha512sig1h(i32, i32);
84615d71d9SWu Xinlong
85615d71d9SWu Xinlongdefine i32 @sha512sig1h(i32 %a, i32 %b) nounwind {
862ce0a5c8SAlex Bradbury; RV32ZKNH-LABEL: sha512sig1h:
87615d71d9SWu Xinlong; RV32ZKNH:       # %bb.0:
88615d71d9SWu Xinlong; RV32ZKNH-NEXT:    sha512sig1h a0, a0, a1
89615d71d9SWu Xinlong; RV32ZKNH-NEXT:    ret
90615d71d9SWu Xinlong    %val = call i32 @llvm.riscv.sha512sig1h(i32 %a, i32 %b)
91615d71d9SWu Xinlong    ret i32 %val
92615d71d9SWu Xinlong}
93615d71d9SWu Xinlong
94615d71d9SWu Xinlongdeclare i32 @llvm.riscv.sha512sum0r(i32, i32);
95615d71d9SWu Xinlong
96615d71d9SWu Xinlongdefine i32 @sha512sum0r(i32 %a, i32 %b) nounwind {
972ce0a5c8SAlex Bradbury; RV32ZKNH-LABEL: sha512sum0r:
98615d71d9SWu Xinlong; RV32ZKNH:       # %bb.0:
99615d71d9SWu Xinlong; RV32ZKNH-NEXT:    sha512sum0r a0, a0, a1
100615d71d9SWu Xinlong; RV32ZKNH-NEXT:    ret
101615d71d9SWu Xinlong    %val = call i32 @llvm.riscv.sha512sum0r(i32 %a, i32 %b)
102615d71d9SWu Xinlong    ret i32 %val
103615d71d9SWu Xinlong}
104615d71d9SWu Xinlong
105615d71d9SWu Xinlongdeclare i32 @llvm.riscv.sha512sum1r(i32, i32);
106615d71d9SWu Xinlong
107615d71d9SWu Xinlongdefine i32 @sha512sum1r(i32 %a, i32 %b) nounwind {
1082ce0a5c8SAlex Bradbury; RV32ZKNH-LABEL: sha512sum1r:
109615d71d9SWu Xinlong; RV32ZKNH:       # %bb.0:
110615d71d9SWu Xinlong; RV32ZKNH-NEXT:    sha512sum1r a0, a0, a1
111615d71d9SWu Xinlong; RV32ZKNH-NEXT:    ret
112615d71d9SWu Xinlong    %val = call i32 @llvm.riscv.sha512sum1r(i32 %a, i32 %b)
113615d71d9SWu Xinlong    ret i32 %val
114615d71d9SWu Xinlong}
115