67 unsigned i = 0, l = 0, u = 0, m = 0;
69 default:
return false;
70 case Mips::BI__builtin_mips_wrdsp: i = 1; l = 0; u = 63;
break;
71 case Mips::BI__builtin_mips_rddsp: i = 0; l = 0; u = 63;
break;
72 case Mips::BI__builtin_mips_append: i = 2; l = 0; u = 31;
break;
73 case Mips::BI__builtin_mips_balign: i = 2; l = 0; u = 3;
break;
74 case Mips::BI__builtin_mips_precr_sra_ph_w: i = 2; l = 0; u = 31;
break;
75 case Mips::BI__builtin_mips_precr_sra_r_ph_w: i = 2; l = 0; u = 31;
break;
76 case Mips::BI__builtin_mips_prepend: i = 2; l = 0; u = 31;
break;
80 case Mips::BI__builtin_msa_bclri_b:
81 case Mips::BI__builtin_msa_bnegi_b:
82 case Mips::BI__builtin_msa_bseti_b:
83 case Mips::BI__builtin_msa_sat_s_b:
84 case Mips::BI__builtin_msa_sat_u_b:
85 case Mips::BI__builtin_msa_slli_b:
86 case Mips::BI__builtin_msa_srai_b:
87 case Mips::BI__builtin_msa_srari_b:
88 case Mips::BI__builtin_msa_srli_b:
89 case Mips::BI__builtin_msa_srlri_b: i = 1; l = 0; u = 7;
break;
90 case Mips::BI__builtin_msa_binsli_b:
91 case Mips::BI__builtin_msa_binsri_b: i = 2; l = 0; u = 7;
break;
93 case Mips::BI__builtin_msa_bclri_h:
94 case Mips::BI__builtin_msa_bnegi_h:
95 case Mips::BI__builtin_msa_bseti_h:
96 case Mips::BI__builtin_msa_sat_s_h:
97 case Mips::BI__builtin_msa_sat_u_h:
98 case Mips::BI__builtin_msa_slli_h:
99 case Mips::BI__builtin_msa_srai_h:
100 case Mips::BI__builtin_msa_srari_h:
101 case Mips::BI__builtin_msa_srli_h:
102 case Mips::BI__builtin_msa_srlri_h: i = 1; l = 0; u = 15;
break;
103 case Mips::BI__builtin_msa_binsli_h:
104 case Mips::BI__builtin_msa_binsri_h: i = 2; l = 0; u = 15;
break;
108 case Mips::BI__builtin_msa_cfcmsa:
109 case Mips::BI__builtin_msa_ctcmsa: i = 0; l = 0; u = 31;
break;
110 case Mips::BI__builtin_msa_clei_u_b:
111 case Mips::BI__builtin_msa_clei_u_h:
112 case Mips::BI__builtin_msa_clei_u_w:
113 case Mips::BI__builtin_msa_clei_u_d:
114 case Mips::BI__builtin_msa_clti_u_b:
115 case Mips::BI__builtin_msa_clti_u_h:
116 case Mips::BI__builtin_msa_clti_u_w:
117 case Mips::BI__builtin_msa_clti_u_d:
118 case Mips::BI__builtin_msa_maxi_u_b:
119 case Mips::BI__builtin_msa_maxi_u_h:
120 case Mips::BI__builtin_msa_maxi_u_w:
121 case Mips::BI__builtin_msa_maxi_u_d:
122 case Mips::BI__builtin_msa_mini_u_b:
123 case Mips::BI__builtin_msa_mini_u_h:
124 case Mips::BI__builtin_msa_mini_u_w:
125 case Mips::BI__builtin_msa_mini_u_d:
126 case Mips::BI__builtin_msa_addvi_b:
127 case Mips::BI__builtin_msa_addvi_h:
128 case Mips::BI__builtin_msa_addvi_w:
129 case Mips::BI__builtin_msa_addvi_d:
130 case Mips::BI__builtin_msa_bclri_w:
131 case Mips::BI__builtin_msa_bnegi_w:
132 case Mips::BI__builtin_msa_bseti_w:
133 case Mips::BI__builtin_msa_sat_s_w:
134 case Mips::BI__builtin_msa_sat_u_w:
135 case Mips::BI__builtin_msa_slli_w:
136 case Mips::BI__builtin_msa_srai_w:
137 case Mips::BI__builtin_msa_srari_w:
138 case Mips::BI__builtin_msa_srli_w:
139 case Mips::BI__builtin_msa_srlri_w:
140 case Mips::BI__builtin_msa_subvi_b:
141 case Mips::BI__builtin_msa_subvi_h:
142 case Mips::BI__builtin_msa_subvi_w:
143 case Mips::BI__builtin_msa_subvi_d: i = 1; l = 0; u = 31;
break;
144 case Mips::BI__builtin_msa_binsli_w:
145 case Mips::BI__builtin_msa_binsri_w: i = 2; l = 0; u = 31;
break;
147 case Mips::BI__builtin_msa_bclri_d:
148 case Mips::BI__builtin_msa_bnegi_d:
149 case Mips::BI__builtin_msa_bseti_d:
150 case Mips::BI__builtin_msa_sat_s_d:
151 case Mips::BI__builtin_msa_sat_u_d:
152 case Mips::BI__builtin_msa_slli_d:
153 case Mips::BI__builtin_msa_srai_d:
154 case Mips::BI__builtin_msa_srari_d:
155 case Mips::BI__builtin_msa_srli_d:
156 case Mips::BI__builtin_msa_srlri_d: i = 1; l = 0; u = 63;
break;
157 case Mips::BI__builtin_msa_binsli_d:
158 case Mips::BI__builtin_msa_binsri_d: i = 2; l = 0; u = 63;
break;
160 case Mips::BI__builtin_msa_ceqi_b:
161 case Mips::BI__builtin_msa_ceqi_h:
162 case Mips::BI__builtin_msa_ceqi_w:
163 case Mips::BI__builtin_msa_ceqi_d:
164 case Mips::BI__builtin_msa_clti_s_b:
165 case Mips::BI__builtin_msa_clti_s_h:
166 case Mips::BI__builtin_msa_clti_s_w:
167 case Mips::BI__builtin_msa_clti_s_d:
168 case Mips::BI__builtin_msa_clei_s_b:
169 case Mips::BI__builtin_msa_clei_s_h:
170 case Mips::BI__builtin_msa_clei_s_w:
171 case Mips::BI__builtin_msa_clei_s_d:
172 case Mips::BI__builtin_msa_maxi_s_b:
173 case Mips::BI__builtin_msa_maxi_s_h:
174 case Mips::BI__builtin_msa_maxi_s_w:
175 case Mips::BI__builtin_msa_maxi_s_d:
176 case Mips::BI__builtin_msa_mini_s_b:
177 case Mips::BI__builtin_msa_mini_s_h:
178 case Mips::BI__builtin_msa_mini_s_w:
179 case Mips::BI__builtin_msa_mini_s_d: i = 1; l = -16; u = 15;
break;
181 case Mips::BI__builtin_msa_andi_b:
182 case Mips::BI__builtin_msa_nori_b:
183 case Mips::BI__builtin_msa_ori_b:
184 case Mips::BI__builtin_msa_shf_b:
185 case Mips::BI__builtin_msa_shf_h:
186 case Mips::BI__builtin_msa_shf_w:
187 case Mips::BI__builtin_msa_xori_b: i = 1; l = 0; u = 255;
break;
188 case Mips::BI__builtin_msa_bseli_b:
189 case Mips::BI__builtin_msa_bmnzi_b:
190 case Mips::BI__builtin_msa_bmzi_b: i = 2; l = 0; u = 255;
break;
193 case Mips::BI__builtin_msa_copy_s_b:
194 case Mips::BI__builtin_msa_copy_u_b:
195 case Mips::BI__builtin_msa_insve_b:
196 case Mips::BI__builtin_msa_splati_b: i = 1; l = 0; u = 15;
break;
197 case Mips::BI__builtin_msa_sldi_b: i = 2; l = 0; u = 15;
break;
199 case Mips::BI__builtin_msa_copy_s_h:
200 case Mips::BI__builtin_msa_copy_u_h:
201 case Mips::BI__builtin_msa_insve_h:
202 case Mips::BI__builtin_msa_splati_h: i = 1; l = 0; u = 7;
break;
203 case Mips::BI__builtin_msa_sldi_h: i = 2; l = 0; u = 7;
break;
205 case Mips::BI__builtin_msa_copy_s_w:
206 case Mips::BI__builtin_msa_copy_u_w:
207 case Mips::BI__builtin_msa_insve_w:
208 case Mips::BI__builtin_msa_splati_w: i = 1; l = 0; u = 3;
break;
209 case Mips::BI__builtin_msa_sldi_w: i = 2; l = 0; u = 3;
break;
211 case Mips::BI__builtin_msa_copy_s_d:
212 case Mips::BI__builtin_msa_copy_u_d:
213 case Mips::BI__builtin_msa_insve_d:
214 case Mips::BI__builtin_msa_splati_d: i = 1; l = 0; u = 1;
break;
215 case Mips::BI__builtin_msa_sldi_d: i = 2; l = 0; u = 1;
break;
218 case Mips::BI__builtin_msa_ldi_b: i = 0; l = -128; u = 255;
break;
219 case Mips::BI__builtin_msa_ldi_h:
220 case Mips::BI__builtin_msa_ldi_w:
221 case Mips::BI__builtin_msa_ldi_d: i = 0; l = -512; u = 511;
break;
222 case Mips::BI__builtin_msa_ld_b: i = 1; l = -512; u = 511; m = 1;
break;
223 case Mips::BI__builtin_msa_ld_h: i = 1; l = -1024; u = 1022; m = 2;
break;
224 case Mips::BI__builtin_msa_ld_w: i = 1; l = -2048; u = 2044; m = 4;
break;
225 case Mips::BI__builtin_msa_ld_d: i = 1; l = -4096; u = 4088; m = 8;
break;
226 case Mips::BI__builtin_msa_ldr_d: i = 1; l = -4096; u = 4088; m = 8;
break;
227 case Mips::BI__builtin_msa_ldr_w: i = 1; l = -2048; u = 2044; m = 4;
break;
228 case Mips::BI__builtin_msa_st_b: i = 2; l = -512; u = 511; m = 1;
break;
229 case Mips::BI__builtin_msa_st_h: i = 2; l = -1024; u = 1022; m = 2;
break;
230 case Mips::BI__builtin_msa_st_w: i = 2; l = -2048; u = 2044; m = 4;
break;
231 case Mips::BI__builtin_msa_st_d: i = 2; l = -4096; u = 4088; m = 8;
break;
232 case Mips::BI__builtin_msa_str_d: i = 2; l = -4096; u = 4088; m = 8;
break;
233 case Mips::BI__builtin_msa_str_w: i = 2; l = -2048; u = 2044; m = 4;
break;
237 return SemaRef.BuiltinConstantArgRange(TheCall, i, l, u);
239 return SemaRef.BuiltinConstantArgRange(TheCall, i, l, u) ||
240 SemaRef.BuiltinConstantArgMultiple(TheCall, i, m);