37 case X86::BI__builtin_ia32_vcvttsd2si32:
38 case X86::BI__builtin_ia32_vcvttsd2si64:
39 case X86::BI__builtin_ia32_vcvttsd2usi32:
40 case X86::BI__builtin_ia32_vcvttsd2usi64:
41 case X86::BI__builtin_ia32_vcvttss2si32:
42 case X86::BI__builtin_ia32_vcvttss2si64:
43 case X86::BI__builtin_ia32_vcvttss2usi32:
44 case X86::BI__builtin_ia32_vcvttss2usi64:
45 case X86::BI__builtin_ia32_vcvttsh2si32:
46 case X86::BI__builtin_ia32_vcvttsh2si64:
47 case X86::BI__builtin_ia32_vcvttsh2usi32:
48 case X86::BI__builtin_ia32_vcvttsh2usi64:
49 case X86::BI__builtin_ia32_vcvttsd2sis32:
50 case X86::BI__builtin_ia32_vcvttsd2usis32:
51 case X86::BI__builtin_ia32_vcvttss2sis32:
52 case X86::BI__builtin_ia32_vcvttss2usis32:
53 case X86::BI__builtin_ia32_vcvttsd2sis64:
54 case X86::BI__builtin_ia32_vcvttsd2usis64:
55 case X86::BI__builtin_ia32_vcvttss2sis64:
56 case X86::BI__builtin_ia32_vcvttss2usis64:
59 case X86::BI__builtin_ia32_maxpd512:
60 case X86::BI__builtin_ia32_maxps512:
61 case X86::BI__builtin_ia32_minpd512:
62 case X86::BI__builtin_ia32_minps512:
63 case X86::BI__builtin_ia32_maxph512:
64 case X86::BI__builtin_ia32_minph512:
67 case X86::BI__builtin_ia32_vcvtph2pd512_mask:
68 case X86::BI__builtin_ia32_vcvtph2psx512_mask:
69 case X86::BI__builtin_ia32_cvtps2pd512_mask:
70 case X86::BI__builtin_ia32_cvttpd2dq512_mask:
71 case X86::BI__builtin_ia32_cvttpd2qq512_mask:
72 case X86::BI__builtin_ia32_cvttpd2udq512_mask:
73 case X86::BI__builtin_ia32_cvttpd2uqq512_mask:
74 case X86::BI__builtin_ia32_cvttps2dq512_mask:
75 case X86::BI__builtin_ia32_cvttps2qq512_mask:
76 case X86::BI__builtin_ia32_cvttps2udq512_mask:
77 case X86::BI__builtin_ia32_cvttps2uqq512_mask:
78 case X86::BI__builtin_ia32_vcvttph2w512_mask:
79 case X86::BI__builtin_ia32_vcvttph2uw512_mask:
80 case X86::BI__builtin_ia32_vcvttph2dq512_mask:
81 case X86::BI__builtin_ia32_vcvttph2udq512_mask:
82 case X86::BI__builtin_ia32_vcvttph2qq512_mask:
83 case X86::BI__builtin_ia32_vcvttph2uqq512_mask:
84 case X86::BI__builtin_ia32_getexppd512_mask:
85 case X86::BI__builtin_ia32_getexpps512_mask:
86 case X86::BI__builtin_ia32_getexpph512_mask:
87 case X86::BI__builtin_ia32_vcomisd:
88 case X86::BI__builtin_ia32_vcomiss:
89 case X86::BI__builtin_ia32_vcomish:
90 case X86::BI__builtin_ia32_vcvtph2ps512_mask:
91 case X86::BI__builtin_ia32_vcvttph2ibs512_mask:
92 case X86::BI__builtin_ia32_vcvttph2iubs512_mask:
93 case X86::BI__builtin_ia32_vcvttps2ibs512_mask:
94 case X86::BI__builtin_ia32_vcvttps2iubs512_mask:
97 case X86::BI__builtin_ia32_cmppd512_mask:
98 case X86::BI__builtin_ia32_cmpps512_mask:
99 case X86::BI__builtin_ia32_cmpsd_mask:
100 case X86::BI__builtin_ia32_cmpss_mask:
101 case X86::BI__builtin_ia32_cmpsh_mask:
102 case X86::BI__builtin_ia32_vcvtsh2sd_round_mask:
103 case X86::BI__builtin_ia32_vcvtsh2ss_round_mask:
104 case X86::BI__builtin_ia32_cvtss2sd_round_mask:
105 case X86::BI__builtin_ia32_getexpsd128_round_mask:
106 case X86::BI__builtin_ia32_getexpss128_round_mask:
107 case X86::BI__builtin_ia32_getexpsh128_round_mask:
108 case X86::BI__builtin_ia32_getmantpd512_mask:
109 case X86::BI__builtin_ia32_getmantps512_mask:
110 case X86::BI__builtin_ia32_getmantph512_mask:
111 case X86::BI__builtin_ia32_maxsd_round_mask:
112 case X86::BI__builtin_ia32_maxss_round_mask:
113 case X86::BI__builtin_ia32_maxsh_round_mask:
114 case X86::BI__builtin_ia32_minsd_round_mask:
115 case X86::BI__builtin_ia32_minss_round_mask:
116 case X86::BI__builtin_ia32_minsh_round_mask:
117 case X86::BI__builtin_ia32_reducepd512_mask:
118 case X86::BI__builtin_ia32_reduceps512_mask:
119 case X86::BI__builtin_ia32_reduceph512_mask:
120 case X86::BI__builtin_ia32_rndscalepd_mask:
121 case X86::BI__builtin_ia32_rndscaleps_mask:
122 case X86::BI__builtin_ia32_rndscaleph_mask:
125 case X86::BI__builtin_ia32_fixupimmpd512_mask:
126 case X86::BI__builtin_ia32_fixupimmpd512_maskz:
127 case X86::BI__builtin_ia32_fixupimmps512_mask:
128 case X86::BI__builtin_ia32_fixupimmps512_maskz:
129 case X86::BI__builtin_ia32_fixupimmsd_mask:
130 case X86::BI__builtin_ia32_fixupimmsd_maskz:
131 case X86::BI__builtin_ia32_fixupimmss_mask:
132 case X86::BI__builtin_ia32_fixupimmss_maskz:
133 case X86::BI__builtin_ia32_getmantsd_round_mask:
134 case X86::BI__builtin_ia32_getmantss_round_mask:
135 case X86::BI__builtin_ia32_getmantsh_round_mask:
136 case X86::BI__builtin_ia32_rangepd512_mask:
137 case X86::BI__builtin_ia32_rangeps512_mask:
138 case X86::BI__builtin_ia32_rangesd128_round_mask:
139 case X86::BI__builtin_ia32_rangess128_round_mask:
140 case X86::BI__builtin_ia32_reducesd_mask:
141 case X86::BI__builtin_ia32_reducess_mask:
142 case X86::BI__builtin_ia32_reducesh_mask:
143 case X86::BI__builtin_ia32_rndscalesd_round_mask:
144 case X86::BI__builtin_ia32_rndscaless_round_mask:
145 case X86::BI__builtin_ia32_rndscalesh_round_mask:
146 case X86::BI__builtin_ia32_vminmaxpd512_round_mask:
147 case X86::BI__builtin_ia32_vminmaxps512_round_mask:
148 case X86::BI__builtin_ia32_vminmaxph512_round_mask:
149 case X86::BI__builtin_ia32_vminmaxsd_round_mask:
150 case X86::BI__builtin_ia32_vminmaxsh_round_mask:
151 case X86::BI__builtin_ia32_vminmaxss_round_mask:
154 case X86::BI__builtin_ia32_vcvtsd2si64:
155 case X86::BI__builtin_ia32_vcvtsd2si32:
156 case X86::BI__builtin_ia32_vcvtsd2usi32:
157 case X86::BI__builtin_ia32_vcvtsd2usi64:
158 case X86::BI__builtin_ia32_vcvtss2si32:
159 case X86::BI__builtin_ia32_vcvtss2si64:
160 case X86::BI__builtin_ia32_vcvtss2usi32:
161 case X86::BI__builtin_ia32_vcvtss2usi64:
162 case X86::BI__builtin_ia32_vcvtsh2si32:
163 case X86::BI__builtin_ia32_vcvtsh2si64:
164 case X86::BI__builtin_ia32_vcvtsh2usi32:
165 case X86::BI__builtin_ia32_vcvtsh2usi64:
166 case X86::BI__builtin_ia32_sqrtpd512:
167 case X86::BI__builtin_ia32_sqrtps512:
168 case X86::BI__builtin_ia32_sqrtph512:
172 case X86::BI__builtin_ia32_addph512:
173 case X86::BI__builtin_ia32_divph512:
174 case X86::BI__builtin_ia32_mulph512:
175 case X86::BI__builtin_ia32_subph512:
176 case X86::BI__builtin_ia32_addpd512:
177 case X86::BI__builtin_ia32_addps512:
178 case X86::BI__builtin_ia32_divpd512:
179 case X86::BI__builtin_ia32_divps512:
180 case X86::BI__builtin_ia32_mulpd512:
181 case X86::BI__builtin_ia32_mulps512:
182 case X86::BI__builtin_ia32_subpd512:
183 case X86::BI__builtin_ia32_subps512:
184 case X86::BI__builtin_ia32_cvtsi2sd64:
185 case X86::BI__builtin_ia32_cvtsi2ss32:
186 case X86::BI__builtin_ia32_cvtsi2ss64:
187 case X86::BI__builtin_ia32_cvtusi2sd64:
188 case X86::BI__builtin_ia32_cvtusi2ss32:
189 case X86::BI__builtin_ia32_cvtusi2ss64:
190 case X86::BI__builtin_ia32_vcvtusi2sh:
191 case X86::BI__builtin_ia32_vcvtusi642sh:
192 case X86::BI__builtin_ia32_vcvtsi2sh:
193 case X86::BI__builtin_ia32_vcvtsi642sh:
197 case X86::BI__builtin_ia32_cvtdq2ps512_mask:
198 case X86::BI__builtin_ia32_cvtudq2ps512_mask:
199 case X86::BI__builtin_ia32_vcvtpd2ph512_mask:
200 case X86::BI__builtin_ia32_vcvtps2phx512_mask:
201 case X86::BI__builtin_ia32_cvtpd2ps512_mask:
202 case X86::BI__builtin_ia32_cvtpd2dq512_mask:
203 case X86::BI__builtin_ia32_cvtpd2qq512_mask:
204 case X86::BI__builtin_ia32_cvtpd2udq512_mask:
205 case X86::BI__builtin_ia32_cvtpd2uqq512_mask:
206 case X86::BI__builtin_ia32_cvtps2dq512_mask:
207 case X86::BI__builtin_ia32_cvtps2qq512_mask:
208 case X86::BI__builtin_ia32_cvtps2udq512_mask:
209 case X86::BI__builtin_ia32_cvtps2uqq512_mask:
210 case X86::BI__builtin_ia32_cvtqq2pd512_mask:
211 case X86::BI__builtin_ia32_cvtqq2ps512_mask:
212 case X86::BI__builtin_ia32_cvtuqq2pd512_mask:
213 case X86::BI__builtin_ia32_cvtuqq2ps512_mask:
214 case X86::BI__builtin_ia32_vcvtdq2ph512_mask:
215 case X86::BI__builtin_ia32_vcvtudq2ph512_mask:
216 case X86::BI__builtin_ia32_vcvtw2ph512_mask:
217 case X86::BI__builtin_ia32_vcvtuw2ph512_mask:
218 case X86::BI__builtin_ia32_vcvtph2w512_mask:
219 case X86::BI__builtin_ia32_vcvtph2uw512_mask:
220 case X86::BI__builtin_ia32_vcvtph2dq512_mask:
221 case X86::BI__builtin_ia32_vcvtph2udq512_mask:
222 case X86::BI__builtin_ia32_vcvtph2qq512_mask:
223 case X86::BI__builtin_ia32_vcvtph2uqq512_mask:
224 case X86::BI__builtin_ia32_vcvtqq2ph512_mask:
225 case X86::BI__builtin_ia32_vcvtuqq2ph512_mask:
226 case X86::BI__builtin_ia32_vcvtph2ibs512_mask:
227 case X86::BI__builtin_ia32_vcvtph2iubs512_mask:
228 case X86::BI__builtin_ia32_vcvtps2ibs512_mask:
229 case X86::BI__builtin_ia32_vcvtps2iubs512_mask:
233 case X86::BI__builtin_ia32_addsh_round_mask:
234 case X86::BI__builtin_ia32_addss_round_mask:
235 case X86::BI__builtin_ia32_addsd_round_mask:
236 case X86::BI__builtin_ia32_divsh_round_mask:
237 case X86::BI__builtin_ia32_divss_round_mask:
238 case X86::BI__builtin_ia32_divsd_round_mask:
239 case X86::BI__builtin_ia32_mulsh_round_mask:
240 case X86::BI__builtin_ia32_mulss_round_mask:
241 case X86::BI__builtin_ia32_mulsd_round_mask:
242 case X86::BI__builtin_ia32_subsh_round_mask:
243 case X86::BI__builtin_ia32_subss_round_mask:
244 case X86::BI__builtin_ia32_subsd_round_mask:
245 case X86::BI__builtin_ia32_scalefph512_mask:
246 case X86::BI__builtin_ia32_scalefpd512_mask:
247 case X86::BI__builtin_ia32_scalefps512_mask:
248 case X86::BI__builtin_ia32_scalefsd_round_mask:
249 case X86::BI__builtin_ia32_scalefss_round_mask:
250 case X86::BI__builtin_ia32_scalefsh_round_mask:
251 case X86::BI__builtin_ia32_cvtsd2ss_round_mask:
252 case X86::BI__builtin_ia32_vcvtss2sh_round_mask:
253 case X86::BI__builtin_ia32_vcvtsd2sh_round_mask:
254 case X86::BI__builtin_ia32_sqrtsd_round_mask:
255 case X86::BI__builtin_ia32_sqrtss_round_mask:
256 case X86::BI__builtin_ia32_sqrtsh_round_mask:
257 case X86::BI__builtin_ia32_vfmaddsd3_mask:
258 case X86::BI__builtin_ia32_vfmaddsd3_maskz:
259 case X86::BI__builtin_ia32_vfmaddsd3_mask3:
260 case X86::BI__builtin_ia32_vfmaddss3_mask:
261 case X86::BI__builtin_ia32_vfmaddss3_maskz:
262 case X86::BI__builtin_ia32_vfmaddss3_mask3:
263 case X86::BI__builtin_ia32_vfmaddsh3_mask:
264 case X86::BI__builtin_ia32_vfmaddsh3_maskz:
265 case X86::BI__builtin_ia32_vfmaddsh3_mask3:
266 case X86::BI__builtin_ia32_vfmaddpd512_mask:
267 case X86::BI__builtin_ia32_vfmaddpd512_maskz:
268 case X86::BI__builtin_ia32_vfmaddpd512_mask3:
269 case X86::BI__builtin_ia32_vfmsubpd512_mask3:
270 case X86::BI__builtin_ia32_vfmaddps512_mask:
271 case X86::BI__builtin_ia32_vfmaddps512_maskz:
272 case X86::BI__builtin_ia32_vfmaddps512_mask3:
273 case X86::BI__builtin_ia32_vfmsubps512_mask3:
274 case X86::BI__builtin_ia32_vfmaddph512_mask:
275 case X86::BI__builtin_ia32_vfmaddph512_maskz:
276 case X86::BI__builtin_ia32_vfmaddph512_mask3:
277 case X86::BI__builtin_ia32_vfmsubph512_mask3:
278 case X86::BI__builtin_ia32_vfmaddsubpd512_mask:
279 case X86::BI__builtin_ia32_vfmaddsubpd512_maskz:
280 case X86::BI__builtin_ia32_vfmaddsubpd512_mask3:
281 case X86::BI__builtin_ia32_vfmsubaddpd512_mask3:
282 case X86::BI__builtin_ia32_vfmaddsubps512_mask:
283 case X86::BI__builtin_ia32_vfmaddsubps512_maskz:
284 case X86::BI__builtin_ia32_vfmaddsubps512_mask3:
285 case X86::BI__builtin_ia32_vfmsubaddps512_mask3:
286 case X86::BI__builtin_ia32_vfmaddsubph512_mask:
287 case X86::BI__builtin_ia32_vfmaddsubph512_maskz:
288 case X86::BI__builtin_ia32_vfmaddsubph512_mask3:
289 case X86::BI__builtin_ia32_vfmsubaddph512_mask3:
290 case X86::BI__builtin_ia32_vfmaddcsh_mask:
291 case X86::BI__builtin_ia32_vfmaddcsh_round_mask:
292 case X86::BI__builtin_ia32_vfmaddcsh_round_mask3:
293 case X86::BI__builtin_ia32_vfmaddcph512_mask:
294 case X86::BI__builtin_ia32_vfmaddcph512_maskz:
295 case X86::BI__builtin_ia32_vfmaddcph512_mask3:
296 case X86::BI__builtin_ia32_vfcmaddcsh_mask:
297 case X86::BI__builtin_ia32_vfcmaddcsh_round_mask:
298 case X86::BI__builtin_ia32_vfcmaddcsh_round_mask3:
299 case X86::BI__builtin_ia32_vfcmaddcph512_mask:
300 case X86::BI__builtin_ia32_vfcmaddcph512_maskz:
301 case X86::BI__builtin_ia32_vfcmaddcph512_mask3:
302 case X86::BI__builtin_ia32_vfmulcsh_mask:
303 case X86::BI__builtin_ia32_vfmulcph512_mask:
304 case X86::BI__builtin_ia32_vfcmulcsh_mask:
305 case X86::BI__builtin_ia32_vfcmulcph512_mask:
306 case X86::BI__builtin_ia32_vcvt2ps2phx512_mask:
310 case X86::BI__builtin_ia32_vcvttpd2dqs512_round_mask:
311 case X86::BI__builtin_ia32_vcvttpd2udqs512_round_mask:
312 case X86::BI__builtin_ia32_vcvttpd2qqs512_round_mask:
313 case X86::BI__builtin_ia32_vcvttpd2uqqs512_round_mask:
314 case X86::BI__builtin_ia32_vcvttps2dqs512_round_mask:
315 case X86::BI__builtin_ia32_vcvttps2udqs512_round_mask:
316 case X86::BI__builtin_ia32_vcvttps2qqs512_round_mask:
317 case X86::BI__builtin_ia32_vcvttps2uqqs512_round_mask:
338 (!HasRC &&
Result == 12 ) ||
339 (HasRC &&
Result.getZExtValue() >= 8 &&
Result.getZExtValue() <= 11))
342 return Diag(TheCall->
getBeginLoc(), diag::err_x86_builtin_invalid_rounding)
353 case X86::BI__builtin_ia32_gatherd_pd:
354 case X86::BI__builtin_ia32_gatherd_pd256:
355 case X86::BI__builtin_ia32_gatherq_pd:
356 case X86::BI__builtin_ia32_gatherq_pd256:
357 case X86::BI__builtin_ia32_gatherd_ps:
358 case X86::BI__builtin_ia32_gatherd_ps256:
359 case X86::BI__builtin_ia32_gatherq_ps:
360 case X86::BI__builtin_ia32_gatherq_ps256:
361 case X86::BI__builtin_ia32_gatherd_q:
362 case X86::BI__builtin_ia32_gatherd_q256:
363 case X86::BI__builtin_ia32_gatherq_q:
364 case X86::BI__builtin_ia32_gatherq_q256:
365 case X86::BI__builtin_ia32_gatherd_d:
366 case X86::BI__builtin_ia32_gatherd_d256:
367 case X86::BI__builtin_ia32_gatherq_d:
368 case X86::BI__builtin_ia32_gatherq_d256:
369 case X86::BI__builtin_ia32_gather3div2df:
370 case X86::BI__builtin_ia32_gather3div2di:
371 case X86::BI__builtin_ia32_gather3div4df:
372 case X86::BI__builtin_ia32_gather3div4di:
373 case X86::BI__builtin_ia32_gather3div4sf:
374 case X86::BI__builtin_ia32_gather3div4si:
375 case X86::BI__builtin_ia32_gather3div8sf:
376 case X86::BI__builtin_ia32_gather3div8si:
377 case X86::BI__builtin_ia32_gather3siv2df:
378 case X86::BI__builtin_ia32_gather3siv2di:
379 case X86::BI__builtin_ia32_gather3siv4df:
380 case X86::BI__builtin_ia32_gather3siv4di:
381 case X86::BI__builtin_ia32_gather3siv4sf:
382 case X86::BI__builtin_ia32_gather3siv4si:
383 case X86::BI__builtin_ia32_gather3siv8sf:
384 case X86::BI__builtin_ia32_gather3siv8si:
385 case X86::BI__builtin_ia32_gathersiv8df:
386 case X86::BI__builtin_ia32_gathersiv16sf:
387 case X86::BI__builtin_ia32_gatherdiv8df:
388 case X86::BI__builtin_ia32_gatherdiv16sf:
389 case X86::BI__builtin_ia32_gathersiv8di:
390 case X86::BI__builtin_ia32_gathersiv16si:
391 case X86::BI__builtin_ia32_gatherdiv8di:
392 case X86::BI__builtin_ia32_gatherdiv16si:
393 case X86::BI__builtin_ia32_scatterdiv2df:
394 case X86::BI__builtin_ia32_scatterdiv2di:
395 case X86::BI__builtin_ia32_scatterdiv4df:
396 case X86::BI__builtin_ia32_scatterdiv4di:
397 case X86::BI__builtin_ia32_scatterdiv4sf:
398 case X86::BI__builtin_ia32_scatterdiv4si:
399 case X86::BI__builtin_ia32_scatterdiv8sf:
400 case X86::BI__builtin_ia32_scatterdiv8si:
401 case X86::BI__builtin_ia32_scattersiv2df:
402 case X86::BI__builtin_ia32_scattersiv2di:
403 case X86::BI__builtin_ia32_scattersiv4df:
404 case X86::BI__builtin_ia32_scattersiv4di:
405 case X86::BI__builtin_ia32_scattersiv4sf:
406 case X86::BI__builtin_ia32_scattersiv4si:
407 case X86::BI__builtin_ia32_scattersiv8sf:
408 case X86::BI__builtin_ia32_scattersiv8si:
409 case X86::BI__builtin_ia32_scattersiv8df:
410 case X86::BI__builtin_ia32_scattersiv16sf:
411 case X86::BI__builtin_ia32_scatterdiv8df:
412 case X86::BI__builtin_ia32_scatterdiv16sf:
413 case X86::BI__builtin_ia32_scattersiv8di:
414 case X86::BI__builtin_ia32_scattersiv16si:
415 case X86::BI__builtin_ia32_scatterdiv8di:
416 case X86::BI__builtin_ia32_scatterdiv16si:
435 return Diag(TheCall->
getBeginLoc(), diag::err_x86_builtin_invalid_scale)
549 diag::err_32_bit_builtin_64_bit_tgt);
565 int i = 0, l = 0, u = 0;
569 case X86::BI__builtin_ia32_vec_ext_v2di:
570 case X86::BI__builtin_ia32_vextractf128_pd256:
571 case X86::BI__builtin_ia32_vextractf128_ps256:
572 case X86::BI__builtin_ia32_vextractf128_si256:
573 case X86::BI__builtin_ia32_extract128i256:
574 case X86::BI__builtin_ia32_extractf64x4_mask:
575 case X86::BI__builtin_ia32_extracti64x4_mask:
576 case X86::BI__builtin_ia32_extractf32x8_mask:
577 case X86::BI__builtin_ia32_extracti32x8_mask:
578 case X86::BI__builtin_ia32_extractf64x2_256_mask:
579 case X86::BI__builtin_ia32_extracti64x2_256_mask:
580 case X86::BI__builtin_ia32_extractf32x4_256_mask:
581 case X86::BI__builtin_ia32_extracti32x4_256_mask:
586 case X86::BI__builtin_ia32_vec_set_v2di:
587 case X86::BI__builtin_ia32_vinsertf128_pd256:
588 case X86::BI__builtin_ia32_vinsertf128_ps256:
589 case X86::BI__builtin_ia32_vinsertf128_si256:
590 case X86::BI__builtin_ia32_insert128i256:
591 case X86::BI__builtin_ia32_insertf32x8:
592 case X86::BI__builtin_ia32_inserti32x8:
593 case X86::BI__builtin_ia32_insertf64x4:
594 case X86::BI__builtin_ia32_inserti64x4:
595 case X86::BI__builtin_ia32_insertf64x2_256:
596 case X86::BI__builtin_ia32_inserti64x2_256:
597 case X86::BI__builtin_ia32_insertf32x4_256:
598 case X86::BI__builtin_ia32_inserti32x4_256:
603 case X86::BI__builtin_ia32_vpermilpd:
604 case X86::BI__builtin_ia32_vec_ext_v4hi:
605 case X86::BI__builtin_ia32_vec_ext_v4si:
606 case X86::BI__builtin_ia32_vec_ext_v4sf:
607 case X86::BI__builtin_ia32_vec_ext_v4di:
608 case X86::BI__builtin_ia32_extractf32x4_mask:
609 case X86::BI__builtin_ia32_extracti32x4_mask:
610 case X86::BI__builtin_ia32_extractf64x2_512_mask:
611 case X86::BI__builtin_ia32_extracti64x2_512_mask:
616 case X86::BI_mm_prefetch:
617 case X86::BI__builtin_ia32_vec_ext_v8hi:
618 case X86::BI__builtin_ia32_vec_ext_v8si:
623 case X86::BI__builtin_ia32_sha1rnds4:
624 case X86::BI__builtin_ia32_blendpd:
625 case X86::BI__builtin_ia32_shufpd:
626 case X86::BI__builtin_ia32_vec_set_v4hi:
627 case X86::BI__builtin_ia32_vec_set_v4si:
628 case X86::BI__builtin_ia32_vec_set_v4di:
629 case X86::BI__builtin_ia32_shuf_f32x4_256:
630 case X86::BI__builtin_ia32_shuf_f64x2_256:
631 case X86::BI__builtin_ia32_shuf_i32x4_256:
632 case X86::BI__builtin_ia32_shuf_i64x2_256:
633 case X86::BI__builtin_ia32_insertf64x2_512:
634 case X86::BI__builtin_ia32_inserti64x2_512:
635 case X86::BI__builtin_ia32_insertf32x4:
636 case X86::BI__builtin_ia32_inserti32x4:
641 case X86::BI__builtin_ia32_vpermil2pd:
642 case X86::BI__builtin_ia32_vpermil2pd256:
643 case X86::BI__builtin_ia32_vpermil2ps:
644 case X86::BI__builtin_ia32_vpermil2ps256:
649 case X86::BI__builtin_ia32_cmpb128_mask:
650 case X86::BI__builtin_ia32_cmpw128_mask:
651 case X86::BI__builtin_ia32_cmpd128_mask:
652 case X86::BI__builtin_ia32_cmpq128_mask:
653 case X86::BI__builtin_ia32_cmpb256_mask:
654 case X86::BI__builtin_ia32_cmpw256_mask:
655 case X86::BI__builtin_ia32_cmpd256_mask:
656 case X86::BI__builtin_ia32_cmpq256_mask:
657 case X86::BI__builtin_ia32_cmpb512_mask:
658 case X86::BI__builtin_ia32_cmpw512_mask:
659 case X86::BI__builtin_ia32_cmpd512_mask:
660 case X86::BI__builtin_ia32_cmpq512_mask:
661 case X86::BI__builtin_ia32_ucmpb128_mask:
662 case X86::BI__builtin_ia32_ucmpw128_mask:
663 case X86::BI__builtin_ia32_ucmpd128_mask:
664 case X86::BI__builtin_ia32_ucmpq128_mask:
665 case X86::BI__builtin_ia32_ucmpb256_mask:
666 case X86::BI__builtin_ia32_ucmpw256_mask:
667 case X86::BI__builtin_ia32_ucmpd256_mask:
668 case X86::BI__builtin_ia32_ucmpq256_mask:
669 case X86::BI__builtin_ia32_ucmpb512_mask:
670 case X86::BI__builtin_ia32_ucmpw512_mask:
671 case X86::BI__builtin_ia32_ucmpd512_mask:
672 case X86::BI__builtin_ia32_ucmpq512_mask:
673 case X86::BI__builtin_ia32_vpcomub:
674 case X86::BI__builtin_ia32_vpcomuw:
675 case X86::BI__builtin_ia32_vpcomud:
676 case X86::BI__builtin_ia32_vpcomuq:
677 case X86::BI__builtin_ia32_vpcomb:
678 case X86::BI__builtin_ia32_vpcomw:
679 case X86::BI__builtin_ia32_vpcomd:
680 case X86::BI__builtin_ia32_vpcomq:
681 case X86::BI__builtin_ia32_vec_set_v8hi:
682 case X86::BI__builtin_ia32_vec_set_v8si:
687 case X86::BI__builtin_ia32_vpermilpd256:
688 case X86::BI__builtin_ia32_roundps:
689 case X86::BI__builtin_ia32_roundpd:
690 case X86::BI__builtin_ia32_roundps256:
691 case X86::BI__builtin_ia32_roundpd256:
692 case X86::BI__builtin_ia32_getmantpd128_mask:
693 case X86::BI__builtin_ia32_getmantpd256_mask:
694 case X86::BI__builtin_ia32_getmantps128_mask:
695 case X86::BI__builtin_ia32_getmantps256_mask:
696 case X86::BI__builtin_ia32_getmantpd512_mask:
697 case X86::BI__builtin_ia32_getmantps512_mask:
698 case X86::BI__builtin_ia32_getmantph128_mask:
699 case X86::BI__builtin_ia32_getmantph256_mask:
700 case X86::BI__builtin_ia32_getmantph512_mask:
701 case X86::BI__builtin_ia32_vec_ext_v16qi:
702 case X86::BI__builtin_ia32_vec_ext_v16hi:
707 case X86::BI__builtin_ia32_pblendd128:
708 case X86::BI__builtin_ia32_blendps:
709 case X86::BI__builtin_ia32_blendpd256:
710 case X86::BI__builtin_ia32_shufpd256:
711 case X86::BI__builtin_ia32_roundss:
712 case X86::BI__builtin_ia32_roundsd:
713 case X86::BI__builtin_ia32_rangepd128_mask:
714 case X86::BI__builtin_ia32_rangepd256_mask:
715 case X86::BI__builtin_ia32_rangepd512_mask:
716 case X86::BI__builtin_ia32_rangeps128_mask:
717 case X86::BI__builtin_ia32_rangeps256_mask:
718 case X86::BI__builtin_ia32_rangeps512_mask:
719 case X86::BI__builtin_ia32_getmantsd_round_mask:
720 case X86::BI__builtin_ia32_getmantss_round_mask:
721 case X86::BI__builtin_ia32_getmantsh_round_mask:
722 case X86::BI__builtin_ia32_vec_set_v16qi:
723 case X86::BI__builtin_ia32_vec_set_v16hi:
728 case X86::BI__builtin_ia32_vec_ext_v32qi:
733 case X86::BI__builtin_ia32_cmpps:
734 case X86::BI__builtin_ia32_cmpss:
735 case X86::BI__builtin_ia32_cmppd:
736 case X86::BI__builtin_ia32_cmpsd:
737 case X86::BI__builtin_ia32_cmpps256:
738 case X86::BI__builtin_ia32_cmppd256:
739 case X86::BI__builtin_ia32_cmpps128_mask:
740 case X86::BI__builtin_ia32_cmppd128_mask:
741 case X86::BI__builtin_ia32_cmpps256_mask:
742 case X86::BI__builtin_ia32_cmppd256_mask:
743 case X86::BI__builtin_ia32_cmpps512_mask:
744 case X86::BI__builtin_ia32_cmppd512_mask:
745 case X86::BI__builtin_ia32_cmpsd_mask:
746 case X86::BI__builtin_ia32_cmpss_mask:
747 case X86::BI__builtin_ia32_vec_set_v32qi:
752 case X86::BI__builtin_ia32_permdf256:
753 case X86::BI__builtin_ia32_permdi256:
754 case X86::BI__builtin_ia32_permdf512:
755 case X86::BI__builtin_ia32_permdi512:
756 case X86::BI__builtin_ia32_vpermilps:
757 case X86::BI__builtin_ia32_vpermilps256:
758 case X86::BI__builtin_ia32_vpermilpd512:
759 case X86::BI__builtin_ia32_vpermilps512:
760 case X86::BI__builtin_ia32_pshufd:
761 case X86::BI__builtin_ia32_pshufd256:
762 case X86::BI__builtin_ia32_pshufd512:
763 case X86::BI__builtin_ia32_pshufhw:
764 case X86::BI__builtin_ia32_pshufhw256:
765 case X86::BI__builtin_ia32_pshufhw512:
766 case X86::BI__builtin_ia32_pshuflw:
767 case X86::BI__builtin_ia32_pshuflw256:
768 case X86::BI__builtin_ia32_pshuflw512:
769 case X86::BI__builtin_ia32_vcvtps2ph:
770 case X86::BI__builtin_ia32_vcvtps2ph_mask:
771 case X86::BI__builtin_ia32_vcvtps2ph256:
772 case X86::BI__builtin_ia32_vcvtps2ph256_mask:
773 case X86::BI__builtin_ia32_vcvtps2ph512_mask:
774 case X86::BI__builtin_ia32_rndscaleps_128_mask:
775 case X86::BI__builtin_ia32_rndscalepd_128_mask:
776 case X86::BI__builtin_ia32_rndscaleps_256_mask:
777 case X86::BI__builtin_ia32_rndscalepd_256_mask:
778 case X86::BI__builtin_ia32_rndscaleps_mask:
779 case X86::BI__builtin_ia32_rndscalepd_mask:
780 case X86::BI__builtin_ia32_rndscaleph_mask:
781 case X86::BI__builtin_ia32_vrndscalebf16_128_mask:
782 case X86::BI__builtin_ia32_vrndscalebf16_256_mask:
783 case X86::BI__builtin_ia32_vrndscalebf16_mask:
784 case X86::BI__builtin_ia32_reducepd128_mask:
785 case X86::BI__builtin_ia32_reducepd256_mask:
786 case X86::BI__builtin_ia32_reducepd512_mask:
787 case X86::BI__builtin_ia32_reduceps128_mask:
788 case X86::BI__builtin_ia32_reduceps256_mask:
789 case X86::BI__builtin_ia32_reduceps512_mask:
790 case X86::BI__builtin_ia32_reduceph128_mask:
791 case X86::BI__builtin_ia32_reduceph256_mask:
792 case X86::BI__builtin_ia32_reduceph512_mask:
793 case X86::BI__builtin_ia32_vreducebf16128_mask:
794 case X86::BI__builtin_ia32_vreducebf16256_mask:
795 case X86::BI__builtin_ia32_vreducebf16512_mask:
796 case X86::BI__builtin_ia32_prold512:
797 case X86::BI__builtin_ia32_prolq512:
798 case X86::BI__builtin_ia32_prold128:
799 case X86::BI__builtin_ia32_prold256:
800 case X86::BI__builtin_ia32_prolq128:
801 case X86::BI__builtin_ia32_prolq256:
802 case X86::BI__builtin_ia32_prord512:
803 case X86::BI__builtin_ia32_prorq512:
804 case X86::BI__builtin_ia32_prord128:
805 case X86::BI__builtin_ia32_prord256:
806 case X86::BI__builtin_ia32_prorq128:
807 case X86::BI__builtin_ia32_prorq256:
808 case X86::BI__builtin_ia32_fpclasspd128_mask:
809 case X86::BI__builtin_ia32_fpclasspd256_mask:
810 case X86::BI__builtin_ia32_fpclassps128_mask:
811 case X86::BI__builtin_ia32_fpclassps256_mask:
812 case X86::BI__builtin_ia32_fpclassps512_mask:
813 case X86::BI__builtin_ia32_fpclasspd512_mask:
814 case X86::BI__builtin_ia32_fpclassph128_mask:
815 case X86::BI__builtin_ia32_fpclassph256_mask:
816 case X86::BI__builtin_ia32_fpclassph512_mask:
817 case X86::BI__builtin_ia32_vfpclassbf16128_mask:
818 case X86::BI__builtin_ia32_vfpclassbf16256_mask:
819 case X86::BI__builtin_ia32_vfpclassbf16512_mask:
820 case X86::BI__builtin_ia32_fpclasssd_mask:
821 case X86::BI__builtin_ia32_fpclassss_mask:
822 case X86::BI__builtin_ia32_fpclasssh_mask:
823 case X86::BI__builtin_ia32_pslldqi128_byteshift:
824 case X86::BI__builtin_ia32_pslldqi256_byteshift:
825 case X86::BI__builtin_ia32_pslldqi512_byteshift:
826 case X86::BI__builtin_ia32_psrldqi128_byteshift:
827 case X86::BI__builtin_ia32_psrldqi256_byteshift:
828 case X86::BI__builtin_ia32_psrldqi512_byteshift:
829 case X86::BI__builtin_ia32_kshiftliqi:
830 case X86::BI__builtin_ia32_kshiftlihi:
831 case X86::BI__builtin_ia32_kshiftlisi:
832 case X86::BI__builtin_ia32_kshiftlidi:
833 case X86::BI__builtin_ia32_kshiftriqi:
834 case X86::BI__builtin_ia32_kshiftrihi:
835 case X86::BI__builtin_ia32_kshiftrisi:
836 case X86::BI__builtin_ia32_kshiftridi:
841 case X86::BI__builtin_ia32_vperm2f128_pd256:
842 case X86::BI__builtin_ia32_vperm2f128_ps256:
843 case X86::BI__builtin_ia32_vperm2f128_si256:
844 case X86::BI__builtin_ia32_permti256:
845 case X86::BI__builtin_ia32_pblendw128:
846 case X86::BI__builtin_ia32_pblendw256:
847 case X86::BI__builtin_ia32_blendps256:
848 case X86::BI__builtin_ia32_pblendd256:
849 case X86::BI__builtin_ia32_palignr128:
850 case X86::BI__builtin_ia32_palignr256:
851 case X86::BI__builtin_ia32_palignr512:
852 case X86::BI__builtin_ia32_alignq512:
853 case X86::BI__builtin_ia32_alignd512:
854 case X86::BI__builtin_ia32_alignd128:
855 case X86::BI__builtin_ia32_alignd256:
856 case X86::BI__builtin_ia32_alignq128:
857 case X86::BI__builtin_ia32_alignq256:
858 case X86::BI__builtin_ia32_vcomisd:
859 case X86::BI__builtin_ia32_vcomiss:
860 case X86::BI__builtin_ia32_shuf_f32x4:
861 case X86::BI__builtin_ia32_shuf_f64x2:
862 case X86::BI__builtin_ia32_shuf_i32x4:
863 case X86::BI__builtin_ia32_shuf_i64x2:
864 case X86::BI__builtin_ia32_shufpd512:
865 case X86::BI__builtin_ia32_shufps:
866 case X86::BI__builtin_ia32_shufps256:
867 case X86::BI__builtin_ia32_shufps512:
868 case X86::BI__builtin_ia32_dbpsadbw128:
869 case X86::BI__builtin_ia32_dbpsadbw256:
870 case X86::BI__builtin_ia32_dbpsadbw512:
871 case X86::BI__builtin_ia32_vpshldd128:
872 case X86::BI__builtin_ia32_vpshldd256:
873 case X86::BI__builtin_ia32_vpshldd512:
874 case X86::BI__builtin_ia32_vpshldq128:
875 case X86::BI__builtin_ia32_vpshldq256:
876 case X86::BI__builtin_ia32_vpshldq512:
877 case X86::BI__builtin_ia32_vpshldw128:
878 case X86::BI__builtin_ia32_vpshldw256:
879 case X86::BI__builtin_ia32_vpshldw512:
880 case X86::BI__builtin_ia32_vpshrdd128:
881 case X86::BI__builtin_ia32_vpshrdd256:
882 case X86::BI__builtin_ia32_vpshrdd512:
883 case X86::BI__builtin_ia32_vpshrdq128:
884 case X86::BI__builtin_ia32_vpshrdq256:
885 case X86::BI__builtin_ia32_vpshrdq512:
886 case X86::BI__builtin_ia32_vpshrdw128:
887 case X86::BI__builtin_ia32_vpshrdw256:
888 case X86::BI__builtin_ia32_vpshrdw512:
889 case X86::BI__builtin_ia32_vminmaxbf16128:
890 case X86::BI__builtin_ia32_vminmaxbf16256:
891 case X86::BI__builtin_ia32_vminmaxbf16512:
892 case X86::BI__builtin_ia32_vminmaxpd128_mask:
893 case X86::BI__builtin_ia32_vminmaxpd256_mask:
894 case X86::BI__builtin_ia32_vminmaxph128_mask:
895 case X86::BI__builtin_ia32_vminmaxph256_mask:
896 case X86::BI__builtin_ia32_vminmaxps128_mask:
897 case X86::BI__builtin_ia32_vminmaxps256_mask:
898 case X86::BI__builtin_ia32_vminmaxpd512_round_mask:
899 case X86::BI__builtin_ia32_vminmaxps512_round_mask:
900 case X86::BI__builtin_ia32_vminmaxph512_round_mask:
901 case X86::BI__builtin_ia32_vminmaxsd_round_mask:
902 case X86::BI__builtin_ia32_vminmaxsh_round_mask:
903 case X86::BI__builtin_ia32_vminmaxss_round_mask:
908 case X86::BI__builtin_ia32_fixupimmpd512_mask:
909 case X86::BI__builtin_ia32_fixupimmpd512_maskz:
910 case X86::BI__builtin_ia32_fixupimmps512_mask:
911 case X86::BI__builtin_ia32_fixupimmps512_maskz:
912 case X86::BI__builtin_ia32_fixupimmsd_mask:
913 case X86::BI__builtin_ia32_fixupimmsd_maskz:
914 case X86::BI__builtin_ia32_fixupimmss_mask:
915 case X86::BI__builtin_ia32_fixupimmss_maskz:
916 case X86::BI__builtin_ia32_fixupimmpd128_mask:
917 case X86::BI__builtin_ia32_fixupimmpd128_maskz:
918 case X86::BI__builtin_ia32_fixupimmpd256_mask:
919 case X86::BI__builtin_ia32_fixupimmpd256_maskz:
920 case X86::BI__builtin_ia32_fixupimmps128_mask:
921 case X86::BI__builtin_ia32_fixupimmps128_maskz:
922 case X86::BI__builtin_ia32_fixupimmps256_mask:
923 case X86::BI__builtin_ia32_fixupimmps256_maskz:
924 case X86::BI__builtin_ia32_pternlogd512_mask:
925 case X86::BI__builtin_ia32_pternlogd512_maskz:
926 case X86::BI__builtin_ia32_pternlogq512_mask:
927 case X86::BI__builtin_ia32_pternlogq512_maskz:
928 case X86::BI__builtin_ia32_pternlogd128_mask:
929 case X86::BI__builtin_ia32_pternlogd128_maskz:
930 case X86::BI__builtin_ia32_pternlogd256_mask:
931 case X86::BI__builtin_ia32_pternlogd256_maskz:
932 case X86::BI__builtin_ia32_pternlogq128_mask:
933 case X86::BI__builtin_ia32_pternlogq128_maskz:
934 case X86::BI__builtin_ia32_pternlogq256_mask:
935 case X86::BI__builtin_ia32_pternlogq256_maskz:
936 case X86::BI__builtin_ia32_vsm3rnds2:
941 case X86::BI__builtin_ia32_reducesd_mask:
942 case X86::BI__builtin_ia32_reducess_mask:
943 case X86::BI__builtin_ia32_rndscalesd_round_mask:
944 case X86::BI__builtin_ia32_rndscaless_round_mask:
945 case X86::BI__builtin_ia32_rndscalesh_round_mask:
946 case X86::BI__builtin_ia32_reducesh_mask:
951 case X86::BI__builtin_ia32_cmpccxadd32:
952 case X86::BI__builtin_ia32_cmpccxadd64:
957 case X86::BI__builtin_ia32_prefetchi:
968 return SemaRef.BuiltinConstantArgRange(TheCall, i, l, u,