1 | //============------------ BuiltinsLoongArchBase.def -------------*- 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 LoongArch-specific basic builtin function database. |
10 | // Users of this file must define the BUILTIN macro to make use of this |
11 | // information. |
12 | // |
13 | //===----------------------------------------------------------------------===// |
14 | |
15 | TARGET_BUILTIN(__builtin_loongarch_cacop_d, "vWiUWiWi" , "nc" , "64bit" ) |
16 | TARGET_BUILTIN(__builtin_loongarch_cacop_w, "viUii" , "nc" , "32bit" ) |
17 | TARGET_BUILTIN(__builtin_loongarch_dbar, "vIUi" , "nc" , "" ) |
18 | TARGET_BUILTIN(__builtin_loongarch_ibar, "vIUi" , "nc" , "" ) |
19 | TARGET_BUILTIN(__builtin_loongarch_movfcsr2gr, "UiIUi" , "nc" , "f" ) |
20 | TARGET_BUILTIN(__builtin_loongarch_movgr2fcsr, "vIUiUi" , "nc" , "f" ) |
21 | TARGET_BUILTIN(__builtin_loongarch_break, "vIUi" , "nc" , "" ) |
22 | TARGET_BUILTIN(__builtin_loongarch_syscall, "vIUi" , "nc" , "" ) |
23 | TARGET_BUILTIN(__builtin_loongarch_cpucfg, "UiUi" , "nc" , "" ) |
24 | TARGET_BUILTIN(__builtin_loongarch_asrtle_d, "vWiWi" , "nc" , "64bit" ) |
25 | TARGET_BUILTIN(__builtin_loongarch_asrtgt_d, "vWiWi" , "nc" , "64bit" ) |
26 | |
27 | TARGET_BUILTIN(__builtin_loongarch_crc_w_b_w, "iii" , "nc" , "64bit" ) |
28 | TARGET_BUILTIN(__builtin_loongarch_crc_w_h_w, "iii" , "nc" , "64bit" ) |
29 | TARGET_BUILTIN(__builtin_loongarch_crc_w_w_w, "iii" , "nc" , "64bit" ) |
30 | TARGET_BUILTIN(__builtin_loongarch_crc_w_d_w, "iWii" , "nc" , "64bit" ) |
31 | TARGET_BUILTIN(__builtin_loongarch_crcc_w_b_w, "iii" , "nc" , "64bit" ) |
32 | TARGET_BUILTIN(__builtin_loongarch_crcc_w_h_w, "iii" , "nc" , "64bit" ) |
33 | TARGET_BUILTIN(__builtin_loongarch_crcc_w_w_w, "iii" , "nc" , "64bit" ) |
34 | TARGET_BUILTIN(__builtin_loongarch_crcc_w_d_w, "iWii" , "nc" , "64bit" ) |
35 | |
36 | TARGET_BUILTIN(__builtin_loongarch_csrrd_w, "UiIUi" , "nc" , "" ) |
37 | TARGET_BUILTIN(__builtin_loongarch_csrrd_d, "UWiIUi" , "nc" , "64bit" ) |
38 | TARGET_BUILTIN(__builtin_loongarch_csrwr_w, "UiUiIUi" , "nc" , "" ) |
39 | TARGET_BUILTIN(__builtin_loongarch_csrwr_d, "UWiUWiIUi" , "nc" , "64bit" ) |
40 | TARGET_BUILTIN(__builtin_loongarch_csrxchg_w, "UiUiUiIUi" , "nc" , "" ) |
41 | TARGET_BUILTIN(__builtin_loongarch_csrxchg_d, "UWiUWiUWiIUi" , "nc" , "64bit" ) |
42 | |
43 | TARGET_BUILTIN(__builtin_loongarch_iocsrrd_b, "UiUi" , "nc" , "" ) |
44 | TARGET_BUILTIN(__builtin_loongarch_iocsrrd_h, "UiUi" , "nc" , "" ) |
45 | TARGET_BUILTIN(__builtin_loongarch_iocsrrd_w, "UiUi" , "nc" , "" ) |
46 | TARGET_BUILTIN(__builtin_loongarch_iocsrrd_d, "UWiUi" , "nc" , "64bit" ) |
47 | TARGET_BUILTIN(__builtin_loongarch_iocsrwr_b, "vUiUi" , "nc" , "" ) |
48 | TARGET_BUILTIN(__builtin_loongarch_iocsrwr_h, "vUiUi" , "nc" , "" ) |
49 | TARGET_BUILTIN(__builtin_loongarch_iocsrwr_w, "vUiUi" , "nc" , "" ) |
50 | TARGET_BUILTIN(__builtin_loongarch_iocsrwr_d, "vUWiUi" , "nc" , "64bit" ) |
51 | |
52 | TARGET_BUILTIN(__builtin_loongarch_lddir_d, "WiWiIUWi" , "nc" , "64bit" ) |
53 | TARGET_BUILTIN(__builtin_loongarch_ldpte_d, "vWiIUWi" , "nc" , "64bit" ) |
54 | |
55 | TARGET_BUILTIN(__builtin_loongarch_frecipe_s, "ff" , "nc" , "f,frecipe" ) |
56 | TARGET_BUILTIN(__builtin_loongarch_frecipe_d, "dd" , "nc" , "d,frecipe" ) |
57 | TARGET_BUILTIN(__builtin_loongarch_frsqrte_s, "ff" , "nc" , "f,frecipe" ) |
58 | TARGET_BUILTIN(__builtin_loongarch_frsqrte_d, "dd" , "nc" , "d,frecipe" ) |
59 | |