[PATCH] D154567: [RISCV] Use ClangBuiltin in IntrinsicsRISCV.td to map some scalar crypto builtins to IR intrinsic.
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG1db5b49ae62a: [RISCV] Use ClangBuiltin in IntrinsicsRISCV.td to map some scalar crypto… (authored by craig.topper). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154567/new/ https://reviews.llvm.org/D154567 Files: clang/lib/CodeGen/CGBuiltin.cpp llvm/include/llvm/IR/IntrinsicsRISCV.td Index: llvm/include/llvm/IR/IntrinsicsRISCV.td === --- llvm/include/llvm/IR/IntrinsicsRISCV.td +++ llvm/include/llvm/IR/IntrinsicsRISCV.td @@ -1613,27 +1613,38 @@ [IntrNoMem, IntrSpeculatable, ImmArg>]>; // Zknd -def int_riscv_aes32dsi : ScalarCryptoByteSelect32; -def int_riscv_aes32dsmi : ScalarCryptoByteSelect32; +def int_riscv_aes32dsi : ScalarCryptoByteSelect32, + ClangBuiltin<"__builtin_riscv_aes32dsi_32">; +def int_riscv_aes32dsmi : ScalarCryptoByteSelect32, + ClangBuiltin<"__builtin_riscv_aes32dsmi_32">; -def int_riscv_aes64ds : ScalarCryptoGprGprIntrinsic64; -def int_riscv_aes64dsm : ScalarCryptoGprGprIntrinsic64; +def int_riscv_aes64ds : ScalarCryptoGprGprIntrinsic64, + ClangBuiltin<"__builtin_riscv_aes64ds_64">; +def int_riscv_aes64dsm : ScalarCryptoGprGprIntrinsic64, + ClangBuiltin<"__builtin_riscv_aes64dsm_64">; -def int_riscv_aes64im : ScalarCryptoGprIntrinsic64; +def int_riscv_aes64im : ScalarCryptoGprIntrinsic64, + ClangBuiltin<"__builtin_riscv_aes64im_64">; // Zkne -def int_riscv_aes32esi : ScalarCryptoByteSelect32; -def int_riscv_aes32esmi : ScalarCryptoByteSelect32; +def int_riscv_aes32esi : ScalarCryptoByteSelect32, + ClangBuiltin<"__builtin_riscv_aes32esi_32">; +def int_riscv_aes32esmi : ScalarCryptoByteSelect32, + ClangBuiltin<"__builtin_riscv_aes32esmi_32">; -def int_riscv_aes64es : ScalarCryptoGprGprIntrinsic64; -def int_riscv_aes64esm : ScalarCryptoGprGprIntrinsic64; +def int_riscv_aes64es : ScalarCryptoGprGprIntrinsic64, + ClangBuiltin<"__builtin_riscv_aes64es_64">; +def int_riscv_aes64esm : ScalarCryptoGprGprIntrinsic64, + ClangBuiltin<"__builtin_riscv_aes64esm_64">; // Zknd & Zkne -def int_riscv_aes64ks2 : ScalarCryptoGprGprIntrinsic64; +def int_riscv_aes64ks2 : ScalarCryptoGprGprIntrinsic64, + ClangBuiltin<"__builtin_riscv_aes64ks2_64">; def int_riscv_aes64ks1i : DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], [IntrNoMem, IntrSpeculatable, - ImmArg>]>; + ImmArg>]>, + ClangBuiltin<"__builtin_riscv_aes64ks1i_64">; // Zknh def int_riscv_sha256sig0 : ScalarCryptoGprIntrinsicAny; @@ -1641,17 +1652,27 @@ def int_riscv_sha256sum0 : ScalarCryptoGprIntrinsicAny; def int_riscv_sha256sum1 : ScalarCryptoGprIntrinsicAny; -def int_riscv_sha512sig0l : ScalarCryptoGprGprIntrinsic32; -def int_riscv_sha512sig0h : ScalarCryptoGprGprIntrinsic32; -def int_riscv_sha512sig1l : ScalarCryptoGprGprIntrinsic32; -def int_riscv_sha512sig1h : ScalarCryptoGprGprIntrinsic32; -def int_riscv_sha512sum0r : ScalarCryptoGprGprIntrinsic32; -def int_riscv_sha512sum1r : ScalarCryptoGprGprIntrinsic32; - -def int_riscv_sha512sig0 : ScalarCryptoGprIntrinsic64; -def int_riscv_sha512sig1 : ScalarCryptoGprIntrinsic64; -def int_riscv_sha512sum0 : ScalarCryptoGprIntrinsic64; -def int_riscv_sha512sum1 : ScalarCryptoGprIntrinsic64; +def int_riscv_sha512sig0l : ScalarCryptoGprGprIntrinsic32, +ClangBuiltin<"__builtin_riscv_sha512sig0l_32">; +def int_riscv_sha512sig0h : ScalarCryptoGprGprIntrinsic32, +ClangBuiltin<"__builtin_riscv_sha512sig0h_32">; +def int_riscv_sha512sig1l : ScalarCryptoGprGprIntrinsic32, +ClangBuiltin<"__builtin_riscv_sha512sig1l_32">; +def int_riscv_sha512sig1h : ScalarCryptoGprGprIntrinsic32, +ClangBuiltin<"__builtin_riscv_sha512sig1h_32">; +def int_riscv_sha512sum0r : ScalarCryptoGprGprIntrinsic32, +ClangBuiltin<"__builtin_riscv_sha512sum0r_32">; +def int_riscv_sha512sum1r : ScalarCryptoGprGprIntrinsic32, +ClangBuiltin<"__builtin_riscv_sha512sum1r_32">; + +def int_riscv_sha512sig0 : ScalarCryptoGprIntrinsic64, + ClangBuiltin<"__builtin_riscv_sha512sig0_64">; +def int_riscv_sha512sig1 : ScalarCryptoGprIntrinsic64, + ClangBuiltin<"__builtin_riscv_sha512sig1_64">; +def int_riscv_sha512sum0 : ScalarCry
[PATCH] D154567: [RISCV] Use ClangBuiltin in IntrinsicsRISCV.td to map some scalar crypto builtins to IR intrinsic.
asb accepted this revision. asb added a comment. This revision is now accepted and ready to land. LGTM. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154567/new/ https://reviews.llvm.org/D154567 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D154567: [RISCV] Use ClangBuiltin in IntrinsicsRISCV.td to map some scalar crypto builtins to IR intrinsic.
craig.topper created this revision. craig.topper added reviewers: asb, VincentWu, kito-cheng. Herald added subscribers: jobnoorman, luke, vkmr, frasercrmck, luismarques, apazos, sameer.abuasal, s.egerton, Jim, benna, psnobl, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, shiva0217, niosHD, sabuasal, simoncook, johnrusso, rbar, arichardson. Herald added a project: All. craig.topper requested review of this revision. Herald added subscribers: llvm-commits, wangpc, eopXD, MaskRay. Herald added projects: clang, LLVM. This is the way most targets do it for a simple mapping. We can't do this for all builtins due to type overloading of the IR intrinsics. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D154567 Files: clang/lib/CodeGen/CGBuiltin.cpp llvm/include/llvm/IR/IntrinsicsRISCV.td Index: llvm/include/llvm/IR/IntrinsicsRISCV.td === --- llvm/include/llvm/IR/IntrinsicsRISCV.td +++ llvm/include/llvm/IR/IntrinsicsRISCV.td @@ -1613,27 +1613,38 @@ [IntrNoMem, IntrSpeculatable, ImmArg>]>; // Zknd -def int_riscv_aes32dsi : ScalarCryptoByteSelect32; -def int_riscv_aes32dsmi : ScalarCryptoByteSelect32; +def int_riscv_aes32dsi : ScalarCryptoByteSelect32, + ClangBuiltin<"__builtin_riscv_aes32dsi_32">; +def int_riscv_aes32dsmi : ScalarCryptoByteSelect32, + ClangBuiltin<"__builtin_riscv_aes32dsmi_32">; -def int_riscv_aes64ds : ScalarCryptoGprGprIntrinsic64; -def int_riscv_aes64dsm : ScalarCryptoGprGprIntrinsic64; +def int_riscv_aes64ds : ScalarCryptoGprGprIntrinsic64, + ClangBuiltin<"__builtin_riscv_aes64ds_64">; +def int_riscv_aes64dsm : ScalarCryptoGprGprIntrinsic64, + ClangBuiltin<"__builtin_riscv_aes64dsm_64">; -def int_riscv_aes64im : ScalarCryptoGprIntrinsic64; +def int_riscv_aes64im : ScalarCryptoGprIntrinsic64, + ClangBuiltin<"__builtin_riscv_aes64im_64">; // Zkne -def int_riscv_aes32esi : ScalarCryptoByteSelect32; -def int_riscv_aes32esmi : ScalarCryptoByteSelect32; +def int_riscv_aes32esi : ScalarCryptoByteSelect32, + ClangBuiltin<"__builtin_riscv_aes32esi_32">; +def int_riscv_aes32esmi : ScalarCryptoByteSelect32, + ClangBuiltin<"__builtin_riscv_aes32esmi_32">; -def int_riscv_aes64es : ScalarCryptoGprGprIntrinsic64; -def int_riscv_aes64esm : ScalarCryptoGprGprIntrinsic64; +def int_riscv_aes64es : ScalarCryptoGprGprIntrinsic64, + ClangBuiltin<"__builtin_riscv_aes64es_64">; +def int_riscv_aes64esm : ScalarCryptoGprGprIntrinsic64, + ClangBuiltin<"__builtin_riscv_aes64esm_64">; // Zknd & Zkne -def int_riscv_aes64ks2 : ScalarCryptoGprGprIntrinsic64; +def int_riscv_aes64ks2 : ScalarCryptoGprGprIntrinsic64, + ClangBuiltin<"__builtin_riscv_aes64ks2_64">; def int_riscv_aes64ks1i : DefaultAttrsIntrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], [IntrNoMem, IntrSpeculatable, - ImmArg>]>; + ImmArg>]>, + ClangBuiltin<"__builtin_riscv_aes64ks1i_64">; // Zknh def int_riscv_sha256sig0 : ScalarCryptoGprIntrinsicAny; @@ -1641,17 +1652,27 @@ def int_riscv_sha256sum0 : ScalarCryptoGprIntrinsicAny; def int_riscv_sha256sum1 : ScalarCryptoGprIntrinsicAny; -def int_riscv_sha512sig0l : ScalarCryptoGprGprIntrinsic32; -def int_riscv_sha512sig0h : ScalarCryptoGprGprIntrinsic32; -def int_riscv_sha512sig1l : ScalarCryptoGprGprIntrinsic32; -def int_riscv_sha512sig1h : ScalarCryptoGprGprIntrinsic32; -def int_riscv_sha512sum0r : ScalarCryptoGprGprIntrinsic32; -def int_riscv_sha512sum1r : ScalarCryptoGprGprIntrinsic32; - -def int_riscv_sha512sig0 : ScalarCryptoGprIntrinsic64; -def int_riscv_sha512sig1 : ScalarCryptoGprIntrinsic64; -def int_riscv_sha512sum0 : ScalarCryptoGprIntrinsic64; -def int_riscv_sha512sum1 : ScalarCryptoGprIntrinsic64; +def int_riscv_sha512sig0l : ScalarCryptoGprGprIntrinsic32, +ClangBuiltin<"__builtin_riscv_sha512sig0l_32">; +def int_riscv_sha512sig0h : ScalarCryptoGprGprIntrinsic32, +ClangBuiltin<"__builtin_riscv_sha512sig0h_32">; +def int_riscv_sha512sig1l : ScalarCryptoGprGprIntrinsic32, +ClangBuiltin<"__builtin_riscv_sha512sig1l_32">; +def int_riscv_sha512sig1h : ScalarCryptoGprGprIntrinsic32, +ClangBuiltin<"__builtin_riscv_sha512sig1h_32">; +def int_riscv_sha512sum0r : ScalarCryptoGprGprIntrinsic32, +ClangBuiltin<"__builtin_riscv_sha512sum0r_32">; +def int_riscv_sha512sum1r : ScalarCryptoGprGprIntrinsic32, +