Changeset View
Changeset View
Standalone View
Standalone View
clang/include/clang/Basic/BuiltinsRISCV.def
Show All 12 Lines | |||||
#if defined(BUILTIN) && !defined(TARGET_BUILTIN) | #if defined(BUILTIN) && !defined(TARGET_BUILTIN) | ||||
# define TARGET_BUILTIN(ID, TYPE, ATTRS, FEATURE) BUILTIN(ID, TYPE, ATTRS) | # define TARGET_BUILTIN(ID, TYPE, ATTRS, FEATURE) BUILTIN(ID, TYPE, ATTRS) | ||||
#endif | #endif | ||||
// Zbb extension | // Zbb extension | ||||
TARGET_BUILTIN(__builtin_riscv_orc_b_32, "ZiZi", "nc", "zbb") | TARGET_BUILTIN(__builtin_riscv_orc_b_32, "ZiZi", "nc", "zbb") | ||||
TARGET_BUILTIN(__builtin_riscv_orc_b_64, "WiWi", "nc", "zbb,64bit") | TARGET_BUILTIN(__builtin_riscv_orc_b_64, "WiWi", "nc", "zbb,64bit") | ||||
TARGET_BUILTIN(__builtin_riscv_clz_32, "ZiZi", "nc", "zbb") | TARGET_BUILTIN(__builtin_riscv_clz_32, "ZiZi", "nc", "zbb|experimental-zbpbo") | ||||
craig.topper: What's preventing __builtin_riscv_clz_32 from being used on rv64 with Zbpbo? I think you need… | |||||
TARGET_BUILTIN(__builtin_riscv_clz_64, "WiWi", "nc", "zbb,64bit") | TARGET_BUILTIN(__builtin_riscv_clz_64, "WiWi", "nc", "zbb,64bit") | ||||
TARGET_BUILTIN(__builtin_riscv_ctz_32, "ZiZi", "nc", "zbb") | TARGET_BUILTIN(__builtin_riscv_ctz_32, "ZiZi", "nc", "zbb") | ||||
TARGET_BUILTIN(__builtin_riscv_ctz_64, "WiWi", "nc", "zbb,64bit") | TARGET_BUILTIN(__builtin_riscv_ctz_64, "WiWi", "nc", "zbb,64bit") | ||||
// Zbc or Zbkc extension | // Zbc or Zbkc extension | ||||
TARGET_BUILTIN(__builtin_riscv_clmul, "LiLiLi", "nc", "zbc|zbkc") | TARGET_BUILTIN(__builtin_riscv_clmul, "LiLiLi", "nc", "zbc|zbkc") | ||||
TARGET_BUILTIN(__builtin_riscv_clmulh, "LiLiLi", "nc", "zbc|zbkc") | TARGET_BUILTIN(__builtin_riscv_clmulh, "LiLiLi", "nc", "zbc|zbkc") | ||||
TARGET_BUILTIN(__builtin_riscv_clmulr, "LiLiLi", "nc", "zbc") | TARGET_BUILTIN(__builtin_riscv_clmulr, "LiLiLi", "nc", "zbc") | ||||
Show All 11 Lines | |||||
TARGET_BUILTIN(__builtin_riscv_bdecompress_64, "WiWiWi", "nc", | TARGET_BUILTIN(__builtin_riscv_bdecompress_64, "WiWiWi", "nc", | ||||
"experimental-zbe,64bit") | "experimental-zbe,64bit") | ||||
// Zbf extension | // Zbf extension | ||||
TARGET_BUILTIN(__builtin_riscv_bfp_32, "ZiZiZi", "nc", "experimental-zbf") | TARGET_BUILTIN(__builtin_riscv_bfp_32, "ZiZiZi", "nc", "experimental-zbf") | ||||
TARGET_BUILTIN(__builtin_riscv_bfp_64, "WiWiWi", "nc", "experimental-zbf,64bit") | TARGET_BUILTIN(__builtin_riscv_bfp_64, "WiWiWi", "nc", "experimental-zbf,64bit") | ||||
// Zbp extension | // Zbp extension | ||||
TARGET_BUILTIN(__builtin_riscv_grev_32, "ZiZiZi", "nc", "experimental-zbp") | TARGET_BUILTIN(__builtin_riscv_grev_32, "ZiZiZi", "nc", | ||||
TARGET_BUILTIN(__builtin_riscv_grev_64, "WiWiWi", "nc", "experimental-zbp,64bit") | "experimental-zbp|experimental-zbpbo") | ||||
TARGET_BUILTIN(__builtin_riscv_grev_64, "WiWiWi", "nc", | |||||
"experimental-zbp|experimental-zbpbo,64bit") | |||||
TARGET_BUILTIN(__builtin_riscv_gorc_32, "ZiZiZi", "nc", "experimental-zbp") | 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_gorc_64, "WiWiWi", "nc", "experimental-zbp,64bit") | ||||
TARGET_BUILTIN(__builtin_riscv_shfl_32, "ZiZiZi", "nc", "experimental-zbp") | 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_shfl_64, "WiWiWi", "nc", "experimental-zbp,64bit") | ||||
TARGET_BUILTIN(__builtin_riscv_unshfl_32, "ZiZiZi", "nc", "experimental-zbp") | 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_unshfl_64, "WiWiWi", "nc", "experimental-zbp,64bit") | ||||
TARGET_BUILTIN(__builtin_riscv_xperm_n, "LiLiLi", "nc", "experimental-zbp") | 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_b, "LiLiLi", "nc", "experimental-zbp") | ||||
TARGET_BUILTIN(__builtin_riscv_xperm_h, "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") | TARGET_BUILTIN(__builtin_riscv_xperm_w, "WiWiWi", "nc", "experimental-zbp,64bit") | ||||
// Zbr extension | // Zbr extension | ||||
TARGET_BUILTIN(__builtin_riscv_crc32_b, "LiLi", "nc", "experimental-zbr") | 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_h, "LiLi", "nc", "experimental-zbr") | ||||
TARGET_BUILTIN(__builtin_riscv_crc32_w, "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_b, "LiLi", "nc", "experimental-zbr") | ||||
TARGET_BUILTIN(__builtin_riscv_crc32c_h, "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_crc32c_w, "LiLi", "nc", "experimental-zbr") | ||||
TARGET_BUILTIN(__builtin_riscv_crc32_d, "LiLi", "nc", "experimental-zbr,64bit") | TARGET_BUILTIN(__builtin_riscv_crc32_d, "LiLi", "nc", "experimental-zbr,64bit") | ||||
TARGET_BUILTIN(__builtin_riscv_crc32c_d, "LiLi", "nc", "experimental-zbr,64bit") | TARGET_BUILTIN(__builtin_riscv_crc32c_d, "LiLi", "nc", "experimental-zbr,64bit") | ||||
// Zbt extension | // Zbt extension | ||||
TARGET_BUILTIN(__builtin_riscv_fsl_32, "LiLiLiLi", "nc", "experimental-zbt") | TARGET_BUILTIN(__builtin_riscv_fsl_32, "LiLiLiLi", "nc", "experimental-zbt") | ||||
TARGET_BUILTIN(__builtin_riscv_fsr_32, "LiLiLiLi", "nc", "experimental-zbt") | TARGET_BUILTIN(__builtin_riscv_fsr_32, "LiLiLiLi", "nc", | ||||
"experimental-zbt|experimental-zbpbo") | |||||
TARGET_BUILTIN(__builtin_riscv_fsl_64, "WiWiWiWi", "nc", "experimental-zbt,64bit") | TARGET_BUILTIN(__builtin_riscv_fsl_64, "WiWiWiWi", "nc", "experimental-zbt,64bit") | ||||
TARGET_BUILTIN(__builtin_riscv_fsr_64, "WiWiWiWi", "nc", "experimental-zbt,64bit") | TARGET_BUILTIN(__builtin_riscv_fsr_64, "WiWiWiWi", "nc", | ||||
"experimental-zbt|experimental-zbpbo,64bit") | |||||
// Zbkb extension | // Zbkb extension | ||||
TARGET_BUILTIN(__builtin_riscv_brev8, "LiLi", "nc", "zbkb") | TARGET_BUILTIN(__builtin_riscv_brev8, "LiLi", "nc", "zbkb") | ||||
TARGET_BUILTIN(__builtin_riscv_zip_32, "ZiZi", "nc", "zbkb") | TARGET_BUILTIN(__builtin_riscv_zip_32, "ZiZi", "nc", "zbkb") | ||||
TARGET_BUILTIN(__builtin_riscv_unzip_32, "ZiZi", "nc", "zbkb") | TARGET_BUILTIN(__builtin_riscv_unzip_32, "ZiZi", "nc", "zbkb") | ||||
// Zknd extension | // Zknd extension | ||||
TARGET_BUILTIN(__builtin_riscv_aes32dsi_32, "ZiZiZiIUc", "nc", "zknd") | TARGET_BUILTIN(__builtin_riscv_aes32dsi_32, "ZiZiZiIUc", "nc", "zknd") | ||||
▲ Show 20 Lines • Show All 42 Lines • Show Last 20 Lines |
What's preventing __builtin_riscv_clz_32 from being used on rv64 with Zbpbo? I think you need to add it to isRISCV32Builtin in SemaChecking.cpp but you'll also need to check that Zbb isn't enabled.