1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=riscv32 -mattr=+zknh -verify-machineinstrs < %s \
3 ; RUN: | FileCheck %s -check-prefix=RV32ZKNH
6 declare i32 @llvm.riscv.sha256sig0.i32(i32);
8 define i32 @sha256sig0_i32(i32 %a) nounwind {
9 ; RV32ZKNH-LABEL: sha256sig0_i32:
11 ; RV32ZKNH-NEXT: sha256sig0 a0, a0
13 %val = call i32 @llvm.riscv.sha256sig0.i32(i32 %a)
17 declare i32 @llvm.riscv.sha256sig1.i32(i32);
19 define i32 @sha256sig1_i32(i32 %a) nounwind {
20 ; RV32ZKNH-LABEL: sha256sig1_i32:
22 ; RV32ZKNH-NEXT: sha256sig1 a0, a0
24 %val = call i32 @llvm.riscv.sha256sig1.i32(i32 %a)
28 declare i32 @llvm.riscv.sha256sum0.i32(i32);
30 define i32 @sha256sum0_i32(i32 %a) nounwind {
31 ; RV32ZKNH-LABEL: sha256sum0_i32:
33 ; RV32ZKNH-NEXT: sha256sum0 a0, a0
35 %val = call i32 @llvm.riscv.sha256sum0.i32(i32 %a)
39 declare i32 @llvm.riscv.sha256sum1.i32(i32);
41 define i32 @sha256sum1_i32(i32 %a) nounwind {
42 ; RV32ZKNH-LABEL: sha256sum1_i32:
44 ; RV32ZKNH-NEXT: sha256sum1 a0, a0
46 %val = call i32 @llvm.riscv.sha256sum1.i32(i32 %a)
50 declare i32 @llvm.riscv.sha512sig0l(i32, i32);
52 define i32 @sha512sig0l(i32 %a, i32 %b) nounwind {
53 ; RV32ZKNH-LABEL: sha512sig0l:
55 ; RV32ZKNH-NEXT: sha512sig0l a0, a0, a1
57 %val = call i32 @llvm.riscv.sha512sig0l(i32 %a, i32 %b)
61 declare i32 @llvm.riscv.sha512sig0h(i32, i32);
63 define i32 @sha512sig0h(i32 %a, i32 %b) nounwind {
64 ; RV32ZKNH-LABEL: sha512sig0h:
66 ; RV32ZKNH-NEXT: sha512sig0h a0, a0, a1
68 %val = call i32 @llvm.riscv.sha512sig0h(i32 %a, i32 %b)
72 declare i32 @llvm.riscv.sha512sig1l(i32, i32);
74 define i32 @sha512sig1l(i32 %a, i32 %b) nounwind {
75 ; RV32ZKNH-LABEL: sha512sig1l:
77 ; RV32ZKNH-NEXT: sha512sig1l a0, a0, a1
79 %val = call i32 @llvm.riscv.sha512sig1l(i32 %a, i32 %b)
83 declare i32 @llvm.riscv.sha512sig1h(i32, i32);
85 define i32 @sha512sig1h(i32 %a, i32 %b) nounwind {
86 ; RV32ZKNH-LABEL: sha512sig1h:
88 ; RV32ZKNH-NEXT: sha512sig1h a0, a0, a1
90 %val = call i32 @llvm.riscv.sha512sig1h(i32 %a, i32 %b)
94 declare i32 @llvm.riscv.sha512sum0r(i32, i32);
96 define i32 @sha512sum0r(i32 %a, i32 %b) nounwind {
97 ; RV32ZKNH-LABEL: sha512sum0r:
99 ; RV32ZKNH-NEXT: sha512sum0r a0, a0, a1
101 %val = call i32 @llvm.riscv.sha512sum0r(i32 %a, i32 %b)
105 declare i32 @llvm.riscv.sha512sum1r(i32, i32);
107 define i32 @sha512sum1r(i32 %a, i32 %b) nounwind {
108 ; RV32ZKNH-LABEL: sha512sum1r:
110 ; RV32ZKNH-NEXT: sha512sum1r a0, a0, a1
112 %val = call i32 @llvm.riscv.sha512sum1r(i32 %a, i32 %b)