BuiltinsMips.def revision 243830
1188808Sgonzo//===-- BuiltinsMips.def - Mips Builtin function database --------*- C++ -*-==//
2188808Sgonzo//
3188808Sgonzo//                     The LLVM Compiler Infrastructure
4188808Sgonzo//
5188808Sgonzo// This file is distributed under the University of Illinois Open Source
6188808Sgonzo// License. See LICENSE.TXT for details.
7188808Sgonzo//
8188808Sgonzo//===----------------------------------------------------------------------===//
9188808Sgonzo//
10188808Sgonzo// This file defines the MIPS-specific builtin function database. Users of
11188808Sgonzo// this file must define the BUILTIN macro to make use of this information.
12188808Sgonzo//
13188808Sgonzo//===----------------------------------------------------------------------===//
14188808Sgonzo
15188808Sgonzo// The format of this database matches clang/Basic/Builtins.def.
16188808Sgonzo
17188808Sgonzo// MIPS DSP Rev 1
18188808Sgonzo
19188808Sgonzo// Add/subtract with optional saturation
20188808SgonzoBUILTIN(__builtin_mips_addu_qb, "V4ScV4ScV4Sc", "n")
21188808SgonzoBUILTIN(__builtin_mips_addu_s_qb, "V4ScV4ScV4Sc", "n")
22188808SgonzoBUILTIN(__builtin_mips_subu_qb, "V4ScV4ScV4Sc", "n")
23188808SgonzoBUILTIN(__builtin_mips_subu_s_qb, "V4ScV4ScV4Sc", "n")
24188808Sgonzo
25188808SgonzoBUILTIN(__builtin_mips_addq_ph, "V2sV2sV2s", "n")
26209802SadrianBUILTIN(__builtin_mips_addq_s_ph, "V2sV2sV2s", "n")
27209802SadrianBUILTIN(__builtin_mips_subq_ph, "V2sV2sV2s", "n")
28188808SgonzoBUILTIN(__builtin_mips_subq_s_ph, "V2sV2sV2s", "n")
29188808Sgonzo
30188808SgonzoBUILTIN(__builtin_mips_madd, "LLiLLiii", "nc")
31188808SgonzoBUILTIN(__builtin_mips_maddu, "LLiLLiUiUi", "nc")
32188808SgonzoBUILTIN(__builtin_mips_msub, "LLiLLiii", "nc")
33199234SgonzoBUILTIN(__builtin_mips_msubu, "LLiLLiUiUi", "nc")
34188808Sgonzo
35188808SgonzoBUILTIN(__builtin_mips_addq_s_w, "iii", "n")
36188808SgonzoBUILTIN(__builtin_mips_subq_s_w, "iii", "n")
37188808Sgonzo
38188808SgonzoBUILTIN(__builtin_mips_addsc, "iii", "n")
39188808SgonzoBUILTIN(__builtin_mips_addwc, "iii", "n")
40188808Sgonzo
41188808SgonzoBUILTIN(__builtin_mips_modsub, "iii", "nc")
42188808Sgonzo
43188808SgonzoBUILTIN(__builtin_mips_raddu_w_qb, "iV4Sc", "nc")
44188808Sgonzo
45188808SgonzoBUILTIN(__builtin_mips_absq_s_ph, "V2sV2s", "n")
46188808SgonzoBUILTIN(__builtin_mips_absq_s_w, "ii", "n")
47188808Sgonzo
48188808SgonzoBUILTIN(__builtin_mips_precrq_qb_ph, "V4ScV2sV2s", "nc")
49188808SgonzoBUILTIN(__builtin_mips_precrqu_s_qb_ph, "V4ScV2sV2s", "n")
50188808SgonzoBUILTIN(__builtin_mips_precrq_ph_w, "V2sii", "nc")
51188808SgonzoBUILTIN(__builtin_mips_precrq_rs_ph_w, "V2sii", "n")
52188808SgonzoBUILTIN(__builtin_mips_preceq_w_phl, "iV2s", "nc")
53188808SgonzoBUILTIN(__builtin_mips_preceq_w_phr, "iV2s", "nc")
54188808SgonzoBUILTIN(__builtin_mips_precequ_ph_qbl, "V2sV4Sc", "nc")
55188808SgonzoBUILTIN(__builtin_mips_precequ_ph_qbr, "V2sV4Sc", "nc")
56188808SgonzoBUILTIN(__builtin_mips_precequ_ph_qbla, "V2sV4Sc", "nc")
57188808SgonzoBUILTIN(__builtin_mips_precequ_ph_qbra, "V2sV4Sc", "nc")
58188808SgonzoBUILTIN(__builtin_mips_preceu_ph_qbl, "V2sV4Sc", "nc")
59188808SgonzoBUILTIN(__builtin_mips_preceu_ph_qbr, "V2sV4Sc", "nc")
60188808SgonzoBUILTIN(__builtin_mips_preceu_ph_qbla, "V2sV4Sc", "nc")
61188808SgonzoBUILTIN(__builtin_mips_preceu_ph_qbra, "V2sV4Sc", "nc")
62188808Sgonzo
63188808SgonzoBUILTIN(__builtin_mips_shll_qb, "V4ScV4Sci", "n")
64188808SgonzoBUILTIN(__builtin_mips_shrl_qb, "V4ScV4Sci", "nc")
65188808SgonzoBUILTIN(__builtin_mips_shll_ph, "V2sV2si", "n")
66188808SgonzoBUILTIN(__builtin_mips_shll_s_ph, "V2sV2si", "n")
67188808SgonzoBUILTIN(__builtin_mips_shra_ph, "V2sV2si", "nc")
68188808SgonzoBUILTIN(__builtin_mips_shra_r_ph, "V2sV2si", "nc")
69188808SgonzoBUILTIN(__builtin_mips_shll_s_w, "iii", "n")
70234862SadrianBUILTIN(__builtin_mips_shra_r_w, "iii", "nc")
71234862SadrianBUILTIN(__builtin_mips_shilo, "LLiLLii", "nc")
72234862Sadrian
73234862SadrianBUILTIN(__builtin_mips_muleu_s_ph_qbl, "V2sV4ScV2s", "n")
74199038SgonzoBUILTIN(__builtin_mips_muleu_s_ph_qbr, "V2sV4ScV2s", "n")
75261455SeadlerBUILTIN(__builtin_mips_mulq_rs_ph, "V2sV2sV2s", "n")
76188808SgonzoBUILTIN(__builtin_mips_muleq_s_w_phl, "iV2sV2s", "n")
77188808SgonzoBUILTIN(__builtin_mips_muleq_s_w_phr, "iV2sV2s", "n")
78188808SgonzoBUILTIN(__builtin_mips_mulsaq_s_w_ph, "LLiLLiV2sV2s", "n")
79188808SgonzoBUILTIN(__builtin_mips_maq_s_w_phl, "LLiLLiV2sV2s", "n")
80188808SgonzoBUILTIN(__builtin_mips_maq_s_w_phr, "LLiLLiV2sV2s", "n")
81188808SgonzoBUILTIN(__builtin_mips_maq_sa_w_phl, "LLiLLiV2sV2s", "n")
82188808SgonzoBUILTIN(__builtin_mips_maq_sa_w_phr, "LLiLLiV2sV2s", "n")
83188808SgonzoBUILTIN(__builtin_mips_mult, "LLiii", "nc")
84188808SgonzoBUILTIN(__builtin_mips_multu, "LLiUiUi", "nc")
85188808Sgonzo
86188808SgonzoBUILTIN(__builtin_mips_dpau_h_qbl, "LLiLLiV4ScV4Sc", "nc")
87188808SgonzoBUILTIN(__builtin_mips_dpau_h_qbr, "LLiLLiV4ScV4Sc", "nc")
88188808SgonzoBUILTIN(__builtin_mips_dpsu_h_qbl, "LLiLLiV4ScV4Sc", "nc")
89188808SgonzoBUILTIN(__builtin_mips_dpsu_h_qbr, "LLiLLiV4ScV4Sc", "nc")
90188808SgonzoBUILTIN(__builtin_mips_dpaq_s_w_ph, "LLiLLiV2sV2s", "n")
91188808SgonzoBUILTIN(__builtin_mips_dpsq_s_w_ph, "LLiLLiV2sV2s", "n")
92188808SgonzoBUILTIN(__builtin_mips_dpaq_sa_l_w, "LLiLLiii", "n")
93188808SgonzoBUILTIN(__builtin_mips_dpsq_sa_l_w, "LLiLLiii", "n")
94188808Sgonzo
95188808SgonzoBUILTIN(__builtin_mips_cmpu_eq_qb, "vV4ScV4Sc", "n")
96188808SgonzoBUILTIN(__builtin_mips_cmpu_lt_qb, "vV4ScV4Sc", "n")
97188808SgonzoBUILTIN(__builtin_mips_cmpu_le_qb, "vV4ScV4Sc", "n")
98188808SgonzoBUILTIN(__builtin_mips_cmpgu_eq_qb, "iV4ScV4Sc", "n")
99188808SgonzoBUILTIN(__builtin_mips_cmpgu_lt_qb, "iV4ScV4Sc", "n")
100188808SgonzoBUILTIN(__builtin_mips_cmpgu_le_qb, "iV4ScV4Sc", "n")
101188808SgonzoBUILTIN(__builtin_mips_cmp_eq_ph, "vV2sV2s", "n")
102188808SgonzoBUILTIN(__builtin_mips_cmp_lt_ph, "vV2sV2s", "n")
103188808SgonzoBUILTIN(__builtin_mips_cmp_le_ph, "vV2sV2s", "n")
104188808Sgonzo
105188808SgonzoBUILTIN(__builtin_mips_extr_s_h, "iLLii", "n")
106188808SgonzoBUILTIN(__builtin_mips_extr_w, "iLLii", "n")
107188808SgonzoBUILTIN(__builtin_mips_extr_rs_w, "iLLii", "n")
108188808SgonzoBUILTIN(__builtin_mips_extr_r_w, "iLLii", "n")
109188808SgonzoBUILTIN(__builtin_mips_extp, "iLLii", "n")
110188808SgonzoBUILTIN(__builtin_mips_extpdp, "iLLii", "n")
111188808Sgonzo
112188808SgonzoBUILTIN(__builtin_mips_wrdsp, "viIi", "n")
113188808SgonzoBUILTIN(__builtin_mips_rddsp, "iIi", "n")
114188808SgonzoBUILTIN(__builtin_mips_insv, "iii", "n")
115188808SgonzoBUILTIN(__builtin_mips_bitrev, "ii", "nc")
116188808SgonzoBUILTIN(__builtin_mips_packrl_ph, "V2sV2sV2s", "nc")
117188808SgonzoBUILTIN(__builtin_mips_repl_qb, "V4Sci", "nc")
118188808SgonzoBUILTIN(__builtin_mips_repl_ph, "V2si", "nc")
119188808SgonzoBUILTIN(__builtin_mips_pick_qb, "V4ScV4ScV4Sc", "n")
120188808SgonzoBUILTIN(__builtin_mips_pick_ph, "V2sV2sV2s", "n")
121234919SadrianBUILTIN(__builtin_mips_mthlip, "LLiLLii", "n")
122234919SadrianBUILTIN(__builtin_mips_bposge32, "i", "n")
123234919SadrianBUILTIN(__builtin_mips_lbux, "iv*i", "n")
124234919SadrianBUILTIN(__builtin_mips_lhx, "iv*i", "n")
125234919SadrianBUILTIN(__builtin_mips_lwx, "iv*i", "n")
126234919Sadrian
127234919Sadrian// MIPS DSP Rev 2
128234919Sadrian
129234919SadrianBUILTIN(__builtin_mips_absq_s_qb, "V4ScV4Sc", "n")
130188808Sgonzo
131188808SgonzoBUILTIN(__builtin_mips_addqh_ph, "V2sV2sV2s", "nc")
132188808SgonzoBUILTIN(__builtin_mips_addqh_r_ph, "V2sV2sV2s", "nc")
133199234SgonzoBUILTIN(__builtin_mips_addqh_w, "iii", "nc")
134199234SgonzoBUILTIN(__builtin_mips_addqh_r_w, "iii", "nc")
135199234Sgonzo
136199234SgonzoBUILTIN(__builtin_mips_addu_ph, "V2sV2sV2s", "n")
137199234SgonzoBUILTIN(__builtin_mips_addu_s_ph, "V2sV2sV2s", "n")
138199234Sgonzo
139234862SadrianBUILTIN(__builtin_mips_adduh_qb, "V4ScV4ScV4Sc", "nc")
140234862SadrianBUILTIN(__builtin_mips_adduh_r_qb, "V4ScV4ScV4Sc", "nc")
141188808Sgonzo
142188808SgonzoBUILTIN(__builtin_mips_append, "iiiIi", "nc")
143188808SgonzoBUILTIN(__builtin_mips_balign, "iiiIi", "nc")
144188808Sgonzo
145188808SgonzoBUILTIN(__builtin_mips_cmpgdu_eq_qb, "iV4ScV4Sc", "n")
146234862SadrianBUILTIN(__builtin_mips_cmpgdu_lt_qb, "iV4ScV4Sc", "n")
147234910SadrianBUILTIN(__builtin_mips_cmpgdu_le_qb, "iV4ScV4Sc", "n")
148234919Sadrian
149188808SgonzoBUILTIN(__builtin_mips_dpa_w_ph, "LLiLLiV2sV2s", "nc")
150188808SgonzoBUILTIN(__builtin_mips_dps_w_ph, "LLiLLiV2sV2s", "nc")
151188808Sgonzo
152188808SgonzoBUILTIN(__builtin_mips_dpaqx_s_w_ph, "LLiLLiV2sV2s", "n")
153188808SgonzoBUILTIN(__builtin_mips_dpaqx_sa_w_ph, "LLiLLiV2sV2s", "n")
154188808SgonzoBUILTIN(__builtin_mips_dpax_w_ph, "LLiLLiV2sV2s", "nc")
155188808SgonzoBUILTIN(__builtin_mips_dpsx_w_ph, "LLiLLiV2sV2s", "nc")
156188808SgonzoBUILTIN(__builtin_mips_dpsqx_s_w_ph, "LLiLLiV2sV2s", "n")
157188808SgonzoBUILTIN(__builtin_mips_dpsqx_sa_w_ph, "LLiLLiV2sV2s", "n")
158188808Sgonzo
159188808SgonzoBUILTIN(__builtin_mips_mul_ph, "V2sV2sV2s", "n")
160198932SgonzoBUILTIN(__builtin_mips_mul_s_ph, "V2sV2sV2s", "n")
161209802Sadrian
162209809SadrianBUILTIN(__builtin_mips_mulq_rs_w, "iii", "n")
163209809SadrianBUILTIN(__builtin_mips_mulq_s_ph, "V2sV2sV2s", "n")
164209809SadrianBUILTIN(__builtin_mips_mulq_s_w, "iii", "n")
165220356SadrianBUILTIN(__builtin_mips_mulsa_w_ph, "LLiLLiV2sV2s", "nc")
166220356Sadrian
167209809SadrianBUILTIN(__builtin_mips_precr_qb_ph, "V4ScV2sV2s", "n")
168188808SgonzoBUILTIN(__builtin_mips_precr_sra_ph_w, "V2siiIi", "nc")
169188808SgonzoBUILTIN(__builtin_mips_precr_sra_r_ph_w, "V2siiIi", "nc")
170188808Sgonzo
171BUILTIN(__builtin_mips_prepend, "iiiIi", "nc")
172
173BUILTIN(__builtin_mips_shra_qb, "V4ScV4Sci", "nc")
174BUILTIN(__builtin_mips_shra_r_qb, "V4ScV4Sci", "nc")
175BUILTIN(__builtin_mips_shrl_ph, "V2sV2si", "nc")
176
177BUILTIN(__builtin_mips_subqh_ph, "V2sV2sV2s", "nc")
178BUILTIN(__builtin_mips_subqh_r_ph, "V2sV2sV2s", "nc")
179BUILTIN(__builtin_mips_subqh_w, "iii", "nc")
180BUILTIN(__builtin_mips_subqh_r_w, "iii", "nc")
181
182BUILTIN(__builtin_mips_subu_ph, "V2sV2sV2s", "n")
183BUILTIN(__builtin_mips_subu_s_ph, "V2sV2sV2s", "n")
184
185BUILTIN(__builtin_mips_subuh_qb, "V4ScV4ScV4Sc", "nc")
186BUILTIN(__builtin_mips_subuh_r_qb, "V4ScV4ScV4Sc", "nc")
187
188#undef BUILTIN
189