Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
14 | pmbaty | 1 | //==- BuiltinsRISCV.def - RISC-V Builtin function database -------*- C++ -*-==// |
2 | // |
||
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
||
4 | // See https://llvm.org/LICENSE.txt for license information. |
||
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
||
6 | // |
||
7 | //===----------------------------------------------------------------------===// |
||
8 | // |
||
9 | // This file defines the RISC-V-specific builtin function database. Users of |
||
10 | // this file must define the BUILTIN macro to make use of this information. |
||
11 | // |
||
12 | //===----------------------------------------------------------------------===// |
||
13 | |||
14 | #if defined(BUILTIN) && !defined(TARGET_BUILTIN) |
||
15 | # define TARGET_BUILTIN(ID, TYPE, ATTRS, FEATURE) BUILTIN(ID, TYPE, ATTRS) |
||
16 | #endif |
||
17 | |||
18 | // Zbb extension |
||
19 | TARGET_BUILTIN(__builtin_riscv_orc_b_32, "ZiZi", "nc", "zbb") |
||
20 | TARGET_BUILTIN(__builtin_riscv_orc_b_64, "WiWi", "nc", "zbb,64bit") |
||
21 | TARGET_BUILTIN(__builtin_riscv_clz_32, "ZiZi", "nc", "zbb") |
||
22 | TARGET_BUILTIN(__builtin_riscv_clz_64, "WiWi", "nc", "zbb,64bit") |
||
23 | TARGET_BUILTIN(__builtin_riscv_ctz_32, "ZiZi", "nc", "zbb") |
||
24 | TARGET_BUILTIN(__builtin_riscv_ctz_64, "WiWi", "nc", "zbb,64bit") |
||
25 | |||
26 | // Zbc or Zbkc extension |
||
27 | TARGET_BUILTIN(__builtin_riscv_clmul, "LiLiLi", "nc", "zbc|zbkc") |
||
28 | TARGET_BUILTIN(__builtin_riscv_clmulh, "LiLiLi", "nc", "zbc|zbkc") |
||
29 | TARGET_BUILTIN(__builtin_riscv_clmulr, "LiLiLi", "nc", "zbc") |
||
30 | |||
31 | // Zbkx |
||
32 | TARGET_BUILTIN(__builtin_riscv_xperm4, "LiLiLi", "nc", "zbkx") |
||
33 | TARGET_BUILTIN(__builtin_riscv_xperm8, "LiLiLi", "nc", "zbkx") |
||
34 | |||
35 | // Zbkb extension |
||
36 | TARGET_BUILTIN(__builtin_riscv_brev8, "LiLi", "nc", "zbkb") |
||
37 | TARGET_BUILTIN(__builtin_riscv_zip_32, "ZiZi", "nc", "zbkb,32bit") |
||
38 | TARGET_BUILTIN(__builtin_riscv_unzip_32, "ZiZi", "nc", "zbkb,32bit") |
||
39 | |||
40 | // Zknd extension |
||
41 | TARGET_BUILTIN(__builtin_riscv_aes32dsi_32, "ZiZiZiIUc", "nc", "zknd,32bit") |
||
42 | TARGET_BUILTIN(__builtin_riscv_aes32dsmi_32, "ZiZiZiIUc", "nc", "zknd,32bit") |
||
43 | TARGET_BUILTIN(__builtin_riscv_aes64ds_64, "WiWiWi", "nc", "zknd,64bit") |
||
44 | TARGET_BUILTIN(__builtin_riscv_aes64dsm_64, "WiWiWi", "nc", "zknd,64bit") |
||
45 | TARGET_BUILTIN(__builtin_riscv_aes64im_64, "WiWi", "nc", "zknd,64bit") |
||
46 | |||
47 | // Zknd & zkne |
||
48 | TARGET_BUILTIN(__builtin_riscv_aes64ks1i_64, "WiWiIUi", "nc", "zknd|zkne,64bit") |
||
49 | TARGET_BUILTIN(__builtin_riscv_aes64ks2_64, "WiWiWi", "nc", "zknd|zkne,64bit") |
||
50 | |||
51 | // Zkne extension |
||
52 | TARGET_BUILTIN(__builtin_riscv_aes32esi_32, "ZiZiZiIUc", "nc", "zkne,32bit") |
||
53 | TARGET_BUILTIN(__builtin_riscv_aes32esmi_32, "ZiZiZiIUc", "nc", "zkne,32bit") |
||
54 | TARGET_BUILTIN(__builtin_riscv_aes64es_64, "WiWiWi", "nc", "zkne,64bit") |
||
55 | TARGET_BUILTIN(__builtin_riscv_aes64esm_64, "WiWiWi", "nc", "zkne,64bit") |
||
56 | |||
57 | // Zknh extension |
||
58 | TARGET_BUILTIN(__builtin_riscv_sha256sig0, "LiLi", "nc", "zknh") |
||
59 | TARGET_BUILTIN(__builtin_riscv_sha256sig1, "LiLi", "nc", "zknh") |
||
60 | TARGET_BUILTIN(__builtin_riscv_sha256sum0, "LiLi", "nc", "zknh") |
||
61 | TARGET_BUILTIN(__builtin_riscv_sha256sum1, "LiLi", "nc", "zknh") |
||
62 | |||
63 | TARGET_BUILTIN(__builtin_riscv_sha512sig0h_32, "ZiZiZi", "nc", "zknh,32bit") |
||
64 | TARGET_BUILTIN(__builtin_riscv_sha512sig0l_32, "ZiZiZi", "nc", "zknh,32bit") |
||
65 | TARGET_BUILTIN(__builtin_riscv_sha512sig1h_32, "ZiZiZi", "nc", "zknh,32bit") |
||
66 | TARGET_BUILTIN(__builtin_riscv_sha512sig1l_32, "ZiZiZi", "nc", "zknh,32bit") |
||
67 | TARGET_BUILTIN(__builtin_riscv_sha512sum0r_32, "ZiZiZi", "nc", "zknh,32bit") |
||
68 | TARGET_BUILTIN(__builtin_riscv_sha512sum1r_32, "ZiZiZi", "nc", "zknh,32bit") |
||
69 | TARGET_BUILTIN(__builtin_riscv_sha512sig0_64, "WiWi", "nc", "zknh,64bit") |
||
70 | TARGET_BUILTIN(__builtin_riscv_sha512sig1_64, "WiWi", "nc", "zknh,64bit") |
||
71 | TARGET_BUILTIN(__builtin_riscv_sha512sum0_64, "WiWi", "nc", "zknh,64bit") |
||
72 | TARGET_BUILTIN(__builtin_riscv_sha512sum1_64, "WiWi", "nc", "zknh,64bit") |
||
73 | |||
74 | // Zksed extension |
||
75 | TARGET_BUILTIN(__builtin_riscv_sm4ed, "LiLiLiIUc", "nc", "zksed") |
||
76 | TARGET_BUILTIN(__builtin_riscv_sm4ks, "LiLiLiIUc", "nc", "zksed") |
||
77 | |||
78 | // Zksh extension |
||
79 | TARGET_BUILTIN(__builtin_riscv_sm3p0, "LiLi", "nc", "zksh") |
||
80 | TARGET_BUILTIN(__builtin_riscv_sm3p1, "LiLi", "nc", "zksh") |
||
81 | |||
82 | #undef BUILTIN |
||
83 | #undef TARGET_BUILTIN |