Lines Matching +full:0 +full:x86
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
24 #include "X86.h"
34 #define DEBUG_TYPE "x86-fixup-inst-tuning"
45 StringRef getPassName() const override { return "X86 Fixup Inst Tuning"; } in getPassName()
64 char X86FixupInstTuningPass::ID = 0;
172 // `vunpcklpd/vmovlhps r, r` -> `vunpcklqdq r, r`/`vshufpd r, r, 0x00` in processInstruction()
173 // `vunpckhpd/vmovlhps r, r` -> `vunpckhqdq r, r`/`vshufpd r, r, 0xff` in processInstruction()
174 // `vunpcklpd r, r, k` -> `vunpcklqdq r, r, k`/`vshufpd r, r, k, 0x00` in processInstruction()
175 // `vunpckhpd r, r, k` -> `vunpckhqdq r, r, k`/`vshufpd r, r, k, 0xff` in processInstruction()
210 return ProcessUNPCK(NewOpc, 0x00); in processInstruction()
216 return ProcessUNPCK(NewOpc, 0xff); in processInstruction()
228 case X86::VPERMILPDri: in processInstruction()
229 return ProcessVPERMILPDri(X86::VSHUFPDrri); in processInstruction()
230 case X86::VPERMILPDYri: in processInstruction()
231 return ProcessVPERMILPDri(X86::VSHUFPDYrri); in processInstruction()
232 case X86::VPERMILPDZ128ri: in processInstruction()
233 return ProcessVPERMILPDri(X86::VSHUFPDZ128rri); in processInstruction()
234 case X86::VPERMILPDZ256ri: in processInstruction()
235 return ProcessVPERMILPDri(X86::VSHUFPDZ256rri); in processInstruction()
236 case X86::VPERMILPDZri: in processInstruction()
237 return ProcessVPERMILPDri(X86::VSHUFPDZrri); in processInstruction()
238 case X86::VPERMILPDZ128rikz: in processInstruction()
239 return ProcessVPERMILPDri(X86::VSHUFPDZ128rrikz); in processInstruction()
240 case X86::VPERMILPDZ256rikz: in processInstruction()
241 return ProcessVPERMILPDri(X86::VSHUFPDZ256rrikz); in processInstruction()
242 case X86::VPERMILPDZrikz: in processInstruction()
243 return ProcessVPERMILPDri(X86::VSHUFPDZrrikz); in processInstruction()
244 case X86::VPERMILPDZ128rik: in processInstruction()
245 return ProcessVPERMILPDri(X86::VSHUFPDZ128rrik); in processInstruction()
246 case X86::VPERMILPDZ256rik: in processInstruction()
247 return ProcessVPERMILPDri(X86::VSHUFPDZ256rrik); in processInstruction()
248 case X86::VPERMILPDZrik: in processInstruction()
249 return ProcessVPERMILPDri(X86::VSHUFPDZrrik); in processInstruction()
251 case X86::VPERMILPSri: in processInstruction()
252 return ProcessVPERMILPSri(X86::VSHUFPSrri); in processInstruction()
253 case X86::VPERMILPSYri: in processInstruction()
254 return ProcessVPERMILPSri(X86::VSHUFPSYrri); in processInstruction()
255 case X86::VPERMILPSZ128ri: in processInstruction()
256 return ProcessVPERMILPSri(X86::VSHUFPSZ128rri); in processInstruction()
257 case X86::VPERMILPSZ256ri: in processInstruction()
258 return ProcessVPERMILPSri(X86::VSHUFPSZ256rri); in processInstruction()
259 case X86::VPERMILPSZri: in processInstruction()
260 return ProcessVPERMILPSri(X86::VSHUFPSZrri); in processInstruction()
261 case X86::VPERMILPSZ128rikz: in processInstruction()
262 return ProcessVPERMILPSri(X86::VSHUFPSZ128rrikz); in processInstruction()
263 case X86::VPERMILPSZ256rikz: in processInstruction()
264 return ProcessVPERMILPSri(X86::VSHUFPSZ256rrikz); in processInstruction()
265 case X86::VPERMILPSZrikz: in processInstruction()
266 return ProcessVPERMILPSri(X86::VSHUFPSZrrikz); in processInstruction()
267 case X86::VPERMILPSZ128rik: in processInstruction()
268 return ProcessVPERMILPSri(X86::VSHUFPSZ128rrik); in processInstruction()
269 case X86::VPERMILPSZ256rik: in processInstruction()
270 return ProcessVPERMILPSri(X86::VSHUFPSZ256rrik); in processInstruction()
271 case X86::VPERMILPSZrik: in processInstruction()
272 return ProcessVPERMILPSri(X86::VSHUFPSZrrik); in processInstruction()
273 case X86::VPERMILPSmi: in processInstruction()
274 return ProcessVPERMILPSmi(X86::VPSHUFDmi); in processInstruction()
275 case X86::VPERMILPSYmi: in processInstruction()
278 return ST->hasAVX2() ? ProcessVPERMILPSmi(X86::VPSHUFDYmi) : false; in processInstruction()
279 case X86::VPERMILPSZ128mi: in processInstruction()
280 return ProcessVPERMILPSmi(X86::VPSHUFDZ128mi); in processInstruction()
281 case X86::VPERMILPSZ256mi: in processInstruction()
282 return ProcessVPERMILPSmi(X86::VPSHUFDZ256mi); in processInstruction()
283 case X86::VPERMILPSZmi: in processInstruction()
284 return ProcessVPERMILPSmi(X86::VPSHUFDZmi); in processInstruction()
285 case X86::VPERMILPSZ128mikz: in processInstruction()
286 return ProcessVPERMILPSmi(X86::VPSHUFDZ128mikz); in processInstruction()
287 case X86::VPERMILPSZ256mikz: in processInstruction()
288 return ProcessVPERMILPSmi(X86::VPSHUFDZ256mikz); in processInstruction()
289 case X86::VPERMILPSZmikz: in processInstruction()
290 return ProcessVPERMILPSmi(X86::VPSHUFDZmikz); in processInstruction()
291 case X86::VPERMILPSZ128mik: in processInstruction()
292 return ProcessVPERMILPSmi(X86::VPSHUFDZ128mik); in processInstruction()
293 case X86::VPERMILPSZ256mik: in processInstruction()
294 return ProcessVPERMILPSmi(X86::VPSHUFDZ256mik); in processInstruction()
295 case X86::VPERMILPSZmik: in processInstruction()
296 return ProcessVPERMILPSmi(X86::VPSHUFDZmik); in processInstruction()
298 case X86::MOVLHPSrr: in processInstruction()
299 case X86::UNPCKLPDrr: in processInstruction()
300 return ProcessUNPCKLPDrr(X86::PUNPCKLQDQrr, X86::SHUFPDrri); in processInstruction()
301 case X86::VMOVLHPSrr: in processInstruction()
302 case X86::VUNPCKLPDrr: in processInstruction()
303 return ProcessUNPCKLPDrr(X86::VPUNPCKLQDQrr, X86::VSHUFPDrri); in processInstruction()
304 case X86::VUNPCKLPDYrr: in processInstruction()
305 return ProcessUNPCKLPDrr(X86::VPUNPCKLQDQYrr, X86::VSHUFPDYrri); in processInstruction()
307 case X86::VMOVLHPSZrr: in processInstruction()
308 case X86::VUNPCKLPDZ128rr: in processInstruction()
309 return ProcessUNPCKLPDrr(X86::VPUNPCKLQDQZ128rr, X86::VSHUFPDZ128rri); in processInstruction()
310 case X86::VUNPCKLPDZ256rr: in processInstruction()
311 return ProcessUNPCKLPDrr(X86::VPUNPCKLQDQZ256rr, X86::VSHUFPDZ256rri); in processInstruction()
312 case X86::VUNPCKLPDZrr: in processInstruction()
313 return ProcessUNPCKLPDrr(X86::VPUNPCKLQDQZrr, X86::VSHUFPDZrri); in processInstruction()
314 case X86::VUNPCKLPDZ128rrk: in processInstruction()
315 return ProcessUNPCKLPDrr(X86::VPUNPCKLQDQZ128rrk, X86::VSHUFPDZ128rrik); in processInstruction()
316 case X86::VUNPCKLPDZ256rrk: in processInstruction()
317 return ProcessUNPCKLPDrr(X86::VPUNPCKLQDQZ256rrk, X86::VSHUFPDZ256rrik); in processInstruction()
318 case X86::VUNPCKLPDZrrk: in processInstruction()
319 return ProcessUNPCKLPDrr(X86::VPUNPCKLQDQZrrk, X86::VSHUFPDZrrik); in processInstruction()
320 case X86::VUNPCKLPDZ128rrkz: in processInstruction()
321 return ProcessUNPCKLPDrr(X86::VPUNPCKLQDQZ128rrkz, X86::VSHUFPDZ128rrikz); in processInstruction()
322 case X86::VUNPCKLPDZ256rrkz: in processInstruction()
323 return ProcessUNPCKLPDrr(X86::VPUNPCKLQDQZ256rrkz, X86::VSHUFPDZ256rrikz); in processInstruction()
324 case X86::VUNPCKLPDZrrkz: in processInstruction()
325 return ProcessUNPCKLPDrr(X86::VPUNPCKLQDQZrrkz, X86::VSHUFPDZrrikz); in processInstruction()
326 case X86::UNPCKHPDrr: in processInstruction()
327 return ProcessUNPCKHPDrr(X86::PUNPCKHQDQrr, X86::SHUFPDrri); in processInstruction()
328 case X86::VUNPCKHPDrr: in processInstruction()
329 return ProcessUNPCKHPDrr(X86::VPUNPCKHQDQrr, X86::VSHUFPDrri); in processInstruction()
330 case X86::VUNPCKHPDYrr: in processInstruction()
331 return ProcessUNPCKHPDrr(X86::VPUNPCKHQDQYrr, X86::VSHUFPDYrri); in processInstruction()
332 case X86::VUNPCKHPDZ128rr: in processInstruction()
333 return ProcessUNPCKHPDrr(X86::VPUNPCKHQDQZ128rr, X86::VSHUFPDZ128rri); in processInstruction()
334 case X86::VUNPCKHPDZ256rr: in processInstruction()
335 return ProcessUNPCKHPDrr(X86::VPUNPCKHQDQZ256rr, X86::VSHUFPDZ256rri); in processInstruction()
336 case X86::VUNPCKHPDZrr: in processInstruction()
337 return ProcessUNPCKHPDrr(X86::VPUNPCKHQDQZrr, X86::VSHUFPDZrri); in processInstruction()
338 case X86::VUNPCKHPDZ128rrk: in processInstruction()
339 return ProcessUNPCKHPDrr(X86::VPUNPCKHQDQZ128rrk, X86::VSHUFPDZ128rrik); in processInstruction()
340 case X86::VUNPCKHPDZ256rrk: in processInstruction()
341 return ProcessUNPCKHPDrr(X86::VPUNPCKHQDQZ256rrk, X86::VSHUFPDZ256rrik); in processInstruction()
342 case X86::VUNPCKHPDZrrk: in processInstruction()
343 return ProcessUNPCKHPDrr(X86::VPUNPCKHQDQZrrk, X86::VSHUFPDZrrik); in processInstruction()
344 case X86::VUNPCKHPDZ128rrkz: in processInstruction()
345 return ProcessUNPCKHPDrr(X86::VPUNPCKHQDQZ128rrkz, X86::VSHUFPDZ128rrikz); in processInstruction()
346 case X86::VUNPCKHPDZ256rrkz: in processInstruction()
347 return ProcessUNPCKHPDrr(X86::VPUNPCKHQDQZ256rrkz, X86::VSHUFPDZ256rrikz); in processInstruction()
348 case X86::VUNPCKHPDZrrkz: in processInstruction()
349 return ProcessUNPCKHPDrr(X86::VPUNPCKHQDQZrrkz, X86::VSHUFPDZrrikz); in processInstruction()
350 case X86::UNPCKLPDrm: in processInstruction()
351 return ProcessUNPCKPDrm(X86::PUNPCKLQDQrm); in processInstruction()
352 case X86::VUNPCKLPDrm: in processInstruction()
353 return ProcessUNPCKPDrm(X86::VPUNPCKLQDQrm); in processInstruction()
354 case X86::VUNPCKLPDYrm: in processInstruction()
355 return ProcessUNPCKPDrm(X86::VPUNPCKLQDQYrm); in processInstruction()
356 case X86::VUNPCKLPDZ128rm: in processInstruction()
357 return ProcessUNPCKPDrm(X86::VPUNPCKLQDQZ128rm); in processInstruction()
358 case X86::VUNPCKLPDZ256rm: in processInstruction()
359 return ProcessUNPCKPDrm(X86::VPUNPCKLQDQZ256rm); in processInstruction()
360 case X86::VUNPCKLPDZrm: in processInstruction()
361 return ProcessUNPCKPDrm(X86::VPUNPCKLQDQZrm); in processInstruction()
362 case X86::VUNPCKLPDZ128rmk: in processInstruction()
363 return ProcessUNPCKPDrm(X86::VPUNPCKLQDQZ128rmk); in processInstruction()
364 case X86::VUNPCKLPDZ256rmk: in processInstruction()
365 return ProcessUNPCKPDrm(X86::VPUNPCKLQDQZ256rmk); in processInstruction()
366 case X86::VUNPCKLPDZrmk: in processInstruction()
367 return ProcessUNPCKPDrm(X86::VPUNPCKLQDQZrmk); in processInstruction()
368 case X86::VUNPCKLPDZ128rmkz: in processInstruction()
369 return ProcessUNPCKPDrm(X86::VPUNPCKLQDQZ128rmkz); in processInstruction()
370 case X86::VUNPCKLPDZ256rmkz: in processInstruction()
371 return ProcessUNPCKPDrm(X86::VPUNPCKLQDQZ256rmkz); in processInstruction()
372 case X86::VUNPCKLPDZrmkz: in processInstruction()
373 return ProcessUNPCKPDrm(X86::VPUNPCKLQDQZrmkz); in processInstruction()
374 case X86::UNPCKHPDrm: in processInstruction()
375 return ProcessUNPCKPDrm(X86::PUNPCKHQDQrm); in processInstruction()
376 case X86::VUNPCKHPDrm: in processInstruction()
377 return ProcessUNPCKPDrm(X86::VPUNPCKHQDQrm); in processInstruction()
378 case X86::VUNPCKHPDYrm: in processInstruction()
379 return ProcessUNPCKPDrm(X86::VPUNPCKHQDQYrm); in processInstruction()
380 case X86::VUNPCKHPDZ128rm: in processInstruction()
381 return ProcessUNPCKPDrm(X86::VPUNPCKHQDQZ128rm); in processInstruction()
382 case X86::VUNPCKHPDZ256rm: in processInstruction()
383 return ProcessUNPCKPDrm(X86::VPUNPCKHQDQZ256rm); in processInstruction()
384 case X86::VUNPCKHPDZrm: in processInstruction()
385 return ProcessUNPCKPDrm(X86::VPUNPCKHQDQZrm); in processInstruction()
386 case X86::VUNPCKHPDZ128rmk: in processInstruction()
387 return ProcessUNPCKPDrm(X86::VPUNPCKHQDQZ128rmk); in processInstruction()
388 case X86::VUNPCKHPDZ256rmk: in processInstruction()
389 return ProcessUNPCKPDrm(X86::VPUNPCKHQDQZ256rmk); in processInstruction()
390 case X86::VUNPCKHPDZrmk: in processInstruction()
391 return ProcessUNPCKPDrm(X86::VPUNPCKHQDQZrmk); in processInstruction()
392 case X86::VUNPCKHPDZ128rmkz: in processInstruction()
393 return ProcessUNPCKPDrm(X86::VPUNPCKHQDQZ128rmkz); in processInstruction()
394 case X86::VUNPCKHPDZ256rmkz: in processInstruction()
395 return ProcessUNPCKPDrm(X86::VPUNPCKHQDQZ256rmkz); in processInstruction()
396 case X86::VUNPCKHPDZrmkz: in processInstruction()
397 return ProcessUNPCKPDrm(X86::VPUNPCKHQDQZrmkz); in processInstruction()
399 case X86::UNPCKLPSrr: in processInstruction()
400 return ProcessUNPCKPS(X86::PUNPCKLDQrr); in processInstruction()
401 case X86::VUNPCKLPSrr: in processInstruction()
402 return ProcessUNPCKPS(X86::VPUNPCKLDQrr); in processInstruction()
403 case X86::VUNPCKLPSYrr: in processInstruction()
404 return ProcessUNPCKPS(X86::VPUNPCKLDQYrr); in processInstruction()
405 case X86::VUNPCKLPSZ128rr: in processInstruction()
406 return ProcessUNPCKPS(X86::VPUNPCKLDQZ128rr); in processInstruction()
407 case X86::VUNPCKLPSZ256rr: in processInstruction()
408 return ProcessUNPCKPS(X86::VPUNPCKLDQZ256rr); in processInstruction()
409 case X86::VUNPCKLPSZrr: in processInstruction()
410 return ProcessUNPCKPS(X86::VPUNPCKLDQZrr); in processInstruction()
411 case X86::VUNPCKLPSZ128rrk: in processInstruction()
412 return ProcessUNPCKPS(X86::VPUNPCKLDQZ128rrk); in processInstruction()
413 case X86::VUNPCKLPSZ256rrk: in processInstruction()
414 return ProcessUNPCKPS(X86::VPUNPCKLDQZ256rrk); in processInstruction()
415 case X86::VUNPCKLPSZrrk: in processInstruction()
416 return ProcessUNPCKPS(X86::VPUNPCKLDQZrrk); in processInstruction()
417 case X86::VUNPCKLPSZ128rrkz: in processInstruction()
418 return ProcessUNPCKPS(X86::VPUNPCKLDQZ128rrkz); in processInstruction()
419 case X86::VUNPCKLPSZ256rrkz: in processInstruction()
420 return ProcessUNPCKPS(X86::VPUNPCKLDQZ256rrkz); in processInstruction()
421 case X86::VUNPCKLPSZrrkz: in processInstruction()
422 return ProcessUNPCKPS(X86::VPUNPCKLDQZrrkz); in processInstruction()
423 case X86::UNPCKHPSrr: in processInstruction()
424 return ProcessUNPCKPS(X86::PUNPCKHDQrr); in processInstruction()
425 case X86::VUNPCKHPSrr: in processInstruction()
426 return ProcessUNPCKPS(X86::VPUNPCKHDQrr); in processInstruction()
427 case X86::VUNPCKHPSYrr: in processInstruction()
428 return ProcessUNPCKPS(X86::VPUNPCKHDQYrr); in processInstruction()
429 case X86::VUNPCKHPSZ128rr: in processInstruction()
430 return ProcessUNPCKPS(X86::VPUNPCKHDQZ128rr); in processInstruction()
431 case X86::VUNPCKHPSZ256rr: in processInstruction()
432 return ProcessUNPCKPS(X86::VPUNPCKHDQZ256rr); in processInstruction()
433 case X86::VUNPCKHPSZrr: in processInstruction()
434 return ProcessUNPCKPS(X86::VPUNPCKHDQZrr); in processInstruction()
435 case X86::VUNPCKHPSZ128rrk: in processInstruction()
436 return ProcessUNPCKPS(X86::VPUNPCKHDQZ128rrk); in processInstruction()
437 case X86::VUNPCKHPSZ256rrk: in processInstruction()
438 return ProcessUNPCKPS(X86::VPUNPCKHDQZ256rrk); in processInstruction()
439 case X86::VUNPCKHPSZrrk: in processInstruction()
440 return ProcessUNPCKPS(X86::VPUNPCKHDQZrrk); in processInstruction()
441 case X86::VUNPCKHPSZ128rrkz: in processInstruction()
442 return ProcessUNPCKPS(X86::VPUNPCKHDQZ128rrkz); in processInstruction()
443 case X86::VUNPCKHPSZ256rrkz: in processInstruction()
444 return ProcessUNPCKPS(X86::VPUNPCKHDQZ256rrkz); in processInstruction()
445 case X86::VUNPCKHPSZrrkz: in processInstruction()
446 return ProcessUNPCKPS(X86::VPUNPCKHDQZrrkz); in processInstruction()
447 case X86::UNPCKLPSrm: in processInstruction()
448 return ProcessUNPCKPS(X86::PUNPCKLDQrm); in processInstruction()
449 case X86::VUNPCKLPSrm: in processInstruction()
450 return ProcessUNPCKPS(X86::VPUNPCKLDQrm); in processInstruction()
451 case X86::VUNPCKLPSYrm: in processInstruction()
452 return ProcessUNPCKPS(X86::VPUNPCKLDQYrm); in processInstruction()
453 case X86::VUNPCKLPSZ128rm: in processInstruction()
454 return ProcessUNPCKPS(X86::VPUNPCKLDQZ128rm); in processInstruction()
455 case X86::VUNPCKLPSZ256rm: in processInstruction()
456 return ProcessUNPCKPS(X86::VPUNPCKLDQZ256rm); in processInstruction()
457 case X86::VUNPCKLPSZrm: in processInstruction()
458 return ProcessUNPCKPS(X86::VPUNPCKLDQZrm); in processInstruction()
459 case X86::VUNPCKLPSZ128rmk: in processInstruction()
460 return ProcessUNPCKPS(X86::VPUNPCKLDQZ128rmk); in processInstruction()
461 case X86::VUNPCKLPSZ256rmk: in processInstruction()
462 return ProcessUNPCKPS(X86::VPUNPCKLDQZ256rmk); in processInstruction()
463 case X86::VUNPCKLPSZrmk: in processInstruction()
464 return ProcessUNPCKPS(X86::VPUNPCKLDQZrmk); in processInstruction()
465 case X86::VUNPCKLPSZ128rmkz: in processInstruction()
466 return ProcessUNPCKPS(X86::VPUNPCKLDQZ128rmkz); in processInstruction()
467 case X86::VUNPCKLPSZ256rmkz: in processInstruction()
468 return ProcessUNPCKPS(X86::VPUNPCKLDQZ256rmkz); in processInstruction()
469 case X86::VUNPCKLPSZrmkz: in processInstruction()
470 return ProcessUNPCKPS(X86::VPUNPCKLDQZrmkz); in processInstruction()
471 case X86::UNPCKHPSrm: in processInstruction()
472 return ProcessUNPCKPS(X86::PUNPCKHDQrm); in processInstruction()
473 case X86::VUNPCKHPSrm: in processInstruction()
474 return ProcessUNPCKPS(X86::VPUNPCKHDQrm); in processInstruction()
475 case X86::VUNPCKHPSYrm: in processInstruction()
476 return ProcessUNPCKPS(X86::VPUNPCKHDQYrm); in processInstruction()
477 case X86::VUNPCKHPSZ128rm: in processInstruction()
478 return ProcessUNPCKPS(X86::VPUNPCKHDQZ128rm); in processInstruction()
479 case X86::VUNPCKHPSZ256rm: in processInstruction()
480 return ProcessUNPCKPS(X86::VPUNPCKHDQZ256rm); in processInstruction()
481 case X86::VUNPCKHPSZrm: in processInstruction()
482 return ProcessUNPCKPS(X86::VPUNPCKHDQZrm); in processInstruction()
483 case X86::VUNPCKHPSZ128rmk: in processInstruction()
484 return ProcessUNPCKPS(X86::VPUNPCKHDQZ128rmk); in processInstruction()
485 case X86::VUNPCKHPSZ256rmk: in processInstruction()
486 return ProcessUNPCKPS(X86::VPUNPCKHDQZ256rmk); in processInstruction()
487 case X86::VUNPCKHPSZrmk: in processInstruction()
488 return ProcessUNPCKPS(X86::VPUNPCKHDQZrmk); in processInstruction()
489 case X86::VUNPCKHPSZ128rmkz: in processInstruction()
490 return ProcessUNPCKPS(X86::VPUNPCKHDQZ128rmkz); in processInstruction()
491 case X86::VUNPCKHPSZ256rmkz: in processInstruction()
492 return ProcessUNPCKPS(X86::VPUNPCKHDQZ256rmkz); in processInstruction()
493 case X86::VUNPCKHPSZrmkz: in processInstruction()
494 return ProcessUNPCKPS(X86::VPUNPCKHDQZrmkz); in processInstruction()