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