]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/tools/clang/include/clang/Basic/BuiltinsMips.def
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / llvm / tools / clang / include / clang / Basic / BuiltinsMips.def
1 //===-- BuiltinsMips.def - Mips Builtin function database --------*- C++ -*-==//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file defines the MIPS-specific builtin function database. Users of
11 // this file must define the BUILTIN macro to make use of this information.
12 //
13 //===----------------------------------------------------------------------===//
14
15 // The format of this database matches clang/Basic/Builtins.def.
16
17 // MIPS DSP Rev 1
18
19 // Add/subtract with optional saturation
20 BUILTIN(__builtin_mips_addu_qb, "V4ScV4ScV4Sc", "n")
21 BUILTIN(__builtin_mips_addu_s_qb, "V4ScV4ScV4Sc", "n")
22 BUILTIN(__builtin_mips_subu_qb, "V4ScV4ScV4Sc", "n")
23 BUILTIN(__builtin_mips_subu_s_qb, "V4ScV4ScV4Sc", "n")
24
25 BUILTIN(__builtin_mips_addq_ph, "V2sV2sV2s", "n")
26 BUILTIN(__builtin_mips_addq_s_ph, "V2sV2sV2s", "n")
27 BUILTIN(__builtin_mips_subq_ph, "V2sV2sV2s", "n")
28 BUILTIN(__builtin_mips_subq_s_ph, "V2sV2sV2s", "n")
29
30 BUILTIN(__builtin_mips_madd, "LLiLLiii", "nc")
31 BUILTIN(__builtin_mips_maddu, "LLiLLiUiUi", "nc")
32 BUILTIN(__builtin_mips_msub, "LLiLLiii", "nc")
33 BUILTIN(__builtin_mips_msubu, "LLiLLiUiUi", "nc")
34
35 BUILTIN(__builtin_mips_addq_s_w, "iii", "n")
36 BUILTIN(__builtin_mips_subq_s_w, "iii", "n")
37
38 BUILTIN(__builtin_mips_addsc, "iii", "n")
39 BUILTIN(__builtin_mips_addwc, "iii", "n")
40
41 BUILTIN(__builtin_mips_modsub, "iii", "nc")
42
43 BUILTIN(__builtin_mips_raddu_w_qb, "iV4Sc", "nc")
44
45 BUILTIN(__builtin_mips_absq_s_ph, "V2sV2s", "n")
46 BUILTIN(__builtin_mips_absq_s_w, "ii", "n")
47
48 BUILTIN(__builtin_mips_precrq_qb_ph, "V4ScV2sV2s", "nc")
49 BUILTIN(__builtin_mips_precrqu_s_qb_ph, "V4ScV2sV2s", "n")
50 BUILTIN(__builtin_mips_precrq_ph_w, "V2sii", "nc")
51 BUILTIN(__builtin_mips_precrq_rs_ph_w, "V2sii", "n")
52 BUILTIN(__builtin_mips_preceq_w_phl, "iV2s", "nc")
53 BUILTIN(__builtin_mips_preceq_w_phr, "iV2s", "nc")
54 BUILTIN(__builtin_mips_precequ_ph_qbl, "V2sV4Sc", "nc")
55 BUILTIN(__builtin_mips_precequ_ph_qbr, "V2sV4Sc", "nc")
56 BUILTIN(__builtin_mips_precequ_ph_qbla, "V2sV4Sc", "nc")
57 BUILTIN(__builtin_mips_precequ_ph_qbra, "V2sV4Sc", "nc")
58 BUILTIN(__builtin_mips_preceu_ph_qbl, "V2sV4Sc", "nc")
59 BUILTIN(__builtin_mips_preceu_ph_qbr, "V2sV4Sc", "nc")
60 BUILTIN(__builtin_mips_preceu_ph_qbla, "V2sV4Sc", "nc")
61 BUILTIN(__builtin_mips_preceu_ph_qbra, "V2sV4Sc", "nc")
62
63 BUILTIN(__builtin_mips_shll_qb, "V4ScV4Sci", "n")
64 BUILTIN(__builtin_mips_shrl_qb, "V4ScV4Sci", "nc")
65 BUILTIN(__builtin_mips_shll_ph, "V2sV2si", "n")
66 BUILTIN(__builtin_mips_shll_s_ph, "V2sV2si", "n")
67 BUILTIN(__builtin_mips_shra_ph, "V2sV2si", "nc")
68 BUILTIN(__builtin_mips_shra_r_ph, "V2sV2si", "nc")
69 BUILTIN(__builtin_mips_shll_s_w, "iii", "n")
70 BUILTIN(__builtin_mips_shra_r_w, "iii", "nc")
71 BUILTIN(__builtin_mips_shilo, "LLiLLii", "nc")
72
73 BUILTIN(__builtin_mips_muleu_s_ph_qbl, "V2sV4ScV2s", "n")
74 BUILTIN(__builtin_mips_muleu_s_ph_qbr, "V2sV4ScV2s", "n")
75 BUILTIN(__builtin_mips_mulq_rs_ph, "V2sV2sV2s", "n")
76 BUILTIN(__builtin_mips_muleq_s_w_phl, "iV2sV2s", "n")
77 BUILTIN(__builtin_mips_muleq_s_w_phr, "iV2sV2s", "n")
78 BUILTIN(__builtin_mips_mulsaq_s_w_ph, "LLiLLiV2sV2s", "n")
79 BUILTIN(__builtin_mips_maq_s_w_phl, "LLiLLiV2sV2s", "n")
80 BUILTIN(__builtin_mips_maq_s_w_phr, "LLiLLiV2sV2s", "n")
81 BUILTIN(__builtin_mips_maq_sa_w_phl, "LLiLLiV2sV2s", "n")
82 BUILTIN(__builtin_mips_maq_sa_w_phr, "LLiLLiV2sV2s", "n")
83 BUILTIN(__builtin_mips_mult, "LLiii", "nc")
84 BUILTIN(__builtin_mips_multu, "LLiUiUi", "nc")
85
86 BUILTIN(__builtin_mips_dpau_h_qbl, "LLiLLiV4ScV4Sc", "nc")
87 BUILTIN(__builtin_mips_dpau_h_qbr, "LLiLLiV4ScV4Sc", "nc")
88 BUILTIN(__builtin_mips_dpsu_h_qbl, "LLiLLiV4ScV4Sc", "nc")
89 BUILTIN(__builtin_mips_dpsu_h_qbr, "LLiLLiV4ScV4Sc", "nc")
90 BUILTIN(__builtin_mips_dpaq_s_w_ph, "LLiLLiV2sV2s", "n")
91 BUILTIN(__builtin_mips_dpsq_s_w_ph, "LLiLLiV2sV2s", "n")
92 BUILTIN(__builtin_mips_dpaq_sa_l_w, "LLiLLiii", "n")
93 BUILTIN(__builtin_mips_dpsq_sa_l_w, "LLiLLiii", "n")
94
95 BUILTIN(__builtin_mips_cmpu_eq_qb, "vV4ScV4Sc", "n")
96 BUILTIN(__builtin_mips_cmpu_lt_qb, "vV4ScV4Sc", "n")
97 BUILTIN(__builtin_mips_cmpu_le_qb, "vV4ScV4Sc", "n")
98 BUILTIN(__builtin_mips_cmpgu_eq_qb, "iV4ScV4Sc", "n")
99 BUILTIN(__builtin_mips_cmpgu_lt_qb, "iV4ScV4Sc", "n")
100 BUILTIN(__builtin_mips_cmpgu_le_qb, "iV4ScV4Sc", "n")
101 BUILTIN(__builtin_mips_cmp_eq_ph, "vV2sV2s", "n")
102 BUILTIN(__builtin_mips_cmp_lt_ph, "vV2sV2s", "n")
103 BUILTIN(__builtin_mips_cmp_le_ph, "vV2sV2s", "n")
104
105 BUILTIN(__builtin_mips_extr_s_h, "iLLii", "n")
106 BUILTIN(__builtin_mips_extr_w, "iLLii", "n")
107 BUILTIN(__builtin_mips_extr_rs_w, "iLLii", "n")
108 BUILTIN(__builtin_mips_extr_r_w, "iLLii", "n")
109 BUILTIN(__builtin_mips_extp, "iLLii", "n")
110 BUILTIN(__builtin_mips_extpdp, "iLLii", "n")
111
112 BUILTIN(__builtin_mips_wrdsp, "viIi", "n")
113 BUILTIN(__builtin_mips_rddsp, "iIi", "n")
114 BUILTIN(__builtin_mips_insv, "iii", "n")
115 BUILTIN(__builtin_mips_bitrev, "ii", "nc")
116 BUILTIN(__builtin_mips_packrl_ph, "V2sV2sV2s", "nc")
117 BUILTIN(__builtin_mips_repl_qb, "V4Sci", "nc")
118 BUILTIN(__builtin_mips_repl_ph, "V2si", "nc")
119 BUILTIN(__builtin_mips_pick_qb, "V4ScV4ScV4Sc", "n")
120 BUILTIN(__builtin_mips_pick_ph, "V2sV2sV2s", "n")
121 BUILTIN(__builtin_mips_mthlip, "LLiLLii", "n")
122 BUILTIN(__builtin_mips_bposge32, "i", "n")
123 BUILTIN(__builtin_mips_lbux, "iv*i", "n")
124 BUILTIN(__builtin_mips_lhx, "iv*i", "n")
125 BUILTIN(__builtin_mips_lwx, "iv*i", "n")
126
127 // MIPS DSP Rev 2
128
129 BUILTIN(__builtin_mips_absq_s_qb, "V4ScV4Sc", "n")
130
131 BUILTIN(__builtin_mips_addqh_ph, "V2sV2sV2s", "nc")
132 BUILTIN(__builtin_mips_addqh_r_ph, "V2sV2sV2s", "nc")
133 BUILTIN(__builtin_mips_addqh_w, "iii", "nc")
134 BUILTIN(__builtin_mips_addqh_r_w, "iii", "nc")
135
136 BUILTIN(__builtin_mips_addu_ph, "V2sV2sV2s", "n")
137 BUILTIN(__builtin_mips_addu_s_ph, "V2sV2sV2s", "n")
138
139 BUILTIN(__builtin_mips_adduh_qb, "V4ScV4ScV4Sc", "nc")
140 BUILTIN(__builtin_mips_adduh_r_qb, "V4ScV4ScV4Sc", "nc")
141
142 BUILTIN(__builtin_mips_append, "iiiIi", "nc")
143 BUILTIN(__builtin_mips_balign, "iiiIi", "nc")
144
145 BUILTIN(__builtin_mips_cmpgdu_eq_qb, "iV4ScV4Sc", "n")
146 BUILTIN(__builtin_mips_cmpgdu_lt_qb, "iV4ScV4Sc", "n")
147 BUILTIN(__builtin_mips_cmpgdu_le_qb, "iV4ScV4Sc", "n")
148
149 BUILTIN(__builtin_mips_dpa_w_ph, "LLiLLiV2sV2s", "nc")
150 BUILTIN(__builtin_mips_dps_w_ph, "LLiLLiV2sV2s", "nc")
151
152 BUILTIN(__builtin_mips_dpaqx_s_w_ph, "LLiLLiV2sV2s", "n")
153 BUILTIN(__builtin_mips_dpaqx_sa_w_ph, "LLiLLiV2sV2s", "n")
154 BUILTIN(__builtin_mips_dpax_w_ph, "LLiLLiV2sV2s", "nc")
155 BUILTIN(__builtin_mips_dpsx_w_ph, "LLiLLiV2sV2s", "nc")
156 BUILTIN(__builtin_mips_dpsqx_s_w_ph, "LLiLLiV2sV2s", "n")
157 BUILTIN(__builtin_mips_dpsqx_sa_w_ph, "LLiLLiV2sV2s", "n")
158
159 BUILTIN(__builtin_mips_mul_ph, "V2sV2sV2s", "n")
160 BUILTIN(__builtin_mips_mul_s_ph, "V2sV2sV2s", "n")
161
162 BUILTIN(__builtin_mips_mulq_rs_w, "iii", "n")
163 BUILTIN(__builtin_mips_mulq_s_ph, "V2sV2sV2s", "n")
164 BUILTIN(__builtin_mips_mulq_s_w, "iii", "n")
165 BUILTIN(__builtin_mips_mulsa_w_ph, "LLiLLiV2sV2s", "nc")
166
167 BUILTIN(__builtin_mips_precr_qb_ph, "V4ScV2sV2s", "n")
168 BUILTIN(__builtin_mips_precr_sra_ph_w, "V2siiIi", "nc")
169 BUILTIN(__builtin_mips_precr_sra_r_ph_w, "V2siiIi", "nc")
170
171 BUILTIN(__builtin_mips_prepend, "iiiIi", "nc")
172
173 BUILTIN(__builtin_mips_shra_qb, "V4ScV4Sci", "nc")
174 BUILTIN(__builtin_mips_shra_r_qb, "V4ScV4Sci", "nc")
175 BUILTIN(__builtin_mips_shrl_ph, "V2sV2si", "nc")
176
177 BUILTIN(__builtin_mips_subqh_ph, "V2sV2sV2s", "nc")
178 BUILTIN(__builtin_mips_subqh_r_ph, "V2sV2sV2s", "nc")
179 BUILTIN(__builtin_mips_subqh_w, "iii", "nc")
180 BUILTIN(__builtin_mips_subqh_r_w, "iii", "nc")
181
182 BUILTIN(__builtin_mips_subu_ph, "V2sV2sV2s", "n")
183 BUILTIN(__builtin_mips_subu_s_ph, "V2sV2sV2s", "n")
184
185 BUILTIN(__builtin_mips_subuh_qb, "V4ScV4ScV4Sc", "nc")
186 BUILTIN(__builtin_mips_subuh_r_qb, "V4ScV4ScV4Sc", "nc")
187
188 #undef BUILTIN