| //==- BuiltinsRISCV.def - RISC-V Builtin function database -------*- C++ -*-==// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file defines the RISC-V-specific builtin function database. Users of |
| // this file must define the BUILTIN macro to make use of this information. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #if defined(BUILTIN) && !defined(TARGET_BUILTIN) |
| # define TARGET_BUILTIN(ID, TYPE, ATTRS, FEATURE) BUILTIN(ID, TYPE, ATTRS) |
| #endif |
| |
| // Zbb extension |
| TARGET_BUILTIN(__builtin_riscv_orc_b_32, "ZiZi", "nc", "zbb") |
| TARGET_BUILTIN(__builtin_riscv_orc_b_64, "WiWi", "nc", "zbb,64bit") |
| |
| // Zbc or Zbkc extension |
| TARGET_BUILTIN(__builtin_riscv_clmul, "LiLiLi", "nc", "zbc|zbkc") |
| TARGET_BUILTIN(__builtin_riscv_clmulh, "LiLiLi", "nc", "zbc|zbkc") |
| TARGET_BUILTIN(__builtin_riscv_clmulr, "LiLiLi", "nc", "zbc") |
| |
| // Zbkx |
| TARGET_BUILTIN(__builtin_riscv_xperm4, "LiLiLi", "nc", "zbkx") |
| TARGET_BUILTIN(__builtin_riscv_xperm8, "LiLiLi", "nc", "zbkx") |
| |
| // Zbe extension |
| TARGET_BUILTIN(__builtin_riscv_bcompress_32, "ZiZiZi", "nc", "experimental-zbe") |
| TARGET_BUILTIN(__builtin_riscv_bcompress_64, "WiWiWi", "nc", |
| "experimental-zbe,64bit") |
| TARGET_BUILTIN(__builtin_riscv_bdecompress_32, "ZiZiZi", "nc", |
| "experimental-zbe") |
| TARGET_BUILTIN(__builtin_riscv_bdecompress_64, "WiWiWi", "nc", |
| "experimental-zbe,64bit") |
| |
| // Zbf extension |
| TARGET_BUILTIN(__builtin_riscv_bfp_32, "ZiZiZi", "nc", "experimental-zbf") |
| TARGET_BUILTIN(__builtin_riscv_bfp_64, "WiWiWi", "nc", "experimental-zbf,64bit") |
| |
| // Zbp extension |
| TARGET_BUILTIN(__builtin_riscv_grev_32, "ZiZiZi", "nc", "experimental-zbp") |
| TARGET_BUILTIN(__builtin_riscv_grev_64, "WiWiWi", "nc", "experimental-zbp,64bit") |
| TARGET_BUILTIN(__builtin_riscv_gorc_32, "ZiZiZi", "nc", "experimental-zbp") |
| TARGET_BUILTIN(__builtin_riscv_gorc_64, "WiWiWi", "nc", "experimental-zbp,64bit") |
| TARGET_BUILTIN(__builtin_riscv_shfl_32, "ZiZiZi", "nc", "experimental-zbp") |
| TARGET_BUILTIN(__builtin_riscv_shfl_64, "WiWiWi", "nc", "experimental-zbp,64bit") |
| TARGET_BUILTIN(__builtin_riscv_unshfl_32, "ZiZiZi", "nc", "experimental-zbp") |
| TARGET_BUILTIN(__builtin_riscv_unshfl_64, "WiWiWi", "nc", "experimental-zbp,64bit") |
| TARGET_BUILTIN(__builtin_riscv_xperm_n, "LiLiLi", "nc", "experimental-zbp") |
| TARGET_BUILTIN(__builtin_riscv_xperm_b, "LiLiLi", "nc", "experimental-zbp") |
| TARGET_BUILTIN(__builtin_riscv_xperm_h, "LiLiLi", "nc", "experimental-zbp") |
| TARGET_BUILTIN(__builtin_riscv_xperm_w, "WiWiWi", "nc", "experimental-zbp,64bit") |
| |
| // Zbr extension |
| TARGET_BUILTIN(__builtin_riscv_crc32_b, "LiLi", "nc", "experimental-zbr") |
| TARGET_BUILTIN(__builtin_riscv_crc32_h, "LiLi", "nc", "experimental-zbr") |
| TARGET_BUILTIN(__builtin_riscv_crc32_w, "LiLi", "nc", "experimental-zbr") |
| TARGET_BUILTIN(__builtin_riscv_crc32c_b, "LiLi", "nc", "experimental-zbr") |
| TARGET_BUILTIN(__builtin_riscv_crc32c_h, "LiLi", "nc", "experimental-zbr") |
| TARGET_BUILTIN(__builtin_riscv_crc32c_w, "LiLi", "nc", "experimental-zbr") |
| TARGET_BUILTIN(__builtin_riscv_crc32_d, "LiLi", "nc", "experimental-zbr,64bit") |
| TARGET_BUILTIN(__builtin_riscv_crc32c_d, "LiLi", "nc", "experimental-zbr,64bit") |
| |
| // Zbt extension |
| TARGET_BUILTIN(__builtin_riscv_fsl_32, "LiLiLiLi", "nc", "experimental-zbt") |
| TARGET_BUILTIN(__builtin_riscv_fsr_32, "LiLiLiLi", "nc", "experimental-zbt") |
| TARGET_BUILTIN(__builtin_riscv_fsl_64, "WiWiWiWi", "nc", "experimental-zbt,64bit") |
| TARGET_BUILTIN(__builtin_riscv_fsr_64, "WiWiWiWi", "nc", "experimental-zbt,64bit") |
| |
| // Zbkb extension |
| TARGET_BUILTIN(__builtin_riscv_brev8, "LiLi", "nc", "zbkb") |
| TARGET_BUILTIN(__builtin_riscv_zip_32, "ZiZi", "nc", "zbkb") |
| TARGET_BUILTIN(__builtin_riscv_unzip_32, "ZiZi", "nc", "zbkb") |
| |
| // Zknd extension |
| TARGET_BUILTIN(__builtin_riscv_aes32dsi_32, "ZiZiZiIUc", "nc", "zknd") |
| TARGET_BUILTIN(__builtin_riscv_aes32dsmi_32, "ZiZiZiIUc", "nc", "zknd") |
| TARGET_BUILTIN(__builtin_riscv_aes64ds_64, "WiWiWi", "nc", "zknd,64bit") |
| TARGET_BUILTIN(__builtin_riscv_aes64dsm_64, "WiWiWi", "nc", "zknd,64bit") |
| TARGET_BUILTIN(__builtin_riscv_aes64im_64, "WiWi", "nc", "zknd,64bit") |
| |
| // Zknd & zkne |
| TARGET_BUILTIN(__builtin_riscv_aes64ks1i_64, "WiWiIUi", "nc", "zknd|zkne,64bit") |
| TARGET_BUILTIN(__builtin_riscv_aes64ks2_64, "WiWiWi", "nc", "zknd|zkne,64bit") |
| |
| // Zkne extension |
| TARGET_BUILTIN(__builtin_riscv_aes32esi_32, "ZiZiZiIUc", "nc", "zkne") |
| TARGET_BUILTIN(__builtin_riscv_aes32esmi_32, "ZiZiZiIUc", "nc", "zkne") |
| TARGET_BUILTIN(__builtin_riscv_aes64es_64, "WiWiWi", "nc", "zkne,64bit") |
| TARGET_BUILTIN(__builtin_riscv_aes64esm_64, "WiWiWi", "nc", "zkne,64bit") |
| |
| // Zknh extension |
| TARGET_BUILTIN(__builtin_riscv_sha256sig0, "LiLi", "nc", "zknh") |
| TARGET_BUILTIN(__builtin_riscv_sha256sig1, "LiLi", "nc", "zknh") |
| TARGET_BUILTIN(__builtin_riscv_sha256sum0, "LiLi", "nc", "zknh") |
| TARGET_BUILTIN(__builtin_riscv_sha256sum1, "LiLi", "nc", "zknh") |
| |
| TARGET_BUILTIN(__builtin_riscv_sha512sig0h_32, "ZiZiZi", "nc", "zknh") |
| TARGET_BUILTIN(__builtin_riscv_sha512sig0l_32, "ZiZiZi", "nc", "zknh") |
| TARGET_BUILTIN(__builtin_riscv_sha512sig1h_32, "ZiZiZi", "nc", "zknh") |
| TARGET_BUILTIN(__builtin_riscv_sha512sig1l_32, "ZiZiZi", "nc", "zknh") |
| TARGET_BUILTIN(__builtin_riscv_sha512sum0r_32, "ZiZiZi", "nc", "zknh") |
| TARGET_BUILTIN(__builtin_riscv_sha512sum1r_32, "ZiZiZi", "nc", "zknh") |
| TARGET_BUILTIN(__builtin_riscv_sha512sig0_64, "WiWi", "nc", "zknh,64bit") |
| TARGET_BUILTIN(__builtin_riscv_sha512sig1_64, "WiWi", "nc", "zknh,64bit") |
| TARGET_BUILTIN(__builtin_riscv_sha512sum0_64, "WiWi", "nc", "zknh,64bit") |
| TARGET_BUILTIN(__builtin_riscv_sha512sum1_64, "WiWi", "nc", "zknh,64bit") |
| |
| // Zksed extension |
| TARGET_BUILTIN(__builtin_riscv_sm4ed, "LiLiLiIUc", "nc", "zksed") |
| TARGET_BUILTIN(__builtin_riscv_sm4ks, "LiLiLiIUc", "nc", "zksed") |
| |
| // Zksh extension |
| TARGET_BUILTIN(__builtin_riscv_sm3p0, "LiLi", "nc", "zksh") |
| TARGET_BUILTIN(__builtin_riscv_sm3p1, "LiLi", "nc", "zksh") |
| |
| #undef BUILTIN |
| #undef TARGET_BUILTIN |