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